ArticlesArticlesenTue, 05 Mar 2024 09:32:19 +0700https://niteco.com/articles/electrolux-and-nitecos-levande-platform-wins-prestigious-sbr-award/info@niteco.comElectrolux and Niteco’s Levande platform wins prestigious SBR award <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW188595232 BCX0">Electrolux, the renowned home appliance company, </span><span class="NormalTextRun SCXW188595232 BCX0">this week received</span><span class="NormalTextRun SCXW188595232 BCX0"> the</span><span class="NormalTextRun SCXW188595232 BCX0"> award for</span><span class="NormalTextRun SCXW188595232 BCX0"> Online Services - Consumer Products (Durables) at the prestigious SBR Technology Excellence Awards</span><span class="NormalTextRun SCXW188595232 BCX0"> in Singapore</span><span class="NormalTextRun SCXW188595232 BCX0">. The accolade</span><span class="NormalTextRun SCXW188595232 BCX0">, presented by the Singapore Business Review,</span><span class="NormalTextRun SCXW188595232 BCX0"> was earned for the successful introduction of their all-in-one, comprehensive appliance subscription platform, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0">. This groundbreaking platform, developed by </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Niteco</span><span class="NormalTextRun SCXW188595232 BCX0">, revolutioniz</span><span class="NormalTextRun SCXW188595232 BCX0">e</span><span class="NormalTextRun SCXW188595232 BCX0">s the traditional appliance ownership model.</span></span><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p class="Paragraph SCXW188595232 BCX0"><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img src="/link/12d64fbd7e7444cb8b2b707ae43ea35a.aspx" alt="" width="1707" height="1138" /></span></p> </div> <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0" style="text-align: center;"><em><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0"><span class="TextRun SCXW27620123 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW27620123 BCX0">Electrolux&rsquo;s Gaurav Julka accepted the award.</span></span></span></span></em></p> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande's</span><span class="NormalTextRun SCXW188595232 BCX0"> subscription service disrupts conventional </span><span class="NormalTextRun SCXW188595232 BCX0">business models</span><span class="NormalTextRun SCXW188595232 BCX0"> by offering consumers an end-to-end appliance subscription experience that covers setup, delivery, service, and even includes a 48-hour guaranteed like-for-like replacement policy. By providing customers with peace of mind and significantly reducing upfront costs, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> redefines the way people approach appliance ownership.</span></span><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> </div> <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW188595232 BCX0">The </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> platform </span><span class="NormalTextRun SCXW188595232 BCX0">integrates</span><span class="NormalTextRun SCXW188595232 BCX0"> seamless</span><span class="NormalTextRun SCXW188595232 BCX0">ly</span><span class="NormalTextRun SCXW188595232 BCX0"> with various external systems, including </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">MyInfo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">SingPass</span><span class="NormalTextRun SCXW188595232 BCX0">, OneMap SG, Stripe, SAP CDC, and Electrolux backend systems. These integrations ensure a smooth and hassle-free experience for consumers who </span><span class="NormalTextRun SCXW188595232 BCX0">utilize</span><span class="NormalTextRun SCXW188595232 BCX0"> the platform. Additionally, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Niteco</span><span class="NormalTextRun SCXW188595232 BCX0"> has included</span><span class="NormalTextRun SCXW188595232 BCX0"> automated recurring billing, secure payments, and a user-friendly interface that allows</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> subscribers to manage their subscriptions effortlessly. Users can easily renew or upgrade their subscriptions without the need to go through the payment process again. Furthermore, the platform prioritizes the security of users' sensitive financial information through a secure payment gateway. Niteco's experts also placed particular emphasis on performance and accessibility, with the site's homepage fully loading in just 2.9 seconds.</span></span></p> </div> <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> revolutionizes the way consumers approach appliance ownership by </span><span class="NormalTextRun SCXW188595232 BCX0">eliminating</span><span class="NormalTextRun SCXW188595232 BCX0"> the need for substantial upfront costs when </span><span class="NormalTextRun SCXW188595232 BCX0">purchasing</span><span class="NormalTextRun SCXW188595232 BCX0"> appliances such as washing machines, wine cabinets, refrigerators, and more. With </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0">, subscribers select the appliance that suits their needs, subscribe to a plan for a fixed monthly fee (starting from $21.99/month for a washer dryer), and </span><span class="NormalTextRun SCXW188595232 BCX0">get</span><span class="NormalTextRun SCXW188595232 BCX0"> the appliance delivered and set up within </span><span class="NormalTextRun AdvancedProofingIssueV2Themed SCXW188595232 BCX0">48 hours</span><span class="NormalTextRun SCXW188595232 BCX0">. They also have the flexibility to upgrade or cancel their subscription at any time, </span><span class="NormalTextRun SCXW188595232 BCX0">giving</span><span class="NormalTextRun SCXW188595232 BCX0"> them greater control over their appliance choices.</span></span><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> </div> <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW188595232 BCX0">Moreover, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> efficiently manages its partner affiliate program, which involves listing </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande</span><span class="NormalTextRun SCXW188595232 BCX0"> subscriptions and services on partner platforms like DBS Marketplace. This integration harnesses </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188595232 BCX0">Levande's</span><span class="NormalTextRun SCXW188595232 BCX0"> affiliate tracking mechanism to </span><span class="NormalTextRun SCXW188595232 BCX0">monitor</span><span class="NormalTextRun SCXW188595232 BCX0"> and report conversions resulting from successful subscriptions. Additionally, it enables the monitoring and incentivization of affiliates or partners who refer customers to Electrolux's services.</span></span><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> </div> <div class="OutlineElement Ltr SCXW188595232 BCX0"> <p class="Paragraph SCXW188595232 BCX0"><span class="TextRun SCXW188595232 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW188595232 BCX0">The </span><span class="NormalTextRun SCXW188595232 BCX0">SBR Technology Excellence Awards recogni</span><span class="NormalTextRun SCXW188595232 BCX0">z</span><span class="NormalTextRun SCXW188595232 BCX0">e exceptional companies in Singapore that pioneered groundbreaking IT products and solutions and impactful technology initiatives, leading the digital journeys of their respective industries.</span></span><span class="EOP SCXW188595232 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> </div>Fri, 26 May 2023 15:53:56 +0700https://niteco.com/articles/why-website-performance-matters-and-how-to-improve-website-speed/trang.le3@niteco.seWhy website performance matters and how to improve website speed<p>Picture this: You're moments away from securing a product in the final minutes of a flash sale. As you&rsquo;re ready to make the crucial move, the <a href="/link/9ca0620344934ee18bad697ea280affc.aspx">Ecommerce site</a> suddenly slows down, thwarting your final step. Poor website performance just prevented you from enjoying a satisfying purchasing experience &ndash; unacceptable after you had been eagerly waiting for the sale. This scenario is not rare. It happens all the time and can greatly affect a business&rsquo;s performance.</p> <p>To prevent this from happening to your site, in this article, Niteco will help you understand why website performance is so vital and show you how to improve website speed for better business results using <a href="/link/45ca79c077cc4a75990cb3d0a350480f.aspx">Niteco&rsquo;s free Performance Insight tool</a>. Read on!</p> <p><strong>Table of contents:</strong></p> <ul> <li><a href="#What-is-website-performance">What is website performance?</a></li> <li><a href="#why-does-website-performance-matter">Why does website performance matter?</a></li> <li><a href="#important-metrics-for-website-performance">Important metrics for website performance</a></li> <li><a href="#where-can-you-check-your-website-performance">Where can you check your website performance online?</a></li> <li><a href="#how-do-you-improve-your-website-speed">How do you improve your website speed?</a></li> <li><a href="#conclusion">Conclusion</a></li> <li><a href="#faqs-about-website-performance">FAQs about website performance</a></li> </ul> <h2><a id="What-is-website-performance"></a>What is website performance?</h2> <p>A common term in the digital world, website performance is a comprehensive measurement of how well a website functions and how fast the website speed is. It encompasses various aspects, including the site's responsiveness, loading times, and overall user experience. Savvy businesses track their performance because a high-performance website not only attracts more visitors but also retains them by providing a seamless and efficient browsing experience.</p> <h2><a id="why-does-website-performance-matter"></a>Why does website performance matter?</h2> <p>The significance of website performance cannot be overstated. The speed of your site has a direct impact on critical factors such as bounce rates, conversion rates, overall revenue, user satisfaction, and search engine ranking. Now, let's delve into the major benefits you get from ensuring an optimized website performance.</p> <h3>Better website performance improves user experience</h3> <p>User experience is at the forefront of the digital landscape. A slow and clunky website frustrates users, leading to increased bounce rates and decreased user satisfaction. A <a href="https://s3.amazonaws.com/coach-courses-us/public/theuxschool/uploads/The_Trillion_Dollar_UX_Problem.pdf">study</a> showed that a staggering 88% of internet users claim they would not revisit a website following a negative user experience. Therefore, the better a website&rsquo;s performance is, the smoother and more enjoyable the experience for visitors is, resulting in positive interactions with your brand.</p> <h3>Good performance enhances user engagement</h3> <p>A site&rsquo;s user experience usually determines the level of user engagement. Did you know that pages with a loading time of <a href="https://www.pingdom.com/blog/page-load-time-really-affect-bounce-rate/">under 2 seconds</a> experience an average bounce rate of 9%, whereas those taking 5 seconds to load witness a significant spike in bounce rates, reaching 38%? Users are more likely to explore a website with quick load times, as they&rsquo;re aiming for a seamless experience with the shortest time spent finding what they&rsquo;re looking for.</p> <p>In essence, a well-optimized website not only keeps visitors engaged but also motivates them to explore more content, ultimately enhancing the likelihood of them making a purchase.</p> <h3>A fast website helps increase conversion rates</h3> <p>On a larger scale, website performance directly influences conversion rates. According to data shared in a recent <a href="https://smallseotools.com/blog/google-hates-your-site-because-its-slow-heres-what-to-do/">Aberdeen Group study</a>, a one-second delay in page load time can lead to a 7% decrease in your conversion rate. For instance, if your website generates $50,000 per day in sales, this delay could translate to a potential loss of $1.25 million per year in missed conversions.</p> <p>A fast and efficient website contributes to a seamless conversion process, reducing the likelihood of potential customers abandoning their carts or leaving the site before completing desired actions. Improved performance can lead to <a href="/link/7419544e52f943cca0064efb49671629.aspx">increased conversion rates</a> and, consequently, higher revenue.</p> <h3>Website speed affects search ranking and SEO</h3> <p>As mentioned earlier, <a href="/link/9f74c70393264cfd8ecc655aa002b0e0.aspx" target="_blank" rel="noopener">slow website speed</a> not only affects user engagement but also has a subsequent impact on bounce rates and conversions. This forms the crucial starting point in the interconnected chain of website speed, user satisfaction, and SEO.</p> <p>Search engines such as Google diligently monitor user behavior. If visitors quickly leave your site, it tells search engines that your content may not meet user expectations. Such high bounce rates, slow-loading pages and overall poor website performance can detrimentally affect your <a href="/link/443a98a6266045a8b3886ede4828ee01.aspx">SEO efforts</a>, pushing your pages further down on search engine results pages (SERPs).</p> <p style="text-align: center;"><img src="/link/346028c2d5934fe18ca6c961c27a76be.aspx" alt="A screen recording of filmstrips of Niteco&rsquo;s performance audit tool." width="1426" height="752" /></p> <p style="text-align: center;">Source:&nbsp;<a href="/link/45ca79c077cc4a75990cb3d0a350480f.aspx">Niteco&rsquo;s Performance Insight tool</a>.</p> <h2><a id="important-metrics-for-website-performance"></a>Important metrics for website performance</h2> <p>To gauge and optimize website performance, it's essential to monitor key metrics. These prominent metrics are:</p> <ul> <li><strong><a href="/link/5cb67f82a85b407882c7b50ee04ab062.aspx">Core Web Vitals</a>: </strong>Introduced by Google, these metrics assess critical aspects of user experience, including loading performance, interactivity, and visual stability. Paying attention to metrics such as Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS) helps in understanding and improving the overall user experience.</li> <li><strong>Lighthouse Scores:</strong> Lighthouse is an open-source, automated tool for improving the quality of web pages. It provides audits for performance, accessibility, progressive web apps, SEO, and more. Lighthouse scores offer a comprehensive overview of your website's strengths and areas for improvement.</li> </ul> <p>Beyond these, there are vital page speed metrics, including Time to First Byte (TTFB) and Total Page Load Time, which directly impact user experience.</p> <p>Monitoring and optimizing these metrics contributes to faster loading times, reducing bounce rates and enhancing user satisfaction.</p> <h2><a id="where-can-you-check-your-website-performance"></a>Where can you check your website performance online?</h2> <p>You can assess website performance using your in-house team, but it requires substantial resources and effort. An optimal solution for your business is to leverage <a href="/link/f8b1abeb94b446eba9ed0797529f929e.aspx">performance testing tools</a>. These tools play a crucial role in continuous evaluation, allowing you to make comparisons with your competitors. Niteco's Performance Insight tool is a trustworthy recommendation for assessing and enhancing website performance. And, more importantly, you can access all those pivotal data insights for FREE!</p> <h3>How to use Niteco&rsquo;s Performance Insight tool</h3> <p>Follow these steps to make the most of Niteco's Performance Insight tool:</p> <ol> <li><strong>Step 1: </strong>Go to <a href="/link/45ca79c077cc4a75990cb3d0a350480f.aspx">Niteco&rsquo;s Performance Insight tool</a>, insert the URL of the website you want to audit and track.</li> <li><strong>Step 2: </strong>Insert URLs of your business&rsquo;s competitors. You can skip this step.</li> <li><strong>Step 3: </strong>Choose the desired test location. This allows you to see how your site performs in the place from which your users access it.</li> <li><strong>Step 4: </strong>Sign up with a work account. This account will be used to receive daily reports on the websites' performance.</li> <li><strong>Step 5: </strong>Wait a few minutes for the test to finish and voil&agrave;, you will be directed to a dashboard with a plethora of results.</li> </ol> <h3>How your website performance is reflected in the tool</h3> <p>Navigating to the dashboard, the initial section of the report you will encounter is the benchmark section. It provides a comprehensive evaluation of four key areas: Performance, SEO, Best Practices, and Accessibility.</p> <p><img src="/link/812dd8465b024e6b81b4b8a046e393a4.aspx" alt="A screenshot of the benchmark section in Niteco&rsquo;s Performance Insight tool" width="1488" height="354" /></p> <p>The next section shows a detailed examination of loading speed presented in the form of filmstrips. Your website will be compared to that of competitors on a screen, illustrating which one loads more quickly. Concurrently, it will emphasize three crucial performance metrics, namely First Contentful Paint, Largest Contentful Paint, and Time to Interactive.</p> <p><img src="/link/c50435cb788b45f5929cf24223e94ae1.aspx" alt="A screenshot of the filmstrips section in Niteco&rsquo;s Performance Insight tool" width="1488" height="501" /></p> <p>In the following section, you will get an overview of the Core Web Vitals. As mentioned earlier, the Web Vitals not only act as a reliable measurement of site performance and user experience, but also significantly impact your website's Google search rankings. The tool will display your website's score in each metric, including Largest Contentful Point, Total Blocking Time, and Cumulative Layout Shift (LCP, TBT, and CLS) compared to your competitors. To enhance your organic traffic, it is crucial to ensure that these metrics consistently stay within the recommended ranges. When you see that any metric is displayed in orange or red, you already know where improvement is needed.</p> <p><img src="/link/1f0ce5d2667446619af1a62ef78165af.aspx" alt="A screenshot of the Web vitals section in Niteco&rsquo;s Performance Insight tool" width="1488" height="523" /></p> <p>The next section is designed to crawl Chrome UX data, assessing the level of user-friendliness based on your website's technical performance.</p> <p><img src="/link/53cb652b3c744cf7a29c2155b97e072f.aspx" alt="A screenshot of the Web vitals section in Niteco&rsquo;s Performance Insight tool" width="1488" height="461" /></p> <p>The last section of the website performance report focuses on site requests. In this segment, you can find the number and size of site requests made when loading a page, encompassing requests like HTML, CSS, JS, Font, Image, Media, and other elements. This shows you what might be slowing down your loading.</p> <p><img src="/link/39882c9d7107409b91bac129951d79f4.aspx" alt="A screenshot of the Site requests section in Niteco&rsquo;s performance insight tool" width="1488" height="528" /></p> <h2><a id="how-do-you-improve-your-website-speed"></a>How do you improve your website speed?</h2> <p>After obtaining insights from Niteco&rsquo;s Performance Insight tool, your business will undoubtedly gather ideas on how to enhance your site&rsquo;s performance. Here are some key areas to focus on if you want to improve your site:</p> <ul> <li><strong>Reduce site requests:</strong> Decrease the number and size of requests made to your server by consolidating files, utilizing CSS sprites, and eliminating unnecessary elements.</li> <li><strong>Optimize images: </strong>Resize and compress images to reduce file sizes without compromising quality.</li> <li><strong>Implement browser caching: </strong>Configure your server to enable browser caching, facilitating faster loading for returning visitors.</li> <li><strong>Employ <a href="/link/262ea0ebbe0c4545b71a6e83e224556d.aspx">content delivery networks (CDNs)</a>: </strong>Distribute your website's content across multiple servers globally through CDNs, ensuring swift load times for users, regardless of their location.</li> <li><strong>Enable GZIP compression: </strong>Activate GZIP compression to minimize file sizes sent to the browser, resulting in quicker loading times.</li> <li><strong>Streamline code:</strong> Enhance your website's performance by cleaning and optimizing its code, eliminating any redundant elements or characters.</li> <li><strong><a href="/link/8cb451458c3646f5b80a4a1a24ee4f88.aspx">Mobile optimization</a>: </strong>Cater to the expanding mobile audience by ensuring your website is responsive and optimized for mobile devices.</li> </ul> <p>However, it should be noted that optimizing web page performance involves addressing various factors; those mentioned above are merely some of the common ones. For a thorough investigation and tailored solutions addressing specific issues on your website, <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx">reach out to Niteco's experts</a>. We will assess both the strengths and weaknesses of your website and guide you in implementing solutions that ensure your business success.</p> <p>Meanwhile, if your website is powered by Optimizely, we already have a <a href="/link/c43a1e31432445dc91ad33363d1009d3.aspx">guide available on how to enhance its performance on the platform for your reference</a>.</p> <h2><a id="conclusion"></a>Why does website performance matter? - Conclusion</h2> <p>In conclusion, website performance is a multifaceted aspect that significantly impacts user experience, engagement, search rankings, and conversion rates. If you haven&rsquo;t already, it&rsquo;s time to prioritize and invest in optimizing website performance to stay competitive in the digital landscape. Utilizing tools like Niteco's Performance Insight tool provides actionable insights and empowers businesses to enhance their online presence. <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx">Contact us</a> for more information on how to improve your website performance.</p> <h2><a id="faqs-about-website-performance"></a>FAQs about website performance</h2> <h3>Does website performance matter?</h3> <p>Yes, website performance matters. Websites that function poorly and have slow loading times can discourage users. On the other hand, websites with fast loading speeds usually attract more visitors and experience higher conversion rates.</p> <h3>What is good website performance?</h3> <p>There are many different ways to evaluate a website's performance, including factors such as speed, bounce rate, and user experience. Typically, good website performance is characterized by fast loading, ideally within a three-second timeframe.&nbsp;</p> <h3>Can website performance be improved without technical expertise?</h3> <p>It depends. If your website performance has a simple problem to address, such as large image sizes that increase the loading time, you can simply reduce the sizes. However, certain optimizations will require more technical knowledge.</p> <h3>What is the best tool for website performance tracking?</h3> <p>There are multiple tools on the market, and depending on your business&rsquo;s requirements, preferences will vary. However, if you are seeking a tool that provides a comprehensive performance assessment for free, you cannot overlook <a href="/link/45ca79c077cc4a75990cb3d0a350480f.aspx">Niteco&rsquo;s Performance Insight tool</a>.</p> <h3>Does Niteco&rsquo;s Performance Insight tool charge?</h3> <p>No, the tool is completely FREE and open to anyone without any costs. Users simply need to sign up with a work email, and the results on important metrics will be displayed on the dashboard and sent to their email every single day.</p>Fri, 19 Jan 2024 10:41:14 +0700https://niteco.com/articles/the-case-for-more-experimentation-in-your-business/lukas.schwitzer@niteco.seWhy is experimentation important in business? Here are top 3 cases<p>Over the last two years, companies like Optimizely have gone all in on experimentation as the future of the digital business world. Experimentation is by no means a new concept, but it has gotten a lot easier to implement with the growth of digital businesses. &nbsp;</p> <p>In experimentation, we compare an experimental group (e.g. people who are presented with a newly updated landing page) to a standard control group (e.g. people who saw the standard landing page) and measure the difference in their performance. By doing this, we&rsquo;re taking impulsiveness and subjectivity out of the equation and basing our business decisions on hard data. The best-known version of this is <a href="/link/e51c4e07d6304300837ee60c02ab0a9b.aspx">A/B testing</a> or conversion rate optimization, but the approach isn&rsquo;t just applicable to marketing purposes &ndash; development or business processes can be experimented with as well. &nbsp;</p> <p>Read on to uncover the power of experimentation and explore why incorporating more business experimentation is crucial.</p> <p><strong>Table of contents:</strong></p> <ul> <li><a href="#what-is-business-experimentation">What is experimentation in business?</a></li> <li><a href="#why-is-business-experimentation-important">Why is business experimentation important?</a></li> <li><a href="#requirements-for-successful-experimentation">The key to successful experimentation</a></li> <li><a href="#pathway-to-business-success">Experimentation &ndash; A pathway to business success</a></li> </ul> <h2><a id="what-is-business-experimentation"></a>What is experimentation in business?</h2> <p>Business experimentation is a strategic and data-driven approach used in a business context. It involves conducting a series of specific tests, known as business experiments, to assess ideas or hypotheses and gather insights before committing significant resources to major projects such as marketing or <a href="/link/7419544e52f943cca0064efb49671629.aspx">conversion rate optimization</a> campaigns.&nbsp;</p> <p>For example, a company might conduct a business experiment to observe user responses to a change in an app or the addition of a new feature. The behavior of these users is then compared to that of a similar group which uses the app without the new feature.&nbsp;</p> <p>There are popular types of business experimentation including <a href="/link/4ddbb8c162354869abb298822110d802.aspx">website user testing</a>, <a href="/link/385f6abf90d043588dc5b8ffb67811bd.aspx">usability testing</a>, A/B testing, and accessibility testing. These methods are frequently employed in combination to obtain comprehensive insights, enabling data-backed decisions for enhancing user experience and business outcomes. Therefore, business experimentation serves as a critically important strategic application of tests, allowing informed business decisions and the mitigation of risks associated with significant projects.&nbsp;</p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/84ad828f93114b20bb6e98781da05a9a.aspx" alt="" width="2085" height="2084" /></span></p> <p style="text-align: center;" aria-level="2"><span data-contrast="none">An illustration of how business experimentation works</span></p> <h2><a id="why-is-business-experimentation-important"></a>Why is business experimentation important?</h2> <p>Understanding the significance of business experimentation is crucial for any organization aiming to thrive in today&rsquo;s dynamic business landscape. Let&rsquo;s delve into why this strategic approach is not just beneficial, but essential for informed decision-making and sustainable growth.&nbsp;</p> <h3 aria-level="2"><span data-contrast="none">1. Optimizing your online performance</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"> <a id="optimizing-your-online-performance"></a></span></h3> <p><span data-contrast="auto">In the past, much of the decision-making process in the digital marketing world was based either on gut feeling or on copying what others had done before. For example, if a company had increased its conversions after changing the font on its website, a rival company might think to do the same thing to improve its own performance. Would rolling out such a change for all users work? It might, but it might also be a disaster. To make sure we don&rsquo;t put all our eggs in one basket, we need experimentation.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">In </span><span data-contrast="none">A/B Testing</span><span data-contrast="auto">, we take a hypothesis &ndash; such as &ldquo;changing the font will make this digital experience convert better&rdquo; &ndash; and put it to the test. We create 2 (or more) variants of a digital experience, present each to a part of our audience, and measure the results. Was our hypothesis confirmed? If yes, that&rsquo;s great, we can roll out the change to all users. If not, we&rsquo;d better just leave things as they were.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">This also allows us to continuously improve performance to keep up with KPIs, growth and </span><a href="/link/7e0ae445a5c949ddaa06122b13b3c13f.aspx"><span data-contrast="none">conversion goals</span></a><span data-contrast="auto"> and any other targets we may have set for ourselves &ndash; based on data, not a whim.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h3 aria-level="2"><span data-contrast="none">2. Improving development processes</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h3> <p><span data-contrast="auto">Experimentation is by no means only applicable after a solution has gone live. On the contrary, experimentation earlier on in the development journey can actually save you a lot of grief later on. In this context, experimentation means testing the feasibility and potential of features before investing full development resources that you cannot get back.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">In this case, we are not talking about the traditional QA (Quality Assurance) testing that occurs to prevent bugs or other technical failures. Rather, this kind of experimentation means taking a closer look at the actual functionality you are building and asking yourself: Is this worth pursuing further? Do users actually respond to this?</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">However you conduct such an experiment &ndash; using your own employees, a focus group, or a different method &ndash; you will have a better idea of the direction in which you should take your development to maximize your ROI. In the end, you don&rsquo;t want to find yourself investing time and money in an idea you&rsquo;ve lost confidence in.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h3 aria-level="2"><span data-contrast="none">3. Perfecting your business strategy</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h3> <p><span data-contrast="auto">Experimentation may be the most useful &ndash; but also the toughest to apply &ndash; when it&rsquo;s applied to your business itself. While testing whether one font or another works better on your website doesn&rsquo;t require much courage, testing your own business processes or strategy may take more. After all, the principle of &ldquo;don&rsquo;t fix it if it ain&rsquo;t broke&rdquo; is still deeply ingrained in the minds of many businesspeople. And it&rsquo;s dangerous to let that attitude veer into territory that prevents you from embracing change.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Change is where growth comes from, and finding out what changes will actually make your business run more smoothly can have a major effect on your bottom line. Such change can come in many forms. Maybe an innovative approach to customer discounts, or a change in your </span><a href="/link/e512b7e654f44b4da618084dbbfcfe73.aspx"><span data-contrast="none">teams&rsquo; distribution</span></a><span data-contrast="auto">. The important thing to keep in mind when you ponder how to implement your ideas is that you don&rsquo;t need to do so across the board. Experiment with a small portion of your customers and compare the results to your standard approach. For you, the end result will be hard data on what works and what doesn&rsquo;t. </span><a href="https://www.stratechi.com/experimentation"><span data-contrast="none">As Stratechi points out</span></a><span data-contrast="auto">, Capital One, a leader in credit cards, created a $40 billion business by executing hundreds of thousands of controlled experiments optimizing credit card designs, offers, and messaging.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><a id="requirements-for-successful-experimentation"></a>The key to successful experimentation</h2> <p>Successful experimentation requires more than just ideas about what to test. To yield fruitful results from your testing efforts, consider these three important tips:&nbsp;</p> <ul> <li>Start using a goal tree and formulate an experimentation methodology: Resist the urge to rush into tests. Align your goals with the overall company objectives, enabling your team to focus resources on the right problems and prioritize workloads more effectively.&nbsp;</li> <li>Do more than just A/B tests: Explore various testing types for specific hypotheses. Considering each type based on your ultimate goal can yield more significant results.&nbsp;</li> <li>Communicate your experimentation results to a broader audience within your organization: Taking experimentation to the next level involves sharing testing campaign results with employees. This fosters an 'experimentation culture' and may bring forth more ideas for future successful experiments.&nbsp;</li> </ul> <p>Besides, you can learn more on <a href="/link/a133f582c8334954bb914088e459f068.aspx">how to elevate your experimentation approach</a> and <a href="/link/741898df9229458da7c5bd7d89273d90.aspx">the success story of Electrolux&rsquo;s conversion rate optimization</a> resulted in a 25% increase in 'Add to Cart' actions.&nbsp;</p> <h2><a id="pathway-to-business-success"></a>Experimentation &ndash; A pathway to business success</h2> <p>In conclusion, experimentation is a pivotal pathway to successful business in today's dynamic landscape. As businesses strive to thrive through innovation, experimentation not only allows you to navigate the complexities of idea evaluation but also offers a strategic gateway to optimizing online performance, refining development processes, and honing business strategies through data-driven approaches. &nbsp;</p> <p>For more customized and optimized experimentation solutions tailored to the unique needs of your business, we invite you to <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx">contact Niteco</a>. With our expertise, we stand ready to assist you on the journey toward business excellence. The path to success begins with exploration, and Niteco is here to guide you every step of the way.&nbsp;</p>Mon, 14 Mar 2022 09:26:00 +0700https://niteco.com/articles/niteco-makes-the-switch-to-a-new-service-desk-system/info@niteco.comNiteco makes the switch to Zendesk for best-in-class customer service <p>Niteco&rsquo;s Helpdesk offerings are receiving an invigorating update this fall as the agency has announced its switch to the industry leading Zendesk platform. The company&rsquo;s Content Publishing and 24/7 Proactive Response services began using the platform for their work beginning in late September.</p> <p>The switch to Zendesk brings many additional benefits for Niteco&rsquo;s customers, among them companies like Electrolux and Avensia:</p> <ul> <li>Customers receive more detailed information on the progress of their support tickets and tasks.</li> <li>Comments and replies are also automatically emailed to people connected to a ticket for real-time updates.</li> <li>With the entire support process happening in the Cloud, access will be much quicker and more reliable.</li> <li>Improved speed and availability means your tickets will be taken care of even more smoothly.</li> <li>Thanks to Zendesk&rsquo;s frequent updates, you&rsquo;ll always have the latest version and the latest improvements.</li> <li>The built-in reporting capabilities of the Zendesk platform provide deep insights into the handling of tickets.</li> </ul> <p>The decision to use Zendesk was initiated through Niteco&rsquo;s Continuous Improvement program. Niteco regularly reviews our platforms and services to find new ways to add value to our customers and partners. The selection process assessed several different Helpdesk solutions over a number of months. &ldquo;We tested the most sophisticated solutions available and came to the conclusion that Zendesk fits our customers&rsquo; requirements the best,&rdquo; said Niteco CEO Pelle Niklasson. &ldquo;It allows us to provide the best customer service we can while making the experience smooth for our customers as well as our agents.&rdquo;</p> <p>&ldquo;Zendesk&rsquo;s ticketing system means that our customers don&rsquo;t need to change any processes in order to receive this streamlined support via Zendesk,&rdquo; said Tung Nguyen, Niteco Delivery Manager in charge of the switch. &ldquo;As before, customers send ticket requests to Niteco via email, which automatically creates a ticket for our dedicated team of experienced agents to work on.&rdquo;</p> <p>Should you have any questions about this move or if you're interested in Zendesk and Niteco's Helpdesk services, please feel free to <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx" target="_blank" rel="noopener">contact us</a>.</p>Tue, 04 Oct 2022 09:26:00 +0700https://niteco.com/articles/optimizely--a-journey-to-boundless-digital-invention/scott.reed@niteco.seOptimizely – A journey to Boundless Digital Invention<p>Over the course of the last few years and with the acquisition of Optimizely, the organization now known as Optimizely itself has made strides in unifying the offerings of the different products in the Optimizely platform as well as packaging the different offerings under sales packages that align to what customers want. At Opticon 2022, the focus was very much on the new platform, the new offerings around Experimentation and Personalization and the sense that customers can be unbound from their limits when using the platform.</p> <p>Opticon 2022 in San Diego was a great way of getting back together with partners, customers and Optimizely face to face, and was broken down into two parts.</p> <ol> <li><strong>Monday</strong> &ndash; A partner day focused on connecting partners with the roadmap and new Optimizely strategy.</li> <li><strong>Tuesday-Wednesday</strong> &ndash; Customer days focused on the core keynotes, roadmap and focused sessions on the products and strategy.</li> </ol> <p>Also, as a bonus, as an MVP I had an extra day on Thursday for the MVP Summit with some exclusive AMA sessions, looks at some exciting features as well as presentations from other MVPs.</p> <p><img src="/link/75fee285443a4da3a211768015b76cc8.aspx" alt="" width="1335" height="1005" /></p> <p>In this blog post, I&rsquo;ll be breaking down key takeaways in terms of strategy, product and the technical side of things as well as an outlook on where the future is heading that were covered at Opticon 2022.</p> <h2>Products &amp; Strategy</h2> <p>At Opticon 2022, there was a keen focus on the new Optimizely, focusing on 3 core areas which also included a number of product name changes to align them closer to what they actually do.</p> <p><img src="/link/f907cd9a768149ad9f0854eca30a78fb.aspx" alt="" width="823" height="578" /></p> <h3>Orchestrate</h3> <p>The ability to ideate and create content across an organization and have it flow into the content management platform where it can be augmented with web specific information where needed.</p> <ul> <li><strong>Optimizely Content Marketing </strong>&ndash; This is the new name for the recently acquired Welcome software, a tool that allows for the ideation and creation of content and ideas across all of your organization&rsquo;s channels. In an upcoming update, once web channel content has been created, it will allow publishing directly into the Content Management platform.</li> <li><strong>Optimizely Content Management &ndash;</strong> The new name for the content cloud, our place for managing web content, collaboration and publishing it to end users.</li> </ul> <p>&nbsp;</p> <h3>Monetize</h3> <p>Generating revenue through best-in-class B2C and B2B commerce products that allows teams to create rich goal-driven and personalized commerce experiences.</p> <ul> <li><strong>Optimizely B2C Commerce</strong> &ndash; A feature-rich platform for creating commerce experiences that target direct customer sales. With features such as catalog management, payment, tax, customer and order management, multi market and personalization.</li> <li><strong>Optimizely B2B Commerce</strong> &ndash; A self-contained commerce platform for specific use cases of B2B sales including catalog management, PIM, mobile app, integrations and strong search.</li> </ul> <p>&nbsp;</p> <h3>Experiment</h3> <p>Experimenting and learning what delivers the best experiences to the end customer and drives sales by testing out a hypothesis. Recently migrated to the Google Cloud platform for closer integration with GA4, allowing it to be sold in the Google Marketplace as an offering.</p> <ul> <li><strong>Optimizely Web Experimentation </strong>&ndash; Allows for A/B, Multivariate, Personalization and multi-armed bandit experiments delivered via JavaScript, allowing test creators to use the platform UI to easily build experiments.</li> <li><strong>Optimizely Feature Experimentation</strong> &ndash; What was Full Stack has been rebuilt and is now geared around everything being a feature flag. Experiments are built into the solution by developers and configured through the platform. Using the API, this empowers experimentation on any platform such as web, TVs, consoles, kiosk, or mobile.</li> </ul> <h3>Key Product Themes</h3> <p>Justic Anovick talked through the key roadmap themes for the platform, which was very much about taking all the products and unifying them. Therefore, to me, the big standout was harmony and this process of harmonizing the product suite.</p> <p><img src="/link/a0c701fffcdb44b6a70fd7bf63790d95.aspx" alt="" width="1343" height="605" /></p> <p>Key takeaways from this session included:</p> <ul> <li>Unifying the look and feel of the products in a central management interface with Single Sign On across all the products.</li> <li>Utilizing data and intelligence from ODP and Experimentation across the product stack to provide a unified way to make decisions. Examples of this include using ODP in both content management and as customer segments in experimentation.</li> <li>Collaboration allowing us to use the new features of Content Marketing and the centralized data to empower teams to create, manage and reuse content across channels.</li> </ul> <p>&nbsp;</p> <p>&nbsp;</p> <h2>Technical &amp; Development</h2> <p>Although Opticon 2022 was very focused on the customer experience, there were some great takeaways from the technical side throughout the different sessions. Here are my key takeaways.</p> <h3>Liquid Templating</h3> <p>Released in October, Liquid templating is based on the popular Fluid templating format and was created by Dean Barker and Mark Everard as an open source project: <a href="https://github.com/episerver/liquid-templating-cms">https://github.com/episerver/liquid-templating-cms</a> . Fluid is one of the most popular templating frameworks, and the benefit of Liquid is that it is not only simpler for front-end developers, but templates can come from anywhere, allowing a great decoupling of front-end and back-end logic, which is more and more useful in a headless composable world. &nbsp;It&rsquo;s very likely that demo sites will start shipping with this as the standard way of developing &ndash; therefore, now is the time to get on board.</p> <h3>Commerce Roadmap</h3> <p><img src="/link/82e597fb41c24786b3e8bc9b69d9f49b.aspx" alt="" width="1707" height="933" /></p> <p>The Commerce roadmap crosses both B2C and B2B, but had a number of interesting features:</p> <ul> <li>Product Recommendations &ndash; B2B is getting integrations with the already popular product recs features commonly used in B2C.</li> <li>Commerce Cloud APIs &ndash; A stronger, richer set of APIs for working with Commerce items akin to that of the Content Delivery API.</li> <li>Bolt Integration &ndash; A quick checkout feature like single sign on, but with knowledge of your checkout information (payment, addresses and such). Popular in the USA.</li> <li>OptiID Integration &ndash; Hopefully, this is a single sign of sorts for the platform.</li> </ul> <h3>Content Graph</h3> <p>A brand-new Elastic Search platform that, from an architectural design standpoint, is a lot more decoupled from the Elastic Search instances, meaning better stability and performance. <a href="https://world.optimizely.com/blogs/john-hakansson/dates/2022/8/let-me-introduce-content-graph/">Currently in Beta with a limited feature set</a>, this is built on the hugely popular Graph QL specification and has been built for power and flexibility.</p> <p>Over the coming years, we will see more features in this product and I would expect it being used as a full replacement for Search &amp; Navigation, with features to match or better.</p> <h3>Real-Time Segmentation</h3> <p>A long-awaited feature for the Optimizely Data Platform (ODP) is real-time segmentation, which allows customer segments to be executed in near real time on the platform. This has a number of integrations with the other platforms, such as:</p> <ul> <li><strong>Visitor Groups</strong> &ndash; Allowing Content Marketing and B2C Commerce personalization with knowledge of the ODP customer data. A very powerful way of targeting customers for personalized experiences.</li> <li><strong>Experimentation</strong> &ndash; Web and Feature Experimentation allowing targeting to be based on ODP real-time segments. This allows us to target experiments on the individual information we have for customers, allowing a much more granular experiment.</li> </ul> <h2>Conclusion</h2> <p>Opticon 2022 gave us lots to think about and a much tighter message across the product stack that harmonizes the platform. In the next 12-18 months, we can look forward to unified interfaces, with single sign on and all of the data we have flowing and being utilized between the products. Also, now that the .NET 5 upgrade is out of the roadmap, there&rsquo;s more focus on feature delivery across the products, as seen in the Commerce roadmap. No new products have been brought into the platform, but we do have the new Content Graph platform that&rsquo;s going to be a real contender in the platform&rsquo;s search capabilities.</p> <p>Overall, however, the key excitement for most people was being face to face with people, growing connections and really enjoying the great experience Optimizely put on in sunny San Diego. Also, as a bonus, the closing of day 3 with Magic Johnson coming on stage with Alex was pretty good too 😊.</p> <p>The platform has an exciting future of growth and harmonization, and I can&rsquo;t wait to see where we go!</p> <p>Videos from Opticon 2022 can be found here: <a href="https://www.optimizely.com/insights/opticon">https://www.optimizely.com/insights/opticon</a></p>Tue, 18 Oct 2022 13:26:00 +0700https://niteco.com/articles/nicef-sponsors-mid-autumn-celebration-at-a-rural-nursery-school/lam.duong@niteco.seNICEF sponsors mid-Autumn celebration at a rural nursery school<p><span data-contrast="auto">In the joyful atmosphere of Vietnam's traditional Mid-Autumn festival, children will always receive special treats. While the festival and its roots are little known outside of Asia, Vietnamese children look forward to it for weeks. </span><span data-contrast="auto">However, not every child knows about the special feeling and the sweet little gifts of this exciting day. For children in schools in mountainous and rural areas such as Pha Don, in Long Sap commune, Son La province, the Mid-Autumn Festival is just another normal school day.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">To remedy this situation, members of Niteco's charity organization NICEF actively donated a small amount of money to give away to the kids and buy gifts. The teachers in the school also bought snacks and sweets to celebrate the Mid-Autumn festival. The children were bewildered at first, but also thrilled. They were allowed to eat plenty of snacks and take home as much as they wanted.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> <img src="/link/1770fffa510748c4821af554b3d6cd05.aspx" alt="" width="1200" height="801" /></span></p> <p style="text-align: center;"><em><span data-contrast="auto">This picture sent by the teachers shows the children with their Mid-Autumn gifts.</span></em><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">With the mission of improving the lives of disadvantaged people in Vietnam, we at NICEF have been making constant efforts to be able to reach more and more people. After the Covid pandemic halted our activities for most of two years, NICEF is excited to have restarted its journey in 2022.</span></p>Fri, 09 Sep 2022 09:26:00 +0700https://niteco.com/articles/nicef-helps-restore-nursery-school-in-rural-vietnam/lam.duong@niteco.seNICEF helps restore nursery school in rural Vietnam<p>After an involuntary hiatus caused by the Covid-19 pandemic, Niteco&rsquo;s charity organization NICEF was finally able to relaunch its activities in Vietnam in the summer of 2022. The organization, run by Niteco employees and supported by the company, has been helping those less fortunate in Niteco&rsquo;s chosen home of Vietnam since 2014. Among other things, NICEF has sponsored heart and cleft lip surgeries and built school playgrounds in rural areas.</p> <p>In July 2022, a team of Niteco employees traveled to the Vietnamese province of Son La to help in the renovation of a nursery school in the small rural commune of Long Sap. Pha Don nursery school was in dire need of new facilities like restrooms and a kitchen to cook meals for the pupils.</p> <p><img src="/link/7d94236e3937476b86759d947cc405b1.aspx" alt="" width="1200" height="800" /></p> <p style="text-align: center;"><em>The NICEF team building new book shelves for the pupils</em></p> <p>The NICEF delegation brought along donations and gifts generously given by Niteco employees, among them an amount of VND23,450,000 (~$1000) to buy school supplies and building materials. The team also brought in-kind donations like books, clothes, and toys. NICEF also donated VND62,000,000 (~$2600) for the construction of the new kitchen and restrooms, as well as for the restoration of old facilities in need of repair.</p> <p><img src="/link/e7b05a02684b4883abd3d56cc07c5681.aspx" alt="" width="1200" height="800" /></p> <p style="text-align: center;"><em>The pupils of Pha Don nursery school eating their lunch in school</em></p> <p>The visit continues NICEF&rsquo;s proud tradition of supporting schools and kindergartens in rural Vietnamese provinces, helping teachers create a more comfortable learning environment. In 2019, NICEF raised more than $2500 to build a playground at a school in the province of Thanh Hoa, and in 2017, Niteco employees raised more than $8500 to build a new kindergarten building in a small village in the province of Bac Kan.</p> <p>Since 2014, NICEF has raised more than $75,000, with Niteco regularly pitching in and matching the donations made by employees.</p>Thu, 04 Aug 2022 09:26:00 +0700https://niteco.com/articles/why-you-should-use-a-one-stop-shop-agency-for-web-development-and-digital-marketing/lukas.schwitzer@niteco.seWhy you should use a one-stop shop agency for your website<p>Designing, building, maintaining, and running a website, be it an Ecommerce site or not, requires more than the efforts of a website development team. You also need teams to take care of your digital marketing, SEO, conversion rate optimization and A/B Testing, design work, and more. In the past, this meant having to deal with lots of different agencies, each providing one of these services. If you&rsquo;ve ever had to do it, you know it&rsquo;s a nightmare of stakeholder management.</p> <p>Working with a one-stop shop agency like <a href="/link/aa5328d80a8c4d2cadec3b8bdb44e5d3.aspx" target="_blank" rel="noopener">Niteco</a>, however, is different. Communication is greatly simplified, since teams within the partner agency know each other and work closely together. Taking care of your website development as well as your digital marketing needs suddenly becomes a much easier task &ndash; and we&rsquo;ll show you how it works.</p> <h2><strong><span id="what-is-one-stop-shop-agency">What is a one-stop shop agency?</span></strong></h2> <p>A one-stop shop agency is a company that provides a comprehensive range of services in web development and digital marketing. These services often include web development itself, web design, content creation, search engine optimization (SEO), conversion rate optimization, <a href="/link/c504ef8178c0496d8259ae46a2617b32.aspx" target="_blank" rel="noopener">email marketing</a>, and many others. The goal of a one-stop shop agency is to provide clients with a single point of contact for all their needs, streamlining the process and making it more convenient for clients to access the full range of services they require.</p> <p>Taking Niteco as an example, the greatest advantage of working with a one-stop shop agency is having to manage fewer stakeholders. For complicated tasks that need the involvement of several different teams, it&rsquo;s enough to brief one team. They will then put a process in motion that involves all the teams that are relevant for the given task, freeing up time for the client that would otherwise be spent on having numerous meetings with different stakeholders.</p> <h2><strong>The benefits of a one-stop shop solution in web development and digital marketing</strong></h2> <h3><strong>Simplicity</strong></h3> <p>Without a doubt, it&rsquo;s an advantage to have all the services you need under one roof. While, of course, you&rsquo;re working with different teams on different services, those teams share an office in a one-stop shop agency. That means that issues between teams are resolved much more quickly and processes are less ambiguous. Also, adding more services to your suite becomes simpler than ever if your partner offers those services as well.</p> <h3><strong>Streamlined communication</strong></h3> <p>The existence of a single point of contact and the time savings associated with it may just be one of the greatest advantages of the one-stop shop approach. Zhenbei Li, Digital Manager APAC and MEA at Electrolux, put it best, we think. She said,</p> <blockquote> <p>&ldquo;When I have a task that needs the support of many different teams, I only need to brief one project manager. They will then go on to inform the others and put a plan in place. I saves me tremendous time I can then spend on other pressing business.&rdquo;</p> </blockquote> <p><img src="/link/0efe315f025d489c9fb1a3853a02b368.aspx" alt="" width="1280" height="640" /></p> <p style="text-align: center;"><em>The simplified communication is a huge advantage of working with a one-stop shop agency</em></p> <h3><strong>Cost efficiency</strong></h3> <p>Maintaining relationships and contracts with several different vendors is not only complicated and time-consuming, it can also get quite expensive. Having to buy every single service individually from a different vendor means more time and money spent on researching those different vendors, getting to know new sales departments and project management teams, and reviewing contracts. When you&rsquo;re working with a one-stop-shop agency, you can often get bundled pricing for multiple services, with further pricing advantages as part of a long-term partnership, led by sales teams that get to know you and your requirements.</p> <h3><strong>Consistency</strong></h3> <p>When you&rsquo;re working on a project with several different vendors providing different services, making sure that everyone is working toward a common goal becomes your responsibility as the customer. While vendors will probably do their best to complete their tasks and provide their service as best they can, every agency invariably has different ways of doing things. So, to ensure consistency, you as the customer representative have to stay on top of everything, making sure that the work is aligned. Working with a one-stop shop agency, with different teams under common leadership, this alignment is much simpler to ensure, resulting in a more consistent solution.</p> <h3><strong>Avoiding conflicts</strong></h3> <p>Stakeholder management can be very challenging, and even more so when you&rsquo;re dealing with partners that don&rsquo;t get along. If you&rsquo;ve ever been in a position where partner agencies were pushing blame for an issue back and forth endlessly, you know what we&rsquo;re talking about. When you&rsquo;re working with a one-stop shop agency, there&rsquo;s no more need to participate in such blame games. While, of course, miscommunications can still happen, knowing that everyone involved is working under common management makes conflict resolution much quicker and smoother.</p> <h2><strong>Common one-stop shop services in website development and digital marketing</strong></h2> <p>Most one-stop shop agencies cover a wide array of services, though few cover every single offering you might need for the running of a successful Ecommerce site. Some of the essential services most one-stop shop agencies offer are the following:</p> <h3><strong>Web development</strong></h3> <p><a href="/link/a8f52609e84b441b88a9fa72598b01c3.aspx" target="_blank" rel="noopener">Website development</a> is the core service for the building and maintenance of successful websites and Ecommerce sites. Whether your site uses <a href="/link/2f47b53da75c43bfb49212a7fcae7ba6.aspx">Optimizely</a>, Sitecore, Umbraco or other platforms, your chosen agency&rsquo;s extensive expertise will allow you to get the most out of it.</p> <p>The web developers not only build your site and make sure it runs smoothly without any downtimes, they also support other teams in providing their services. For example, services like data analytics, SEO, or conversion rate optimization often require technical support in their implementation.</p> <h3><strong>UI/UX Design</strong></h3> <p>Great <a href="/link/51ddc24fd7bc4652ba844c845c979f3b.aspx">UI/UX design</a> can make the difference between your site being a success or hemorrhaging users immediately. Good user experience is absolutely essential, and close cooperation between the design team and the development team can ensure that your design gets implemented in the best way.</p> <p>In a <a href="#what-is-one-stop-shop-agency"> one-stop shop agency</a>, your development team and your design team are already familiar with each other and know each other&rsquo;s strengths. With their shared experience of designing, building, and implementing great websites, this multi-disciplinary team can make sure that users engage more closely with your site.</p> <a href="/episerver/what-is-one-stop-shop-agency"> <h3><strong>SEO and content services</strong></h3> </a> <p><a href="/episerver/what-is-one-stop-shop-agency">Without </a><a href="/link/443a98a6266045a8b3886ede4828ee01.aspx">good SEO strategy</a> and good content, it&rsquo;s almost impossible for a site to be successful. Google&rsquo;s criteria for high search rankings are becoming ever more stringent, and also include technical requirements and minimum thresholds for your site&rsquo;s performance. These <a href="/link/5cb67f82a85b407882c7b50ee04ab062.aspx">Core Web Vitals</a> mean your SEO team also has to work closely with your web development and maintenance team to ensure that your site&rsquo;s performance is up to scratch.</p> <p>Add to this that SEO requires quality content for Google and other search engines to crawl, meaning that you may also require content creation or content governance services &ndash; all of which require close cooperation with the SEO team. So, it&rsquo;s definitely a good thing if all those teams share a common space and can discuss issues within minutes.</p> <h3><strong>Analytics and conversion rate optimization</strong></h3> <p>Knowing how users behave on your site is incredibly important if you want to improve your user experience, guide users through your sales funnel, and maximize your conversions. With advanced tracking tools and <a href="/link/e51c4e07d6304300837ee60c02ab0a9b.aspx">A/B Testing</a>, a qualified analytics team and conversion rate optimization team working together can tell you exactly where your users drop off and what kind of content converts.</p> <p>To analyze and optimize all aspects of your site, your analytics and CRO team need to work closely with all the other teams, including content services or web developers. And with a one-stop shop agency, those teams working together under common leadership will deliver the most cohesive solution to boost your bottom line.</p> <h2><strong>Why you should give a one-stop shop agency a try</strong></h2> <p>Trying whether a one-stop shop agency is right for you is as easy as starting off with having an agency provide just two services. Once you see how effective this way of doing business is and have become comfortable with the way the agency does things, you can decide to add additional services to your suite.</p> <p>With Niteco, this is the way our customers came to realize that working with our web development and digital marketing teams is the best way forward. If you&rsquo;re looking for a way out of your stakeholder management troubles, <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx" target="_blank" rel="noopener">contact Niteco today</a> to find out how your sites and workflows could benefit from working with a one-stop shop agency.</p>Wed, 18 Jan 2023 09:26:00 +0700https://niteco.com/articles/digital-transformation-kicks-into-high-gear-in-the-apac-region/lukas.schwitzer@niteco.seDigital transformation kicks into high gear in the APAC region<p><span data-contrast="auto">For a new report, Optimizely has teamed up with Pulse to deliver the latest insights on the progress of digital transformation in the APAC region. The report is based on interviews with 400 tech decision-makers from companies throughout the region, in which they were asked to self-evaluate their digital transformation efforts as well as their future plans.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">With online traffic having grown strongly over the last 2 years, pressure on companies to digitally transform and develop new revenue streams has also increased. 100% of respondents to the Optimizely survey said they had increased their transformation speed due to the surge in online traffic, with 70% saying they had moderately or significantly increased their speed.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">A net positive result</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">And the results are clear: 99% of respondents said that digital transformation has had a net positive effect on their business. In fact, 70% of respondents said that they were expecting 21-30% of their overall revenue in 2022 to come from digital revenue streams. 15% of IT leaders were even looking at more than 30% of their overall revenue coming from such revenue streams.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Asked how they had worked to meet this influx of new traffic, 80% replied that they had outsourced traffic to third-party cloud providers, while 67% said they had increased their own server capacity. 39% declared that they had increased their IT department headcount, 23% also opted to increase personnel in marketing departments.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Digital transformation is also set to remain a priority for IT leaders in the region over the next 12 months. 53% said that digital transformation is a significant priority for them, with only 3% of respondents declaring that, while important, further transformation would not be a priority for them. On the other hand, none of the respondents declared digital transformation their top priority for the year.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">Budgets reflect the new priorities</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">The renewed focus on digitally transforming businesses is also reflected in company budgets. 71% of tech decision-makers said that 21 to 30% of their company budgets were currently set aside for digital transformation initiatives. 12% of companies bookmarked 31 to 40% of their budgets to such endeavors, with 1% of respondents&rsquo; companies going as high as 41 to 50%. Only 17% of businesses still use no more than 20% of their annual budgets to power their transformations.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">And the investment in digital transformation is set to continue, with 99% of respondents declaring they would increase their investments in the next 3 months. Only 1% said they were looking to slightly decrease their investments.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/8231a7745158425abd22dd920c5ecf50.aspx" alt="" width="624" height="333" /></span></p> <p><span data-contrast="auto">However, many IT leaders concede that their digital transformation strategy is far from perfect. Only 20% were comfortable to call their transformation strategy &ldquo;cohesive&rdquo;, with 79% saying their own was &ldquo;somewhat cohesive, but gaps remain.&rdquo; We see a similar picture in how decision-makers assess their businesses&rsquo; digital maturity. Only 8% said their company was significantly more digitally mature now than it was 12 months ago. While all respondents answered that their companies&rsquo; digital maturity had increased, most said the increase was only slight or moderate.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">You can download and read the full report </span><a href="https://www.optimizely.com/insights/the-seat-of-digital-at-the-boardtable-budgets-and-priorities/"><span data-contrast="none">here</span></a><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">To find out more about how you can drive your own digital transformation with Optimizely, <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx" target="_blank" rel="noopener">contact Niteco today</a>.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>Wed, 27 Apr 2022 15:28:40 +0700https://niteco.com/articles/standardise-your-solution-architecture-diagrams/sofia.max@niteco.comStandardize your Solution Architecture Diagrams<p>People say that "Drawing great solution architecture diagrams is an art&rdquo;. Drawing solution architecture diagrams does involve a lot of creativity: Choosing shapes and symbols, colors, and types of arrows, deciding on what to write and where to place all the boxes and so on. But what often happens when people choose their own ways of drawing diagrams is that the architecture is easily misunderstood.</p> <h2><strong><span lang="en-AU">When diagrams fail to present the solution</span></strong></h2> <p><span data-contrast="auto">We have&nbsp;probably all&nbsp;seen diagrams&nbsp;similar to&nbsp;the ones below&nbsp;&ndash;&nbsp;all&nbsp;with&nbsp;different design&nbsp;language.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">The first one uses&nbsp;colors, lots of symbols, text,&nbsp;logotypes,&nbsp;and dividers - but no connectors/arrows. The&nbsp;described system&nbsp;is in the middle, but its purpose is not clear.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><a title="Emobiq, CC0, via Wikimedia Commons" href="https://commons.wikimedia.org/wiki/File:EMOBIQ(TM)_Solution_Architecture.png"><img style="display: block; margin-left: auto; margin-right: auto;" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/EMOBIQ%28TM%29_Solution_Architecture.png/512px-EMOBIQ%28TM%29_Solution_Architecture.png" alt="EMOBIQ(TM) Solution Architecture" width="512" /></a></p> <p><em><span class="TextRun BCX0 SCXW241483660" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">Source: <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/EMOBIQ%28TM%29_Solution_Architecture.png/512px-EMOBIQ%28TM%29_Solution_Architecture.png" target="_blank" rel="noopener">Wikimedia</a></span></span></em></p> <p><span class="TextRun BCX0 SCXW241483660" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">In the diagram below, we see the described system at the top. This&nbsp;</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">diagram</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">&nbsp;uses no symbols or logos and has a limited number of shapes. Unlike the&nbsp;</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">previous</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">&nbsp;diagram, which used no connectors/arrows, this diagram us</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">es</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">&nbsp;arrows as a main&nbsp;</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">component</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">. It is still unclear what purpose the system serves, except&nbsp;</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">that&nbsp;</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">it is</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">&nbsp;</span><span class="NormalTextRun AdvancedProofingIssueV2 BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)">some kind of web</span><span class="NormalTextRun BCX0 SCXW241483660" data-ccp-parastyle="Normal (Web)"> application.</span></span></p> <p><img src="/link/b0c95cc8fe444671bcc2117466557699.aspx" alt="" width="2500" height="1616" /></p> <p style="text-align: left;"><em>Source: <a href="https://commons.wikimedia.org/wiki/File:Webrun_architecture.PNG" target="_blank" rel="noopener">Wikimedia</a></em></p> <p style="text-align: center;"><a class="first-btn-action button button--rounded font-gilroy--semibold" style="color: black;" href="/link/b0c95cc8fe444671bcc2117466557699.aspx" target="_blank" rel="noopener">Click here for the full image</a></p> <p><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">The third diagram is the first that involves actors</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;&ndash;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;we</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">see them as&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">the classical</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;faceless icons. There are symbols,&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">multicolored</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;connectors of two sorts (</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">two-</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;and one</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">-</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">directional). The diagram&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">contains</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;a list of&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">functionalities</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">, describing features of the system. What the system does</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;and</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">&nbsp;who it&nbsp;</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)">serves</span><span class="NormalTextRun SCXW19576904 BCX0" data-ccp-parastyle="Normal (Web)"> is not explained in this diagram either.</span></p> <p><img src="/link/3876b9714cd44732b30a877f593c7e26.aspx" alt="" width="2500" height="1532" /></p> <p style="text-align: left;"><em>Source: <a href="https://upload.wikimedia.org/wikipedia/commons/d/d9/Global_Architecture_of_SPADE_and_the_solution_it_creates.png" target="_blank" rel="noopener">Wikimedia</a></em></p> <p style="text-align: center;"><a class="first-btn-action button button--rounded font-gilroy--semibold" style="color: black;" href="/link/3876b9714cd44732b30a877f593c7e26.aspx" target="_blank" rel="noopener">Click here for the full image</a></p> <p><span data-contrast="auto">The three diagrams are&nbsp;very different&nbsp;in visual appeal, what symbols they use and what information they are trying to convey. Indeed, some creativity&nbsp;has gone&nbsp;into making these diagrams. I think&nbsp;there is&nbsp;even a slight chance that we could get "Solution Diagrams" classified&nbsp;as a new artform among the 28 existing art forms listed by&nbsp;</span><a href="https://www.axisweb.org/artforms/"><span data-contrast="none">Axis</span></a><span data-contrast="auto">, a platform for artists.&nbsp;</span></p> <p><span data-contrast="auto">Jokes aside, is diagramming supposed to be an artform? Does it&nbsp;require&nbsp;creative skills just to architecture facts in a visual way?&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">And how useful are these diagrams?&nbsp;Can they be misinterpreted easily? For&nbsp;example,&nbsp;the middle diagram&nbsp;we looked at earlier&nbsp;has arrows in both directions on all connectors&nbsp;&ndash; so&nbsp;is there always two-way&nbsp;communication&nbsp;happening&nbsp;between all systems or was that just the default connector used by the&nbsp;diagram&rsquo;s&nbsp;drawer?&nbsp;</span></p> <h2><strong><span data-contrast="auto">Standardization using the C4 model</span></strong><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></h2> <p><span data-contrast="auto">At Niteco we have started to&nbsp;look at&nbsp;how we can&nbsp;standardize&nbsp;our diagrams and not only take the artistic requirements&nbsp;out of&nbsp;the&nbsp;drawing but&nbsp;add&nbsp;a long list&nbsp;of benefits that cannot be achieved using traditional methods.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">We are starting the&nbsp;standardization&nbsp;process with our Optimizely&nbsp;solutions,&nbsp;and we are using the&nbsp;</span><a href="https://c4model.com/"><span data-contrast="none">C4 model</span></a><span data-contrast="auto">. This model allows the drawer to focus on&nbsp;representing&nbsp;the system completely in a visual form,&nbsp;without ambiguity.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">C4 comes in three levels, and this post focuses on the first level. Future posts will cover level 2 and level 3.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">The first level will be useful across the&nbsp;organization&nbsp;and&nbsp;is&nbsp;also easy to understand&nbsp;for&nbsp;the client. It tells the overall story about the system, its&nbsp;actors,&nbsp;and its&nbsp;integrations.&nbsp;</span></p> <p><span data-contrast="auto">The C4 diagram below is&nbsp;of&nbsp;a&nbsp;fictious system&nbsp;for the made-up business&nbsp;Automo&nbsp;that owns several car brands. I will not tell you more than that, since the C4 diagram contains all the contextual&nbsp;information within it. Unlike the three diagrams above, the reader should,&nbsp;within minutes,&nbsp;have a good grasp&nbsp;of&nbsp;what this system does and who it serves.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">The diagram is almost like a book, where the title and blurb&nbsp;are&nbsp;seen in the blue box in the middle.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Title: Car Parts</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Ok, maybe not a fiction best seller :)&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Blurb: Car parts websites for all&nbsp;Automo&nbsp;brands that allow mechanics, distributors,&nbsp;staff,&nbsp;and consumers to&nbsp;purchase&nbsp;car parts and accessories for&nbsp;Automo cars.&nbsp;</span></p> <p><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}"><img src="/link/17f3aeb6748f41ada41b2d2a99b3fd8f.aspx" alt="" width="2614" height="1233" /></span></p> <p style="text-align: center;"><a class="first-btn-action button button--rounded font-gilroy--semibold" style="color: black;" href="/link/d0e5c3b1fe274d6285d34334dad07235.aspx" target="_blank" rel="noopener">Click here for the full image</a></p> <p><span data-contrast="auto">The rest of the "book" is read in whatever order the reader chooses. Each "mini chapter" starts with a&nbsp;box and&nbsp;continues by following a "shooting arrow" to the receiving box, where the chapter ends.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">As an example:&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Mechanic Buys Parts from Car Parts</span></p> <p><span data-contrast="auto">Or</span></p> <p><span data-contrast="auto">Car Parts Request Payments from&nbsp;Ebay.</span></p> <p><span data-contrast="auto">Or</span></p> <p><span data-contrast="auto">Car Parts Authenticates&nbsp;Automo Staff via Azure AD Connect.</span></p> <p><span data-contrast="auto">The Level 1 diagram only&nbsp;contains&nbsp;3 different&nbsp;types&nbsp;of boxes:</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">The blue box&nbsp;represents&nbsp;the&nbsp;</span><strong><span data-contrast="auto">described system.&nbsp;</span></strong><span data-contrast="auto">This is represented by the Visual Studio solution.</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">The grey boxes represent all the&nbsp;</span><strong><span data-contrast="auto">external systems</span></strong><span data-contrast="auto">&nbsp;with which&nbsp;the described system is integrated.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">The green boxes represent the&nbsp;</span><strong><span data-contrast="auto">actors.&nbsp;</span></strong></li> </ul> <p><span data-contrast="auto">There is only one type of connector, the&nbsp;</span><strong><span data-contrast="auto">triggering&nbsp;</span></strong><span data-contrast="auto">connector. It goes from the actor/system that triggers a system to the triggered system.</span></p> <h2><strong><span data-contrast="auto">Understandable diagrams for all stakeholders</span></strong></h2> <p><span data-contrast="auto">Level 1 of&nbsp;the&nbsp;C4&nbsp;model&nbsp;does not assume any prior knowledge by the reader. Everyone in the business should be able to read the diagram, without having any knowledge&nbsp;of&nbsp;what a CRM, CMS or PIM is.&nbsp;Automo&nbsp;has a wide variety of business users that range from content writers to IT administrators to&nbsp;E-Commerce marketing staff.&nbsp;Automo&nbsp;often employs&nbsp;new people&nbsp;with no knowledge of the company&nbsp;that quickly&nbsp;need&nbsp;to get up to speed. This diagram is helpful for them&nbsp;as well,&nbsp;since&nbsp;there is&nbsp;an emphasis on&nbsp;providing&nbsp;a good explanation of each system and each actor.&nbsp;At&nbsp;Niteco,&nbsp;the diagram is used by developers, architects, testers, PMs,&nbsp;operations,&nbsp;and sales&nbsp;&ndash;&nbsp;our&nbsp;solutions&nbsp;are&nbsp;the&nbsp;centerpiece&nbsp;of what we do, and level 1 gives a one-page visual summary of each solution.</span></p> <p><span data-contrast="auto">Only the direct integrations are described in C4. The PIMS connects to an ERP system, which&nbsp;would&nbsp;often be included in other architecture diagrams. But Car Parts does not contain a single line of code of integration with the ERP, hence the ERP is not included in the diagram. The C4 diagram displays only what interacts with the described system.</span></p> <p><span data-contrast="auto">However, to roll out a&nbsp;standardized&nbsp;way of drawing Optimizely solutions&nbsp;at Niteco, C4 rules did not supply enough guidelines. We added our own rules and definitions on top of the ones given by C4.</span></p> <p><span data-contrast="auto">Optimizely CMS and Commerce&nbsp;are&nbsp;tightly coupled with our&nbsp;code,&nbsp;and we did a lot of thinking on how to describe this in the diagrams. We landed on the solution seen in the diagram above,&nbsp;showing them&nbsp;as external systems.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><img src="/link/386bbe41edc14267828d55fb134d5ac3.aspx" alt="" width="712" height="522" /><span class="TextRun BCX0 SCXW256942357" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">T</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">his way</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">,</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">&nbsp;we can quickly see what parts of the Optimizely product suite&nbsp;</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">are</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">&nbsp;included in each solution, and we&nbsp;</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">can</span><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">&nbsp;also keep track of what version each solution is running by adding them as properties in the model (</span></span><span class="TextRun BCX0 SCXW256942357" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)">Component of DXC</span></span><span class="TextRun BCX0 SCXW256942357" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW256942357" data-ccp-parastyle="Normal (Web)"> is an example of such a property).</span></span></p> <h2><strong><span data-contrast="auto">Using&nbsp;Archimate&nbsp;for diagramming</span></strong></h2> <p><span data-contrast="auto">That leads us to the powerful modelling aspects of&nbsp;Archimate, the tool we are using to draw C4 diagrams.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">If I select the PIMS box and open the&nbsp;</span><strong><span data-contrast="auto">visualizer&nbsp;</span></strong><span data-contrast="auto">(see below), I can see all objects that are connected to&nbsp;the&nbsp;PIMS. In addition to Car Parts,&nbsp;the&nbsp;PIMS API (visible in level 2) is connected to the PIMS. In our fabricated example, Niteco is managing more solutions for&nbsp;Automo&nbsp;which&nbsp;also integrate&nbsp;with the same PIMS. As we draw these solutions in&nbsp;Archimate, the&nbsp;visualizer&nbsp;also&nbsp;includes&nbsp;these solutions, even if they are in independent views.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">The diagram itself is represented by a view and it presents any aspect of a model. In level 1, we are not showing the PIMS API, but it is still in the model.</span></p> <p><img src="/link/9b0de107d7844924af0b4d17b59aaddf.aspx" alt="" width="1152" height="487" /></p> <p><span data-contrast="auto">When we have modelled all the diagrams for&nbsp;Automo, it is useful to&nbsp;analyze&nbsp;the model whenever we have questions about the enterprise architecture.&nbsp;Automo&nbsp;might be in the process of investing in a new PIMS&nbsp;solution and would like to know all the dependencies on the existing PIMS. By looking at the model,&nbsp;we can quickly find all the connectors to the PIMS&nbsp;and give the client an understanding of the rough costs for replacing their PIMS solution.</span></p> <p><span data-contrast="auto">There is also a SQL query language to search the model.</span></p> <p><span data-contrast="auto">Imagine&nbsp;this scenario:&nbsp;One of&nbsp;Niteco&rsquo;s&nbsp;sales representatives has a new&nbsp;E-Commerce opportunity where the&nbsp;potential client&nbsp;asks&nbsp;for our experience in integrating&nbsp;to&nbsp;CRM systems. To quickly find out what CRM systems have been integrated in any of our solutions, he can query the model where all diagrams are stored.&nbsp;</span><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></p> <p style="margin: 0in;"><span lang="EN-AU" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"><img src="/link/ad9c55ae49014c1e94a0eb387e642a59.aspx" alt="" width="1321" height="184" /></span></p> <h2><strong><span data-contrast="auto">Conclusion</span></strong><span data-ccp-props="{&quot;134233117&quot;:true,&quot;134233118&quot;:true}">&nbsp;</span></h2> <p><span data-contrast="auto">That concludes the blog post of the first-level diagramming of&nbsp;the&nbsp;C4&nbsp;model&nbsp;in Archi for Optimizely Solutions. Many goodies have been included, but this way of drawing diagrams and modelling solutions has even more aspects that I will not be able to cover in one post.</span></p> <p><span data-contrast="auto">Some of the many benefits&nbsp;of&nbsp;drawing diagrams&nbsp;using the&nbsp;C4&nbsp;models&nbsp;are:&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Consistency in how solution diagrams are drawn across and within client&nbsp;projects.</span><span data-ccp-props="{}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Reaches a wider audience due to the high readability.</span><span data-ccp-props="{}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Strict definitions&nbsp;minimize&nbsp;the risk&nbsp;of&nbsp;misinterpreting (remember the double arrows in the second sample diagram?) the diagram.</span><span data-ccp-props="{}">&nbsp;</span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Removes the&nbsp;artistic requirements and&nbsp;components&nbsp;in diagramming. No need to think about what&nbsp;colors&nbsp;to apply, what shapes to use, how to connect the shapes, how to position objects, what to&nbsp;represent, what logos to include or what images to decorate with etc. The&nbsp;creative&nbsp;component&nbsp;is&nbsp;eliminated,&nbsp;and all energy can be focused on describing the solution and its integrations.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Ability to query the model using SQL syntax, providing a tool for sales, architects and developers that quickly need to find information across several systems.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></li> </ul>Thu, 06 Jan 2022 11:16:00 +0700https://niteco.com/articles/net-6-and-optimizely-what-2022-holds-in-store-for-the-platform/scott.reed@niteco.seOptimizely on .NET 6: What's new for the platform | Niteco<p><strong><span data-contrast="auto">In 2022, Optimizely will upgrade its platform to the recently-released .NET 6.&nbsp;Niteco&rsquo;s&nbsp;Optimizely MVP Scott Reed details what benefits this change will bring.</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Released on November&nbsp;8</span><span data-contrast="auto">th</span><span data-contrast="auto">,&nbsp;2021,&nbsp;.NET 6 marks the latest update in the .NET Core product line. It gives us several great framework benefits and includes the release of C# 10,&nbsp;providing developers with more updates to our favorite programming language.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Along with this release by Microsoft,&nbsp;we recently had the release of Optimizely CMS 12 and Commerce 14 on the .NET 5 version,&nbsp;which is a major milestone for the platform. Within this blog,&nbsp;I&rsquo;ll talk about the .NET 6 and C# 10 features as well as&nbsp;the impact it&nbsp;will have&nbsp;for Optimizely customers and partners&nbsp;once Optimizely upgrades from .NET 5 to .NET 6.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="TextRun BCX0 SCXW67027914" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW67027914">For a full breakdown</span><span class="NormalTextRun BCX0 SCXW67027914">&nbsp;of the benefits of .NET 6</span><span class="NormalTextRun BCX0 SCXW67027914">,</span><span class="NormalTextRun BCX0 SCXW67027914">&nbsp;you can navigate to&nbsp;</span></span><a class="Hyperlink BCX0 SCXW67027914" href="https://devblogs.microsoft.com/dotnet/announcing-net-6/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined BCX0 SCXW67027914" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun BCX0 SCXW67027914" data-ccp-charstyle="Hyperlink">https://devblogs.microsoft.com/dotnet/announcing-net-6/</span></span></a><span class="TextRun BCX0 SCXW67027914" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW67027914">&nbsp;</span></span><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></span></p> <h2><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="TextRun SCXW209766867 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW209766867 BCX0" data-ccp-parastyle="heading 3">1. .NET 5 &amp; 6 Support</span></span><span class="EOP SCXW209766867 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></span></span></h2> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP SCXW209766867 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"><span class="TextRun SCXW255970515 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW255970515 BCX0">As you can see in the image below</span><span class="NormalTextRun SCXW255970515 BCX0">,</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;.NET 5</span><span class="NormalTextRun SCXW255970515 BCX0">,</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;which</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;recently saw</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;the first major release of Optimizely CMS and Commerce</span><span class="NormalTextRun SCXW255970515 BCX0">,</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;is not long</span><span class="NormalTextRun SCXW255970515 BCX0">-</span><span class="NormalTextRun SCXW255970515 BCX0">term support</span><span class="NormalTextRun SCXW255970515 BCX0">ed</span><span class="NormalTextRun SCXW255970515 BCX0">. .NET 6 has long</span><span class="NormalTextRun SCXW255970515 BCX0">-</span><span class="NormalTextRun SCXW255970515 BCX0">term support</span><span class="NormalTextRun SCXW255970515 BCX0">,</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;which means it will be supported for 3 years</span><span class="NormalTextRun SCXW255970515 BCX0">,</span><span class="NormalTextRun SCXW255970515 BCX0">&nbsp;allowing for stab</span><span class="NormalTextRun SCXW255970515 BCX0">ility within anything built with it.</span></span><span class="EOP SCXW255970515 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></span></span></span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP SCXW209766867 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"><span class="EOP SCXW255970515 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/f6e076f396ba47c8955b0b3849baa832.aspx" alt="" width="1379" height="394" /></span></span></span></span></p> <h2><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP SCXW209766867 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"><span class="EOP SCXW255970515 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="TextRun BCX0 SCXW249771359" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun BCX0 SCXW249771359" data-ccp-parastyle="heading 3">2. Performance</span></span><span class="EOP BCX0 SCXW249771359" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></span></span></span></span></h2> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP BCX0 SCXW67027914" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="EOP SCXW209766867 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"><span class="EOP SCXW255970515 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><span class="TextRun BCX0 SCXW114757464" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW114757464">There&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">have</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;been&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">several</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;improvements&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">in</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;.NET 6</span><span class="NormalTextRun BCX0 SCXW114757464">,</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;making this the best version ever</span><span class="NormalTextRun BCX0 SCXW114757464">. From the speed of building&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">(</span><span class="NormalTextRun BCX0 SCXW114757464">which is excellent for developers</span><span class="NormalTextRun BCX0 SCXW114757464">)</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;to framework improvements&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">&ndash;&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">such</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;a</span><span class="NormalTextRun BCX0 SCXW114757464">s in I/O in particular&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">&ndash;</span><span class="NormalTextRun BCX0 SCXW114757464">, they</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">ha</span><span class="NormalTextRun BCX0 SCXW114757464">ve&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">resulted in decreased execution time, latency, and memory use.</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;An a</span><span class="NormalTextRun BCX0 SCXW114757464">s shown in a&nbsp;</span></span><a class="Hyperlink BCX0 SCXW114757464" href="https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-2/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined BCX0 SCXW114757464" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun BCX0 SCXW114757464" data-ccp-charstyle="Hyperlink">Microsoft blog</span></span></a><span class="TextRun BCX0 SCXW114757464" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW114757464">,</span><span class="NormalTextRun BCX0 SCXW114757464">&nbsp;</span><span class="NormalTextRun BCX0 SCXW114757464">build times have been improved significantly</span><span class="NormalTextRun BCX0 SCXW114757464">.</span></span><span class="EOP BCX0 SCXW114757464" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></span></span></span></span></p> <p><img src="/link/138ebda99a6b41ecb5083e60da8783cd.aspx" alt="dotnet6-build-improvements.png" /></p> <p>For framework performance, there are many improvements across the board. You can read an in-depth write-up of the improvements with many of the core underlying framework code <a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/">here</a>. But as a simple example, the standard string format method has been made faster with a smaller code size.</p> <table style="border-collapse: collapse; width: 100%; height: 54px;" border="1"> <tbody> <tr style="height: 18px;"> <th class="" style="width: 19.2029%; height: 18px; text-align: center;"><span class="highlight">Method</span></th> <th style="width: 21.558%; height: 18px; text-align: center;"><span class="highlight">Runtime</span></th> <th style="width: 20.2899%; height: 18px; text-align: center;"><span class="highlight">Mean</span></th> <th style="width: 13.9493%; height: 18px; text-align: center;"><span class="highlight">Ratio</span></th> <th style="width: 24.8188%; height: 18px; text-align: center;"><span class="highlight">Code Size</span></th> </tr> <tr style="height: 18px;"> <td style="width: 19.2029%; height: 18px; text-align: center;">Format</td> <td style="width: 21.558%; height: 18px; text-align: center;">.NET 5.0</td> <td style="width: 20.2899%; height: 18px; text-align: center;">13.21 ns</td> <td style="width: 13.9493%; height: 18px; text-align: center;">1.00</td> <td style="width: 24.8188%; height: 18px; text-align: center;">1,649 B</td> </tr> <tr style="height: 18px;"> <td style="width: 19.2029%; height: 18px; text-align: center;">Format</td> <td class="" style="width: 21.558%; height: 18px; text-align: center;">.NET 6.0</td> <td style="width: 20.2899%; height: 18px; text-align: center;">10.37 ns</td> <td style="width: 13.9493%; height: 18px; text-align: center;">0.78</td> <td style="width: 24.8188%; height: 18px; text-align: center;">590 B</td> </tr> </tbody> </table> <h2>3. Unified Platform</h2> <p>There is a continued effort to bring .NET libraries to more platforms and for more usages, continuing on from the work on .NET 5 to create a unified platform for all development, with common approaches to development, deployment, and infrastructure.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/92367d2861ec4ede9b0bf5d3b5e36e50.aspx" alt="dotnet-unified-platform.png" /></p> <h2>4. Minimal APIs</h2> <p>Minimal APIs are designed to allow us to create API endpoints without all of the standard scaffolding of routing and controllers that standard WEB API required. With improvements to C# 10 for expression return types, we can now simply create API mappings in the program.cs file instead, such as shown below.</p> <pre class="language-csharp"><code>app.MapGet("/weatherforecast", () =&gt; { var forecast = Enumerable.Range(1, 5).Select(index =&gt; new WeatherForecast ( DateTime.Now.AddDays(index), Random.Shared.Next(-20, 55), summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); return forecast; }) .WithName("GetWeatherForecast"); </code></pre> <p>We can also add in an endpoint explorer and swagger document generation very easily with the following code.</p> <pre class="language-csharp"><code>var builder = WebApplication.CreateBuilder(args); //Add service to the container. //Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); //Configure the HTTP request pipeline if (app.Environment.IsDevelopment()) { app.useSwagger(); app.UseSwaggerUI(); }</code></pre> <p>You can find more information in the <a href="https://docs.microsoft.com/en-gb/aspnet/core/tutorials/min-web-api?view=aspnetcore-6.0&amp;tabs=visual-studio">Microsoft documentation</a>.</p> <h3>5. Blazor Improvements</h3> <p>Blazor has seen several improvements within .NET 6, including the ability to share your Blazor components across .NET MAUI applications as well as web applications, which can save on the experience of creating native apps as well as web applications.</p> <p>There has also been the introduction of dynamic components, ahead of time compilation for WebAssembly, improved pre-rendering and performance improvements. This makes Blazor an even more compelling reason for the front-end stack.</p> <p>There are also some improvements in the Hot Reload functionality for Blazor WebAssembly, which we&rsquo;ll mention below.</p> <h3>6. Hot Reload</h3> <p>Hot reload allows us to see our application changes almost instantly, allowing for a far faster loop when working and editing code and solutions. For example, in Blazor we can now edit our Blazor markup and components, and with hot reload on save see those changes in the browser almost instantly.</p> <p>However, be aware that any complex changes that can&rsquo;t be easily updated will reload the page, but for developers, this is a massive win, as it reduces time for development and makes that loop of editing and seeing changes a lot faster.</p> <h3>7. Top Level Statements</h3> <p>A top level statement reduces the clutter and default code that is needed for applications to get started and allows the focus to be more on the developer&rsquo;s code. For example, the following examples taken from <a href="https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/top-level-statements">the Microsoft tutorial on top level statements</a> show us the benefit.</p> <p><strong>.NET 5</strong></p> <pre class="language-markup"><code>using System; namespace Application { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } } </code></pre> <p><strong>.NET 6</strong></p> <pre class="language-markup"><code>// See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!"); </code></pre> <h3>8. Global and Implicit Usings</h3> <p>In another move to reduce the amount of file clutter, we now have two new types of project-scoped namespaces which will allow us to no longer require having namespaces on every single file in our applications.</p> <p><strong>Global</strong></p> <p>With global namespaces, we can simply add a set of namespaces to a C# file and mark them as global, and they will then apply to all classes in our project.</p> <pre class="language-markup"><code>global using System;</code></pre> <p><strong>Implicit Usings</strong></p> <p>Since we can infer a lot of the common namespace for project types with .NET 6 and C# 10, we will need these to be automatically added for you. As a standard for projects, the following will be added to the csproj file:</p> <pre class="language-markup"><code>&lt;PropertyGroup&gt; &lt;!-- Other properties like OutputType and TargetFramework --&gt; &lt;ImplicitUsings&gt;enable&lt;/ImplicitUsings&gt; &lt;/PropertyGroup&gt; </code></pre> <p>With this enabled, namespaces like System won&rsquo;t need to be on a file or even in a global namespace file, they will just always be there, and Visual Studio 2022 will be clever enough to know in the design editor &ndash; so no squiggly lines.</p> <h3>9. File Scoped Namespaces</h3> <p>Instead of having to have namespaces wrapped around all our code by default, increasing the amount of indenting, with C# 10 we can now have them just as statements at the top of the C# file.</p> <pre class="language-markup"><code>namespace MyCompany.MyNamespace; class MyClass // Note: no indentation { ... } </code></pre> <h3>10. Much more!!!!</h3> <p>There are so many great features in this update of .NET 6 and C# 10, including:</p> <ul> <li>Lambda Improvements</li> <li>Struct Support for Records</li> <li>Interpolated String Improvements</li> <li>Extended Property Patterns</li> </ul> <p>For a detailed overview of all these features, take a look at <a href="https://devblogs.microsoft.com/dotnet/welcome-to-csharp-10/">https://devblogs.microsoft.com/dotnet/welcome-to-csharp-10/</a>!</p> <h2>Optimizely Upgrade Timeline</h2> <p>As mentioned previously, Optimizely CMS 12 and Commerce 14 are currently on .NET 5. This was a major upgrade from the previous .NET Framework version of the platform.</p> <p>As the support for .NET 5 is ending May 8<sup>th</sup>, 2022 (as seen at <a href="https://dotnet.microsoft.com/platform/support/policy/dotnet-core">https://dotnet.microsoft.com/platform/support/policy/dotnet-core</a>), there will be a need for the .NET 6 version of Optimizely to be ready by the middle of next year. Therefore, Optimizely will be hard at work delivering that update in early 2022.</p> <p>The good news is that the .NET 6 upgrade will be substantially smaller in scope than the .NET 5 update, so a lot less development and testing will be required. And of course, Niteco can help you on the journey of upgrading to .NET 5 today, and then .NET 6 when Optimizely releases it.&nbsp;</p> <h2>Conclusion</h2> <p>With .NET 6 and C# 10, we see many great features, from performance and platform upgrade to great C# features, that will make everything a lot faster and easier. It&rsquo;s a great time to get your Optimizely solution upgraded to .NET 5 to get all the amazing performance and stability benefits, as show below (from Optimizely&rsquo;s testing).</p> <table style="border-collapse: collapse; width: 100%;" border="1"> <tbody> <tr> <td style="width: 33.3333%; text-align: center;"> <p><strong>4x</strong></p> <p>Better in Response Time</p> </td> <td style="width: 33.3333%; text-align: center;"> <p><strong>5 - 10x</strong></p> <p>Faster in Site and Commerce Operation</p> </td> <td style="width: 33.3333%; text-align: center;"> <p><strong>3x</strong></p> <p>More Server Request Handling</p> </td> </tr> <tr> <td style="width: 33.3333%; text-align: center;"> <p>We're looking at numbers in the double digits! Which means, customer websites will load even faster!</p> <p>&nbsp;</p> </td> <td style="width: 33.3333%; text-align: center;"> <p>The numbers have dropped significantly, allowing for an even faster user experiences for actions such as Register/Login, Search, and Add To Cart!</p> <p>&nbsp;</p> </td> <td style="width: 33.3333%; text-align: center;"> <p>The number of requests have tripled and we're still seeing better performances! <a href="/link/468f5ceb2c364451a1845aef60fc019a.aspx" target="_blank" rel="noopener">Supporting more traffic</a>, more visitors, more users!</p> <p>&nbsp;</p> </td> </tr> </tbody> </table> <p>When .NET 6 is ready for the platform, we will get even more performance, more features and more of the great updates that we&rsquo;ve been gifted by Microsoft and Optimizely.</p> <p>Contact Niteco at <a>https://niteco.com</a> to have our specialists help you on this journey!</p> <blockquote> <p>Find out more about <a href="/link/a1fdf8dcd41746a1bbc7edfa74c834f2.aspx">the latest .NET Core upgrade and why it is important for your business</a>.&nbsp;</p> </blockquote>Tue, 14 Dec 2021 11:16:00 +0700https://niteco.com/articles/optimizing-an-optimizely-commerce-cloud-website-part-1-front-end/scott.reed@niteco.seOptimizing a website with Optimizely Commerce Cloud P1| Niteco<h2 aria-level="2"><span data-contrast="none">Introduction</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">Architecting a great web solution for both CMS and Commerce is a complex process. Optimizely provides&nbsp;us with many tools to allow us to create a functionally rich solution that can meet the customer&rsquo;s&nbsp;needs,&nbsp;such as:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">A framework (via&nbsp;Nuget) for building and working with the platform.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Many&nbsp;open-source&nbsp;packages&nbsp;created by developers, partners and Optimizely themselves.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Example implementations with the likes of Alloy, Quicksilver,&nbsp;Foundation,&nbsp;and the SPA reference sites.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">World, Academy and Expert Services for help and support and an amazing community.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> </ul> <p><span data-contrast="auto">However,&nbsp;creating a great customer-centric experience is about more than&nbsp;just delivering&nbsp;a&nbsp;solution&nbsp;that meets&nbsp;the organization&rsquo;s business goals.&nbsp;It&nbsp;is&nbsp;also&nbsp;about&nbsp;the&nbsp;core&nbsp;non-functional requirements&nbsp;that&nbsp;create&nbsp;a&nbsp;performant, secure, well-optimized solution that&nbsp;also provides the end user with a great experience and promotes brand loyalty.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">For this&nbsp;series of&nbsp;blog posts,&nbsp;I am going to be talking about how to optimize an Optimizely&nbsp;Commerce website to meet those needs,&nbsp;in both the&nbsp;back-end&nbsp;and the front-end code.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">In Part 1,&nbsp;I will&nbsp;delve&nbsp;into&nbsp;the anatomy of&nbsp;Front-End&nbsp;Performance.&nbsp;In part 2,&nbsp;I will&nbsp;be talking about&nbsp;Back-End&nbsp;Optimization and&nbsp;touch on&nbsp;the new CMS 12 and Commerce 14&nbsp;updates, explaining&nbsp;what&nbsp;they&nbsp;and .NET 5&nbsp;mean to performance.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h3 aria-level="2"><span data-contrast="none">Measuring&nbsp;front-end&nbsp;performance</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h3> <p><span data-contrast="auto">Before we can understand&nbsp;what&nbsp;we&nbsp;must&nbsp;do to&nbsp;optimize&nbsp;performance,&nbsp;we must first understand&nbsp;against&nbsp;what metrics we&nbsp;are&nbsp;gauging the solution&nbsp;and what tools we will use to measure&nbsp;them.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h4 aria-level="3"><span data-contrast="none">Core Web Vitals</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h4> <p><span data-contrast="auto">To create an engaging&nbsp;experience that is optimized for the user,&nbsp;we need some metrics that define this. Luckily,&nbsp;with Google&rsquo;s prominent position with&nbsp;its&nbsp;behemoth search engine presence,&nbsp;they have some thoughts about this:&nbsp;enter&nbsp;the&nbsp;Core&nbsp;Web Vitals&nbsp;(</span><a href="https://web.dev/vitals/"><span data-contrast="none">https://web.dev/vitals/</span></a><span data-contrast="auto">).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Core Web Vitals are a set of metrics that Google developed that&nbsp;measure the performance of a web page.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="4" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><strong><span data-contrast="auto">Largest&nbsp;Contentful&nbsp;Paint (LCP)&nbsp;</span></strong><span data-contrast="auto">&ndash;&nbsp;This&nbsp;metric&nbsp;measures&nbsp;</span><strong><span data-contrast="auto">Loading</span></strong><span data-contrast="auto">&nbsp;- specifically,&nbsp;when the&nbsp;main content in the page has fully loaded&nbsp;-&nbsp;and provides a good idea of when the page is usable.&nbsp;A&nbsp;time&nbsp;under 2.5 seconds&nbsp;is Google&rsquo;s threshold for&nbsp;a good user experience.&nbsp;However,&nbsp;at&nbsp;Niteco&nbsp;we&nbsp;aim for 1.5 seconds or under to keep the experience as good as possible.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="4" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><strong><span data-contrast="auto">First Input Delay (FID)&nbsp;</span></strong><span data-contrast="auto">&ndash; This&nbsp;metric measures&nbsp;</span><strong><span data-contrast="auto">Interactivity&nbsp;</span></strong><span data-contrast="auto">&ndash;&nbsp;essentially,&nbsp;how long it takes&nbsp;from the page&rsquo;s&nbsp;first&nbsp;contentful&nbsp;paint (FCP)&nbsp;until&nbsp;core elements become interactive.&nbsp;This is important&nbsp;because we&nbsp;want&nbsp;interactions to be possible&nbsp;as soon as the content is&nbsp;there in the browser.&nbsp;We aim for 0.1 seconds or less for&nbsp;this&nbsp;metric.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="4" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><strong><span data-contrast="auto">Cumulative Layout Shift (CLS)&nbsp;</span></strong><span data-contrast="auto">&ndash;&nbsp;This metric measures&nbsp;</span><strong><span data-contrast="auto">Visual Stability.</span></strong><span data-contrast="auto">&nbsp;It&nbsp;measures&nbsp;whether&nbsp;there is&nbsp;a&nbsp;substantial shift of content as DOM elements are loaded in&nbsp;once the&nbsp;initial&nbsp;page has loaded.&nbsp;For example, when&nbsp;images&nbsp;are&nbsp;lazy loaded&nbsp;in and&nbsp;push all your content around,&nbsp;you will be causing&nbsp;interaction issues for&nbsp;the end user.&nbsp;We aim for&nbsp;0.03 seconds or less to give&nbsp;a great experience&nbsp;that&nbsp;does not&nbsp;move.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> </ul> <p><span data-contrast="auto">By measuring these 3&nbsp;at the least,&nbsp;you make sure you have a web page that loads quickly, supports&nbsp;fast&nbsp;user&nbsp;interaction,&nbsp;and&nbsp;provides&nbsp;stability so the user has&nbsp;a great experience.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">And as&nbsp;we have&nbsp;mentioned&nbsp;before,&nbsp;this is driven by Google&nbsp;and&nbsp;now has&nbsp;direct&nbsp;impact on your SEO score.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><img src="/link/fd92c508d79846f39055a64575002c99.aspx" alt="" width="1280" height="628" /></p> <p>So how do we measure this performance?</p> <h4>Lighthouse</h4> <p>This is a tool that analyzes many different metrics around web vitals, performance, accessibility, device load times and more. It gives us a useful, accurate scope and breakdown of information.</p> <p>We run this by</p> <ol> <li>Opening the webpage we want to test in Google Chrome.</li> <li>Opening Devtools by pressing F12.</li> <li>Clicking on the lighthouse tab.</li> <li>Clicking &ldquo;Generate Report&rdquo;.</li> </ol> <p><img src="/link/31c2f6cdbf1a4ec9ba3222ef0ab91ec4.aspx" alt="" width="1007" height="654" /></p> <p><span class="TextRun BCX0 SCXW249187008" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun BCX0 SCXW249187008">The beauty of doing it in Chrome is it allows&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">you to create a report on&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">any site you can browse. This means that if you have a website with IP Restriction</span><span class="NormalTextRun BCX0 SCXW249187008">s</span><span class="NormalTextRun BCX0 SCXW249187008">&nbsp;or&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">an&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">authentication</span><span class="NormalTextRun BCX0 SCXW249187008">&nbsp;requirement</span><span class="NormalTextRun BCX0 SCXW249187008">&nbsp;that an online tool&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">cannot</span><span class="NormalTextRun BCX0 SCXW249187008">&nbsp;access</span><span class="NormalTextRun BCX0 SCXW249187008">,&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">you can&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">simply&nbsp;</span><span class="NormalTextRun BCX0 SCXW249187008">use Chrome.</span></span><span class="EOP BCX0 SCXW249187008" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h4 aria-level="4"><em><span data-contrast="none">Web.Dev</span></em><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h4> <p><a href="https://web.dev/measure/"><span data-contrast="none">https://web.dev/measure/</span></a><span data-contrast="auto">&nbsp;is a Google website that runs&nbsp;the lighthouse tool for us&nbsp;from their server&nbsp;-&nbsp;without any need for us to use Chrome&nbsp;-&nbsp;and simply&nbsp;presents the results. When&nbsp;you&nbsp;need a quick scan,&nbsp;it is&nbsp;very useful,&nbsp;and&nbsp;great&nbsp;for double-checking results.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/747c0e7cce2740bd8c3c07933b3ec0a9.aspx" alt="" width="795" height="443" /><br /></span></p> <h4 aria-level="4"><em><span data-contrast="none">Speedcurve</span></em><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h4> <p><span data-contrast="auto">Speedcurve&nbsp;is a paid service which also uses&nbsp;Lighthouse to&nbsp;measure the web vitals and metrics of webpages.&nbsp;You can break&nbsp;down the reports&nbsp;into&nbsp;web&nbsp;vitals, explore individual scans, pull out videos of the page rendering and really get a good look at how a page is performing.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">There are some benefits&nbsp;with&nbsp;using&nbsp;Speedcurve&nbsp;which make it&nbsp;an excellent choice&nbsp;for&nbsp;both&nbsp;continuous development&nbsp;and having a wider picture of the performance across a range of users:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="7" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">You&nbsp;can set up the tests from multiple different desktop, mobile and tablet devices to get a range of device profiles.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="7" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">You can set up the tests from multiple edge locations to see performance from different regions.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="7" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">You can auto scan at specific time&nbsp;intervals&nbsp;and compare results between scans.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="7" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">You can scan via the API,&nbsp;allowing you to hook this&nbsp;into&nbsp;your deployment pipelines.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="7" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">You can trigger reports of performance degradation via email to&nbsp;users.</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></li> </ul> <h3 aria-level="3"><span data-contrast="none">Optimizing&nbsp;performance</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}">&nbsp;</span></h3> <p><span data-contrast="auto">In this section,&nbsp;I am&nbsp;going to cover some of the top tips for Optimizing performance for core web vitals.&nbsp;However, you need to keep in mind that&nbsp;there&nbsp;are&nbsp;many performance optimization&nbsp;methods to really make your website stay ahead of the curve,&nbsp;so I&nbsp;will not&nbsp;be revealing all the secrets. For&nbsp;more&nbsp;help with&nbsp;optimizing&nbsp;your Optimizely Ecommerce solution&rsquo;s&nbsp;performance,&nbsp;contact us at&nbsp;</span><a><span data-contrast="none">https://niteco.com</span></a>.</p> <h4 aria-level="4">Images&nbsp;</h4> <p><span data-contrast="auto">Images are an important part of&nbsp;creating&nbsp;a&nbsp;good-looking,&nbsp;modern experience on the web,&nbsp;but&nbsp;many years of unchecked file formats and&nbsp;little&nbsp;optimization have made them one of the worst offenders&nbsp;when it comes to&nbsp;causing&nbsp;performance&nbsp;issues.&nbsp;Here&nbsp;are&nbsp;a few&nbsp;of&nbsp;our&nbsp;guidelines to follow to make sure&nbsp;you are&nbsp;adhering to&nbsp;best&nbsp;practices. These&nbsp;will allow us to&nbsp;impact&nbsp;our LCP (Largest&nbsp;Contentful&nbsp;Paint)&nbsp;and CLS (Cumulative Layout Shift).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h4><em><strong>Serve&nbsp;the&nbsp;best&nbsp;formats&nbsp;</strong></em></h4> <p><span data-contrast="auto">When it comes to the size of any&nbsp;asset that&nbsp;is loaded over the web, it&nbsp;is&nbsp;incredibly important&nbsp;to make sure it&nbsp;is as small as possible. For images,&nbsp;this is even more&nbsp;important,&nbsp;as they&nbsp;contain&nbsp;a lot of data.&nbsp;Therefore,&nbsp;we need to make sure&nbsp;we are&nbsp;serving images in the most&nbsp;optimized format.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Currently,&nbsp;the best formats are AVIF&nbsp;and&nbsp;WebP.&nbsp;Whereas AVIF offers better compression, it is not fully supported by all&nbsp;browsers,&nbsp;so if you do offer it,&nbsp;make sure to&nbsp;provide&nbsp;a fallback.&nbsp;WebP&nbsp;is a great format as&nbsp;it is&nbsp;small and has good browser&nbsp;support, but&nbsp;older browsers such as IE&nbsp;do not&nbsp;support it.&nbsp;The&nbsp;recommendation&nbsp;to follow&nbsp;would be to&nbsp;use&nbsp;a fallback rule of&nbsp;AVIF -&gt;&nbsp;WebP&nbsp;-&gt; PNG in your picture elements&nbsp;to achieve&nbsp;the most comprehensive support.&nbsp;The easiest way to do this is to use an image resizer, which&nbsp;I will&nbsp;cover in the back-end part&nbsp;of this&nbsp;blog&nbsp;post.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Check out&nbsp;</span><a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types"><span data-contrast="none">https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types</span></a><span data-contrast="auto">&nbsp;for a full rundown of file types and their support.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><em><strong>Provide&nbsp;optimized&nbsp;images&nbsp;for&nbsp;breakpoints</strong>&nbsp;</em></p> <p><span data-contrast="auto">We want to save on any unnecessary downloads and have our images&nbsp;be&nbsp;as small as possible.&nbsp;So,&nbsp;it makes sense that we&nbsp;would want to provide&nbsp;optimized images for&nbsp;each of&nbsp;our different channels (mobile, tablet and desktop). Luckily,&nbsp;a fully supported&nbsp;browser feature for picture elements allows us to do exactly that.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img style="display: block; margin-left: auto; margin-right: auto;" src="/link/8f26608b72344328b7c78baa2954336c.aspx" alt="" width="382" height="161" /></span></p> <p>Using this code, we can target a different URL for each of our breakpoints. This means that we can either serve pre-prepared optimized images or use an image resizer to auto-resize a master (largest size per ratio) image.</p> <p><em><strong>Always provide width &amp; height</strong></em></p> <p>It is important for CLS (Cumulative Layout Shift) that images, when loaded into the browser during rendering, have a height and width set either as attributes or CSS. Otherwise, we can end up with the image loading as a small placeholder and it then pushing out all the other content when the image is loaded. This is the biggest cause of CLS, so this simple technique is key to reducing it.</p> <p>It is important for CLS (Cumulative Layout Shift) that images, when loaded into the browser during rendering, have a height and width set either as attributes or CSS. Otherwise, we can end up with the image loading as a small placeholder and it then pushing out all the other content when the image is loaded. This is the biggest cause of CLS, so this simple technique is key to reducing it.</p> <h4>Bundling &amp; minification</h4> <p>In the modern web, there are many different types of files a browser must download. We have already covered images in the section above, but we also often encounter very large CSS and JavaScript files which power the look of our website as well as all the client-side functionality.</p> <p>These files can often end up being as large as 0.5 MB or higher, so it is critically important to do as much as we can to optimize their delivery. By doing so, we can fix render-blocking JavaScript and reduce our FID (First Input Delay).</p> <p><em><strong>Bundling</strong></em></p> <p>With websites, it is often the case that different CSS and JavaScript files come from many different frameworks and libraries, and even within our own builds will be broken down to pages and components to keep everything clean. However, separating these files for development purposes does not mean we want the user&rsquo;s browser to have to download every single file, as this will add many requests and a degree of extra overhead.</p> <p>Therefore, we create bundles. These are logical groupings of files that can all be merged and served as one request. Typically, this bundle is also versioned against its component parts and cached heavily, so not only will it only be served in a single request, but it will be cached for as long as possible, often in a CDN.</p> <p>This can be done using back-end and front-end technologies, depending on your technology stack.</p> <p><em><strong>Minification</strong></em></p> <p>JavaScript and CSS files are written in a way that is readable to humans. This means that there are a lot of formatting characters and everything is spaced out on many lines. These extra line spaces and returns can increase the file size. Therefore, a technique called Minification allows us to automatically remove all of these to create a smaller file. In addition, these minifiers are often optimized for each file format, meaning that they could even rewrite JavaScript code to use shorter optimized names for functions, variables, etc. to create an even smaller file.</p> <p>This can be done using back-end and front-end technologies, depending on your technology stack.</p> <h4>Above the fold rendering</h4> <p>When we are rendering a web page, there is usually a lot of content further down on the page. This can mean that even if we are lazy loading parts of a page, we need to load a lot of extra content such as CSS and JavaScript.</p> <p>This is where above the fold rendering comes in. If we build our website to be aware of the fold, we can do some clever things. By performing these optimizations, we reduce FID (First Input Delay) as well as improve other metrics.</p> <p><em><strong>Optimize CSS and JavaScript in head or bundle</strong></em></p> <p>If we take the content which is likely going to be above the &ldquo;fold&rdquo; of the website, this means a much smaller footprint of CSS and JavaScript. For example, our CSS files may contain many directives for pages, styles, and components that we do not need when a user first hits a page, so we can do the following to optimize this:</p> <ol> <li>For each key page, render only the CSS and JavaScript that we need above the fold in the head of the page, so it is served with the page download. This means the browser can start processing and positioning the content straight away.</li> <li>Defer the rest of the CSS and JavaScript loading through your bundles.</li> </ol> <h4>Optimizing external resources</h4> <p>Modern websites are made up of much more than just the standard content that we serve from our own websites and often have lots of external references such as:</p> <ul> <li>Google Analytics &amp; Tag Manager</li> <li>Tracking</li> <li>Advertising</li> <li>Social Media</li> </ul> <p>These are just some types of such resources and references. Therefore, it is important for us to do whatever we can to optimize the loading of these external resources.</p> <p><em><strong>Preconnect &amp; DNS Prefetch</strong></em></p> <p>When a browser needs to request an external resource, it must set up a connection to the website/domain where the resource is hosted. The browser must make a best guess when it comes to optimizing this connection. By adding a preconnect and dns-prefetch we can tell the browser which domains/websites we are going to be loading from so it can optimize this process and do the setup up front, therefore optimizing the loading of these resources.</p> <p><img src="/link/f274b76132a14a84802aaa06aaf82ab4.aspx" alt="Preconnect &amp; DNSprefretch.png" width="602" height="84" /></p> <h2>Conclusion</h2> <p>Above, I have listed out some of the ways of measuring front-end performance, allowing you to optimize your Ecommerce website for a great user experience and get some great vitals.</p> <p>This is only a small list of some of the most common optimizations, and by combining these with many other techniques, we can truly create a great experience that also has a great Google ranking. We at Niteco are experts in this area, so for help with optimizing your Optimizely Ecommerce solution, contact us at <a href="/link/aa5328d80a8c4d2cadec3b8bdb44e5d3.aspx">Niteco.com</a>.</p> <p>In the next part of this blog post, I will be covering some of the accompanying back-end techniques to optimize your code and get more great Core Web Vitals stats.</p>Thu, 06 Jan 2022 11:16:00 +0700https://niteco.com/articles/what-is-mobile-first-design-and-how-do-you-implement-it/lukas.schwitzer@niteco.seWhat is mobile first design and how do you implement it?<p>A mobile first approach refers to the practice of having designers start design work for mobile devices first. The goal of taking a mobile first approach is to reverse what has been the established workflow, namely designing for desktop and scaling down the design for mobile afterwards.</p> <p>With the number of mobile device users growing around the world, a trend that is unlikely to change anytime soon, creating engaging experiences on mobile devices has become crucial for the success of any online solution. In this post, we will give you the answers to the three most important questions around mobile first: what is mobile-first design, why is it important, and how do you implement it effectively?</p> <h2><strong>What is mobile first design and why is it important?</strong></h2> <h3>What is mobile first design?</h3> <p>Mobile first design means that designers working on a new digital experience focus their work on smaller, mobile screens first before later adapting the design for desktop computers and other larger screens.</p> <p>In the past, this process was usually reversed as part of what design professionals call <strong>graceful degradation</strong>. Desktop solutions with full functionality were adapted to fit the much smaller mobile screen later in the design stage, having to sacrifice part of their functionality in the process. While many solutions performed this adaptation remarkably well, this treatment of mobile design as an &ldquo;afterthought&rdquo; often led to less satisfying and comfortable experiences on mobile devices.</p> <p>Mobile first design follows the logic that it&rsquo;s more effective to design a product for the smaller screen first because of the space limitations instead of having to cut a design made for larger screens and losing functionality in the process. As part of the approach, designers make sure that all the most crucial UI/UX elements are prominently displayed and used logically on mobile screens, without having to accommodate previous design decisions made for desktop screens. Once the mobile design is done, it can then be scaled up to fit larger screens, with the possibility of adding design elements that aren&rsquo;t crucial to the experience &ndash; and no risk of losing key functionality. This is also called <strong>progressive advancement</strong> &ndash; the design progresses from the most basic key functionalities on smaller screens to more advanced functionality on larger ones.</p> <h3>Why is it important to design for mobile first?</h3> <p><span class="NormalTextRun CommentStart CommentHighlightPipeClicked CommentHighlightClicked CommentImportant SCXW192244205 BCX0">Mobile first design drives you to make your solutions </span><span class="NormalTextRun CommentHighlightClicked CommentImportant SCXW192244205 BCX0">easier to read and use on mobile screens. </span>While creating satisfying and engaging mobile experiences through mobile first design is a design goal for any solution, the rising number of mobile users around the world also makes it a smart business decision. According to Statista, <a href="https://www.statista.com/statistics/330695/number-of-smartphone-users-worldwide/">the world has 6.5 billion smartphone users in 2022</a>, so it&rsquo;s no surprise that many websites &ndash; including those of many of our clients &ndash; now see more total traffic from mobile devices than from desktop computers. Combine that with the fact that Google&rsquo;s algorithm ranks mobile-friendly websites higher than others, and it&rsquo;s easy to see that good mobile design can have a clear effect on a company&rsquo;s bottom line.</p> <p><img src="/link/0039a378ab9c40f98cc73b3d9b9e11a9.aspx" alt="Niteco followed a Mobile First approach in creating a new site for AEG Australia." width="1707" height="530" /></p> <p style="text-align: center;"><em><strong>Niteco followed a Mobile First approach in creating the new Ecommerce site for AEG Australia.</strong></em></p> <h2><strong>How do you implement a mobile first approach?</strong></h2> <h3><strong><em>Put the user at the center of your design</em></strong></h3> <p>In the <a href="/link/a2dc49ed5ef64dcdaaee824926c1da53.aspx" target="_blank" rel="noopener">UI/UX design process</a>, nothing has higher priority than the users for whom you are designing. They are the people who will be using your product, so it&rsquo;s crucial to keep their requirements in mind.</p> <p>Starting out on a new design process, the most important question you should be asking yourself is, &ldquo;What do the users expect from this product?&rdquo;</p> <p>Take the Tolka project with translation and interpretation agency <a href="/link/45480c0d8e3d4caf82482c93fae9e9ba.aspx">Transvoice</a> as an example, where Niteco built a completely new user portal with mobile first in mind. To understand the customer&rsquo;s needs, <a href="/link/51ddc24fd7bc4652ba844c845c979f3b.aspx" target="_blank" rel="noopener">Niteco&rsquo;s UI/UX designers</a> held workshops to determine the main pain points of working with the existing platform. The team conducted extensive research on the business field and competitors&rsquo; solutions, created user personas to further clarify the needs that needed to be addressed and, finally, presented the customer with wireframes and user flows. This helped them design a product that established a clear workflow for user tasks without distracting secondary functionality.</p> <h3><strong>Step-by-step guide to implementing a mobile first design</strong></h3> <ol> <li><strong>Get organized</strong></li> </ol> <p>What is the first step in the mobile first design process? A major part of building a mobile first design is setting the scope and prioritization of the mobile application. In your first design meetings, you will likely come up with or receive requests for a long list of features that should be included in your application or website. Banners, videos, menus, account management, blogs, and more. The next step, however, is to <strong>figure out which is the key functionality</strong> &ndash; the reason your users use your application. And this is where a spreadsheet is your best friend.</p> <p>List out all the content you have and wish to include in your design, then create a hierarchy that will help guide you in prioritizing and placing the most important features.</p> <ol start="2"> <li><strong>Prioritize your features</strong></li> </ol> <p>For a very simplified example, let&rsquo;s assume that your application&rsquo;s purpose is to book tables in restaurants. Your application will need to have lots of features to cover everything you may envision &ndash; account management, favorite lists, promotions, etc. However, the main features would likely be the following:</p> <ul> <li>Choosing restaurants</li> <li>Booking tables</li> </ul> <p>While the other features will still be part of the application, the focus will be on these two functionalities. That means that they will take up most of the used screen space, with controls that are large and comfortable to handle even on the go. In essence, users should still have the option to use other functionality but should not be distracted or have their experience impaired by it. This way, you can ensure that using these features works smoothly on mobile devices. When you upscale the application for larger screens later, you still have the option of giving other features more prominent placement as well.</p> <p>With the added space, you can add blogs, introduce new restaurants or present bios of new chefs, all while keeping the key functionality of choosing and booking intact.</p> <ol start="3"> <li><strong>Design the mobile wireframe first</strong></li> </ol> <p>Based on what you decided in the prior step, you can now create your mobile wireframes. Decide exactly which features should be placed where, where CTAs should go, and how users will navigate through your application.</p> <p>When your mobile wireframe is done, you can use it as a foundation for larger breakpoints in the design of the experience on larger screens. Essentially, in designing the mobile experience, you have pinpointed what the focus of your application should be, and you can use this information for creating a great desktop experience.</p> <p><span class="TrackChangeTextInsertion TrackedChange SCXW249093522 BCX0"><span class="TextRun SCXW249093522 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW249093522 BCX0">&gt;&gt;&gt; Read more:&nbsp;</span></span></span><a class="Hyperlink SCXW249093522 BCX0" href="/link/0e8bfe17e1dc480883fa7a2ae6e7a9a9.aspx" target="_blank" rel="noreferrer noopener"><span class="TrackChangeTextInsertion TrackedChange SCXW249093522 BCX0"><span class="FieldRange SCXW249093522 BCX0"><span class="TextRun Underlined SCXW249093522 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW249093522 BCX0" data-ccp-charstyle="Hyperlink">5 principles to follow when designing the architecture of your application </span></span></span></span></a><span class="EOP SCXW249093522 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <ol start="4"> <li><strong>Get rid of unnecessary obstacles</strong></li> </ol> <p>Some design features work perfectly on large screens, but are nothing more than a distraction or, at worst, an impediment in mobile design.</p> <ul> <li>Popups: Popups can be annoying on any screen if they&rsquo;re not used in moderation, but on mobile screens, they can quickly become a deal breaker. Because of the different sizes of mobile devices, if you&rsquo;re not careful with sizing, a popup can easily hijack a user&rsquo;s whole screen, keeping them from what they wanted to do in the first place. If you absolutely need to use popups, use them sparingly and only to provide users with information or functionality they absolutely need.</li> <li>Images: Website banners are great, but refrain from using large landscape-format images, since they won&rsquo;t look good on a mobile screen held in portrait mode. Even when you use portrait-format banners, don&rsquo;t take up an entire screen with images &ndash; always ensure that users can see the CTA or key functionality at first glance, without having to scroll.</li> </ul> <ol start="5"> <li><strong>Use responsive design</strong></li> </ol> <p>One thing you need to remember about the world of mobile devices is that one size does not fit all. Smartphones and tablets come in a wide variety of screen sizes, so you need to make sure that your design looks good on all of them. Using a responsive framework allows your design to adjust to the screen on which it is displayed, making sure all essential information is retained. This means that you can focus on the important aspects of your design instead of having to adjust everything manually for every conceivable screen size.</p> <ol start="6"> <li><strong>Test on real devices</strong></li> </ol> <p>While you&rsquo;re likely designing your application on a desktop or laptop computer, you should test it on an actual mobile device. Many design programs offer features that let you emulate a mobile screen on your computer screen for testing purposes, but we recommend using a real mobile screen.</p> <p>Navigate through the entire application like a normal user would, and ideally involve other designers that were not part of the design process. They will be able to look at the application without preconceptions while being able to give you a professional opinion. However, make sure to also involve non-designers in the tests for an additional perspective.</p> <h3><strong>How to test a mobile first design</strong></h3> <ol> <li><strong>Use testing tools</strong></li> </ol> <p>While, as mentioned above, we recommend testing on actual mobile devices, there are also a number of useful tools that can help you to test the performance and functionality of your application.</p> <p>For a quick test using Google&rsquo;s criteria for mobile friendliness of a web application, use <a href="https://search.google.com/test/mobile-friendly">Google Search Console</a>. Other tools we recommend for use in testing mobile designs are <a href="https://smartbear.com/blog/calabash-tutorial-for-mobile-app-testing/">Calabash</a>, <a href="http://www.testingtoolsguide.net/tools/testdroid/">Testdroid</a>, <a href="http://appium.io/">Appium</a>, or <a href="https://www.perfomatix.com/mobile-app-automation-testing/">MonkeyTalk</a>. For cross-browser testing that ensures your application works on any combination of OS, browser, and resolution, a tool like <a href="https://www.lambdatest.com/">LambdaTest</a> is recommended.</p> <ol start="2"> <li><strong>Validate HTML and CSS</strong></li> </ol> <p>To make sure that any errors in how the application is displayed or how it performs aren&rsquo;t rooted in your own code, it&rsquo;s a good idea to use a validation tool to validate the HTML and CSS code. These tools can help you fix syntax errors and other mistakes.</p> <p>Tools for this testing step include <a href="https://validator.nu/">Validator.nu</a> and the <a href="https://jigsaw.w3.org/css-validator/">W3C CSS Validation Service</a>.</p> <ol start="3"> <li><strong>Perform A/B Testing</strong></li> </ol> <p>Once your application has gone live, it&rsquo;s time to embark on a thorough A/B Testing campaign. Even after testing, a lot of the things upon which you have based your design are assumptions of what users may like or demand. Now, once actual users get their hands on the application, it&rsquo;s time to find out what they actually want.</p> <p>The <a href="/link/e51c4e07d6304300837ee60c02ab0a9b.aspx">A/B Testing process</a> is simple: analyze your application&rsquo;s data, come up with a hypothesis of what could improve your numbers, then test and evaluate. You can use basic analytics to determine where improvements could be made. Heat maps can also be very useful as foundations for your <a href="/link/bd6f1f4c16e24704938e11172fb9870d.aspx">experimentation</a>.</p> <p>Don&rsquo;t forget that A/B Testing is an ongoing process throughout an application&rsquo;s lifecycle. User preferences may change with time and new hypotheses will arise, so don&rsquo;t neglect your testing down the road.</p> <h2><strong>Some tips for your mobile first design</strong></h2> <p><strong>Mobile first is content first: </strong>Determine which content is the most essential for your mobile experience and focus on it. Then create your design based on the content you need to present to the user.</p> <p><strong>Keep it simple:</strong> Simplicity is your friend when it comes to mobile first design. As mentioned above, the goal is to make the key functionality the centerpiece of your design and try to keep distractions to a minimum.</p> <p><strong>Keep CTAs bold and consistent:</strong> Users should be able to locate and recognize your CTAs with ease even if they&rsquo;re just glancing at their screen while on the go.</p> <p><strong>Optimize loading speed:</strong> Performance is crucial when it comes to user experience. According to <a href="https://neilpatel.com/blog/loading-time/">Neil Patel&rsquo;s blog</a>, 47% of users expect a page to load in 2 seconds or less, so make sure to optimize your application&rsquo;s performance.</p> <h2>Frequently asked questions about mobile-first design&nbsp;</h2> <h3>Q1: What is a mobile-first strategy?&nbsp;</h3> <p>A mobile-first strategy refers to the approach of prioritizing mobile users when shaping your business&rsquo; web presence, specifically giving precedence to your business's mobile app and mobile web capabilities over desktop.&nbsp;</p> <h3>Q2: What are the benefits of a mobile-first approach?&nbsp;</h3> <p>As new devices and various screen dimensions come into play, adopting a mobile-first design simplifies adjustment to these shifts. This approach establishes a more resilient design strategy for the future. Additionally, opting for a responsive mobile-first design that takes mobile as its starting point can be advantageous in terms of graceful degradation and progressive enhancement.&nbsp;</p> <h3>Q3: What is a mobile-first workflow?&nbsp;</h3> <p>In the mobile-first design workflow, you initiate your design process by focusing primarily on mobile users and subsequently expand your design to accommodate larger screens. This approach involves prioritizing the mobile user experience, ensuring that all content and functionalities remain accessible on smaller screens.&nbsp;</p> <p><strong>If you want to find out more about Mobile First design or need advice on how to create a UI/UX design that converts for your application, <a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx" target="_blank" rel="noopener">contact Niteco today</a>!</strong></p>Thu, 29 Sep 2022 11:16:00 +0700https://niteco.com/articles/optimizely-on-net5-game-changer-for-performance/scott.reed@niteco.seOptimizely on .NET 5: Performance game-changer | Niteco<p><span class="TextRun SCXW190378444 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW190378444 BCX0">On&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">September</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;28th,</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">with the launch&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">of&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">Optimizely</span><span class="NormalTextRun SCXW190378444 BCX0">&rsquo;s latest update</span><span class="NormalTextRun SCXW190378444 BCX0">s</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;to their CMS</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">(</span><span class="NormalTextRun SCXW190378444 BCX0">Content Cloud&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">v</span><span class="NormalTextRun SCXW190378444 BCX0">ersion 12</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;and Commerce Cloud 14</span><span class="NormalTextRun SCXW190378444 BCX0">)</span><span class="NormalTextRun SCXW190378444 BCX0">,</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;Optimizely launched&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">its first version ever based on .NET 5. Niteco Solution Architect and Optimizely MVP&nbsp;</span></span><span class="TextRun SCXW190378444 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW190378444 BCX0">Scott Reed</span></span><span class="TextRun SCXW190378444 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;gives a short&nbsp;</span><span class="NormalTextRun SCXW190378444 BCX0">rundown</span><span class="NormalTextRun SCXW190378444 BCX0">&nbsp;of why this is a reason to be excited, for developers and website owners alike.</span></span><span class="EOP SCXW190378444 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">Performance</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">The main benefit to the upgrade to .NET 5&nbsp;for&nbsp;Optimizely&nbsp;customers&nbsp;are&nbsp;the&nbsp;improvements to&nbsp;performance and stability. This means faster, more stable websites that handle concurrent loads,&nbsp;better at high volumes. This translates to faster page loads and better&nbsp;</span><a href="/link/5cb67f82a85b407882c7b50ee04ab062.aspx"><span data-contrast="none">Google Core&nbsp;Web Vitals</span></a><span data-contrast="auto">&nbsp;scores,&nbsp;with&nbsp;fewer&nbsp;service interruptions</span><span data-contrast="auto">.&nbsp;</span><span data-contrast="auto">That equals</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">better search rankings and an improved&nbsp;customer experience; and that means&nbsp;reduced</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">bounce&nbsp;rates&nbsp;and increased&nbsp;conversation.</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">That&rsquo;s a win, whichever way you look at it!</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Optimizely&rsquo;s benchmarking</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">shows that&nbsp;tests produced&nbsp;4&nbsp;times higher response speeds and 5-10 times faster site operation.&nbsp;Overall, this should have a definite effect on your bottom line.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">Support</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">Moving to .NET 5</span><span data-contrast="auto">,</span><span data-contrast="auto">&nbsp;and&nbsp;</span><span data-contrast="auto">more importantly .NET 6 (coming early 2022 as .NET 5 support ends in February 2022)</span><span data-contrast="auto">,</span><span data-contrast="auto">&nbsp;means that the platform will be aligned with a supported version of</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">.NET. This means security patches and updates are guaranteed&nbsp;and can easily be implemented.</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">With&nbsp;Optimizely&nbsp;and Microsoft&nbsp;so&nbsp;aligned in their&nbsp;close&nbsp;partnership, the future looks very&nbsp;good&nbsp;indeed.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">Platform&nbsp;features</span></strong><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h2> <p><span data-contrast="auto">The .NET 5 version adds a whole load of new features for both CMS</span><span data-contrast="auto">/</span><span data-contrast="auto">Commerce editors as well as development teams</span><span data-contrast="auto">.&nbsp;</span><span data-contrast="auto">With&nbsp;Optimizely&nbsp;usually&nbsp;rolling&nbsp;out&nbsp;its&nbsp;changes in a regular release update cycle, these new&nbsp;features are not going to be retroactively ported back to older versions. Basically,&nbsp;if&nbsp;you&nbsp;don&rsquo;t upgrade</span><span data-contrast="auto">,&nbsp;</span><span data-contrast="auto">you&nbsp;will not get these features. It also means&nbsp;you&nbsp;will not get any&nbsp;of the&nbsp;features&nbsp;Optimizely rolls out in the future&nbsp;and&nbsp;that&nbsp;will&nbsp;leave you&nbsp;stagnating&nbsp;on an old&nbsp;version of the platform.&nbsp;New features include</span><span data-contrast="auto">:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><strong><span data-contrast="auto">Better and faster redesigned version of the admin area</span></strong><strong><span data-contrast="auto">:</span></strong><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">The admin area is now faster to use for admin users with a snappier response (due to a complete redesign and the .NET 5 update)</span><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><strong><span data-contrast="auto">Removal of Commerce Manager</span></strong><strong><span data-contrast="auto">:</span></strong><span data-contrast="auto">&nbsp;In&nbsp;Commerce</span><span data-contrast="auto">,</span><span data-contrast="auto">&nbsp;a major pain point&nbsp;in the past&nbsp;was having&nbsp;two&nbsp;applications</span><span data-contrast="auto">,</span><span data-contrast="auto">&nbsp;with some legacy features&nbsp;still&nbsp;kept&nbsp;in&nbsp;Commerce&nbsp;Manager.&nbsp;This part has been removed and&nbsp;the last remaining configuration features&nbsp;were folded&nbsp;into&nbsp;to the main CMS interface. Frankly, this&nbsp;is a massive win&nbsp;for developers and site editors alike</span><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><strong><span data-contrast="auto">Faster overall CMS/Commerce&nbsp;editing&nbsp;experience</span></strong><strong><span data-contrast="auto">:</span></strong><span data-contrast="auto">&nbsp;The .NET 5 performance upgrades also&nbsp;benefit the editor area, making it more efficient. The improvements will be easily felt by editors on both CMS and Commerce, meaning edits will be smoother and quicker.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><strong><span data-contrast="auto">New&nbsp;versions&nbsp;of</span></strong><strong><span data-contrast="auto">&nbsp;</span></strong><strong><span data-contrast="auto">core&nbsp;packages</span></strong><strong><span data-contrast="auto">:</span></strong><span data-contrast="auto">&nbsp;New versions of packages such as marketing connectors, forms and&nbsp;more</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">provide&nbsp;not only better performance</span><span data-contrast="auto">,</span><span data-contrast="auto">&nbsp;but have been reworked to be more modern&nbsp;and&nbsp;more easily&nbsp;extensible by developers&nbsp;to suit</span><span data-contrast="auto">&nbsp;</span><span data-contrast="auto">your&nbsp;needs.&nbsp;That means you can customize your Optimizely site even further to meet your needs.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}">&nbsp;</span></li> </ul> <p><span data-contrast="auto">As Optimizely announced, upgrading to .NET 5 will require a new environment for your DXP,&nbsp;but no reason to worry.&nbsp;There will be&nbsp;no additional cost to your license. Your code will&nbsp;also&nbsp;need to be migrated from your existing code base to .NET 5, a process&nbsp;Niteco can&nbsp;take care of&nbsp;for you, getting&nbsp;you on .NET 5 with ease.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Niteco has been at the cutting edge of this work, with OMVP Scott Reed partnering with Optimizely to run masterclasses on the topic and speaking about it at Optimizely&rsquo;s annual conference Opticon21. There is no better placed partner to help you to upgrade your Optimizely installation than Niteco.&nbsp;</span><strong><span data-contrast="auto">Find out how&nbsp;and let Niteco handle your .NET 5 journey.</span></strong></p> <blockquote> <p><span data-contrast="auto">Find out more about the <a href="/link/a1fdf8dcd41746a1bbc7edfa74c834f2.aspx">latest .NET Core upgrade and why it is important for your business</a>.&nbsp;</span></p> </blockquote> <p><strong><span data-contrast="auto">Get access to the pdf version &amp; recorded presentation from Scott Reed (Niteco Solution Architect) on Optimizely Partner Day:</span></strong></p> <p>&nbsp;</p> <p style="text-align: center;"><a class="first-btn-action button button--rounded font-gilroy--semibold" style="color: black;" href="/link/40b27546f2224fd1b60d9fc7cedf2b3c.aspx" target="_blank" rel="noopener">Get Access</a></p>Wed, 06 Oct 2021 11:16:49 +0700https://niteco.com/articles/mob-programming/AkofaWallace@editor.niteco.comYou Too Could Benefit From Mob Culture<p dir="ltr">Gone are the days when programming relied upon the expertise of a single developer. With complex codebases now the norm, coding as a team has become the smart way to solve challenging tasks. Known as Mob Programming, a pool of three developers or more work collaboratively in front of one extended screen and one keyboard in twenty minute sessions. The developer on the keyboard plays the role of the driver, while other members of the &lsquo;mob&rsquo; team are navigators, instructing the driver at every turn. It&rsquo;s an approach that evolved from the popular pair programming and sets the benchmark of good practice for today&rsquo;s digital age.<br /><br /><strong>More Input Creates Better Output<br /><br /></strong>&ldquo;Mob programming keeps every developer in the team engaged&rdquo; reveals Niteco Team Lead, Linh Tung Le, who favours the method when working on major projects such as re-factoring whole systems. &ldquo;My team has relied upon mob programming when we need to look into a single live code at any one time. When we work like this, we find that the rate of error is significantly lower and the quality of work we present to the client is much higher and minimizes the likelihood for revisions.&rdquo;<br /><br />Linh, a developer with more than ten years&rsquo; experience, says mob programming is also valuable when a project has been expanded or a new developer joins the team. He explains, &ldquo;When developers are working on a project independently, there&rsquo;s little sharing of knowledge. But when you&rsquo;re collaborating on one project in this manner, a new team member instantly benefits by hearing from other team members. I find new team members catch up quickly when we work as a mob.&rdquo;</p> <blockquote> <p>The total number of tasks that can be assigned to a team of developers reduces, but the projects we do work on are of a far higher quality</p> </blockquote> <p dir="ltr"><br /><strong>Quality Over Quantity<br /><br /></strong>But, warns Linh, utilizing the mob methodology means developers are working on fewer projects as more attention is given to quality output, which is great news for clients! &ldquo;The total number of tasks that can be assigned to a team of developers reduces, but the projects we do work on are of a far higher quality. As a result, we&rsquo;ve found that the feedback loop is much shorter and we don&rsquo;t experience a lot of regression in our team.&rdquo; Linh&rsquo;s colleague, Vu Hoang, who first came across mob programming when he worked in Sweden cautions against over reliance on mob programming which he says causes some teams to adopt the poor habit of dropping Code Reviews. Vu says, &ldquo;At Niteco we still carry out comprehensive Code Reviews. In fact, we want to make it a mandatory team coding procedure before any code is merged to the Master Branch.&rdquo;<br /><br /><strong>Great for the Customer, Great for Coders<br /><br /></strong>Mob Programming and Mob Culture provides a win-win solution for both the client and the developers. The wealth of knowledge and information-sharing that occurs is invaluable to delivering a complex quality project that exceeds client expectation and excites coders. Linh continues &ldquo;Not all projects require us to work as a mob, but for the major ones that do, it&rsquo;s effective and perfect for a team that values high quality products; in essence, a team like ours.&rdquo;</p>Mon, 24 Apr 2017 15:00:00 +0700https://niteco.com/articles/niteco-celebrates-11-years-of-dedication-and-excellence/info@niteco.comNiteco celebrates 11 years of dedication and excellence <p><span data-contrast="auto">With the year 2021&nbsp;coming to a close, Niteco is celebrating its 11-year anniversary. Founded on December 3</span><span data-contrast="auto">rd</span><span data-contrast="auto">, 2010, Niteco has grown&nbsp;from a&nbsp;web development subcontractor to become the world&rsquo;s largest Optimizely partner and a fully-fledged digital agency.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">&ldquo;Even though we cannot celebrate our anniversary in style this year due to&nbsp;Covid&nbsp;restrictions, I still take this opportunity to express my gratitude to all Niteco employees,&rdquo; said Niteco founder and CEO Pelle Niklasson. &ldquo;Thanks to the staff&rsquo;s dedication and positivity even during long stints of working from home, Niteco has weathered this pandemic better than many other companies in the industry.&rdquo;&nbsp;He added that the company would hold an extended company vacation in 2022 as a gift to the staff.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">To mark its anniversary, the company is launching a new website built on the recently-released Optimizely 12, based on .NET 5. &ldquo;We&rsquo;re eager to&nbsp;deliver even faster load times to our users and show our customers what an upgrade can do for them,&rdquo; Mr. Niklasson explained.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p> <p><span data-contrast="auto">Niteco is a global end-to-end digital agency&nbsp;specialized in&nbsp;supporting&nbsp;digital transformation with consultancy, marketing, design and application management services in addition to its world-class website and Ecommerce development capabilities.&nbsp;Boasting 120 Optimizely-certified developers, the company has been the world&rsquo;s largest Optimizely partner for several years.&nbsp;With offices in Sweden, the UK, Australia, Hong Kong and Singapore in addition to its headquarters&nbsp;in the emerging tech hotspot Vietnam, Niteco covers&nbsp;customers&rsquo; needs around the clock.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>Fri, 03 Dec 2021 09:00:00 +0700https://niteco.com/articles/web-application-risks-that-harm-your-business/scott.reed@niteco.seTop 9 web application risks that could harm your business<p><span data-contrast="auto">As our laptops and mobile devices get more&nbsp;and more&nbsp;connective features,&nbsp;we also create additional&nbsp;loopholes for data&nbsp;and attacks&nbsp;to slip through.&nbsp;And as ever, new technologies&nbsp;are being created faster than&nbsp;security practices&nbsp;protecting&nbsp;users&nbsp;from exploitative use of those technologies.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Cybercrime incidents cost the world economy more than US$1 trillion in 2020.&nbsp;However,&nbsp;cybercrime&nbsp;is not all about hackers&nbsp;forcing their way into your network, it is also about how users&nbsp;&ndash; legitimate and otherwise &ndash;&nbsp;interact&nbsp;with and gain access to&nbsp;your&nbsp;system and your&nbsp;apps. This is&nbsp;why&nbsp;securing&nbsp;web applications&nbsp;is just as critical as securing your back-end systems.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">In this article, we will&nbsp;go through a quick definition of what&nbsp;a web application&nbsp;is,&nbsp;detail&nbsp;the risks they can carry&nbsp;and&nbsp;show you&nbsp;what&nbsp;you can do to mitigate them.</span><span data-ccp-props="{}">&nbsp;</span></p> <p>&nbsp;</p> <h2><strong><span data-contrast="auto">What&nbsp;do we define as&nbsp;a&nbsp;&ldquo;Web&nbsp;Application&rdquo;?</span></strong><span data-ccp-props="{}">&nbsp;</span></h2> <p><span data-contrast="auto">When browsing a website,&nbsp;there are numerous technologies&nbsp;involved&nbsp;in&nbsp;returning&nbsp;what&nbsp;users see&nbsp;in their web browsers. In the early days,&nbsp;simple websites were made up of&nbsp;just&nbsp;HTML &amp; CSS. However,&nbsp;as websites needed to become&nbsp;more complex&nbsp;to&nbsp;allow users greater&nbsp;levels of interactivity,&nbsp;website development&nbsp;and the tools involved ballooned&nbsp;rapidly.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">As the need for more complex user interactivity arose, several technologies came about,&nbsp;among them:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="22" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><strong><span data-contrast="auto">Server-side Programming</span></strong><span data-contrast="auto">&nbsp;allows developers to write code and create experiences based upon user interactions running on&nbsp;the&nbsp;servers&nbsp;our websites&nbsp;are hosted on.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="22" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><strong><span data-contrast="auto">Databases</span></strong><span data-contrast="auto">&nbsp;&ndash;&nbsp;These&nbsp;are where we&nbsp;store and interact with&nbsp;complex&nbsp;data allowing our&nbsp;server-side&nbsp;code to&nbsp;access&nbsp;persistent&nbsp;information&nbsp;which&nbsp;can&nbsp;be used to&nbsp;enhance user experiences.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="22" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><strong><span data-contrast="auto">JavaScript&nbsp;</span></strong><span data-contrast="auto">&ndash;&nbsp;This&nbsp;is one of the core technologies of the&nbsp;web, allowing us&nbsp;to create rich interactive experiences. Instead of writing code that&nbsp;runs&nbsp;on the server, JavaScript enables developers to write code&nbsp;that&rsquo;s run directly&nbsp;in the web browser.&nbsp;&nbsp;</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Symbol" data-listid="22" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><strong><span data-contrast="auto">Cookies</span></strong><span data-contrast="auto">&nbsp;&ndash; Cookies let us&nbsp;store data on&nbsp;a&nbsp;user&rsquo;s&nbsp;device,&nbsp;which allows&nbsp;us to identify the same user between requests to a web server.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <p><span data-contrast="auto">The above technologies and many others&nbsp;put together&nbsp;make&nbsp;up&nbsp;our web applications.&nbsp;Without these innovations, we wouldn&rsquo;t be able to create rich experiences for the users.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">However, interconnected technologies&nbsp;inevitably create&nbsp;security issues. If&nbsp;there are errors in the&nbsp;code&nbsp;or the&nbsp;databases&nbsp;or&nbsp;infrastructure were not&nbsp;set up&nbsp;in the correct way, people&nbsp;can&nbsp;exploit them for their own&nbsp;malicious&nbsp;purposes.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">So&nbsp;without further ado, let&rsquo;s dive into&nbsp;the&nbsp;9&nbsp;most&nbsp;common&nbsp;web&nbsp;application vulnerabilities&nbsp;we see today:</span><span data-ccp-props="{}">&nbsp;</span></p> <h3><strong><span data-contrast="auto">1. Broken access control</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></h3> <p><span data-contrast="auto">Access control imposes policies, keeping&nbsp;users&nbsp;from acting&nbsp;outside their&nbsp;explicit&nbsp;permissions.&nbsp;That&rsquo;s why&nbsp;broken access control&nbsp;often&nbsp;leads to&nbsp;unauthorized&nbsp;information exposure&nbsp;and&nbsp;modifications&nbsp;or damage&nbsp;to&nbsp;data.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Almost every web application&nbsp;is&nbsp;</span><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/"><span data-contrast="none">reported to be susceptible</span></a><span data-contrast="auto">&nbsp;to&nbsp;some forms of&nbsp;access control vulnerability. Depending on the types of data&nbsp;the attackers can get their hands on, the impact of a successful attack&nbsp;exploiting this kind of vulnerability&nbsp;could be&nbsp;severely&nbsp;detrimental&nbsp;to your business.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Some common access control vulnerabilities include:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Wingdings" data-listid="12" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Bypassing access control checks by modifying the URL or API requests, HTML page or internal application state.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="12" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Violations&nbsp;of the principle of least privilege, where access should only be granted for specific capabilities and&nbsp;roles,&nbsp;but&nbsp;is available to anyone.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="12" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Escalation&nbsp;of privilege, which may allow&nbsp;acting as an admin when logged&nbsp;in as a user, or acting as a user without being logged in.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <h3><strong><span data-contrast="auto">2. Cryptographic failure</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></h3> <p><span data-contrast="auto">We rely on cryptographic algorithms and protocols for secure communication on the Internet. You are safe to&nbsp;make&nbsp;your bank transactions and send that private message online because your data is encrypted before being sent to the recipient for decryption. Thanks to cryptography, your information is protected in cyberspace.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">A cryptographic failure&nbsp;might be&nbsp;a weakness in a code, cipher, cryptographic protocol, or key management scheme, which&nbsp;leads&nbsp;to sensitive data&nbsp;being&nbsp;disclosed&nbsp;or systems being&nbsp;compromised. This may result in the&nbsp;exposure of passwords, credit card numbers, health records or business secrets.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><strong>3. Injection&nbsp;</strong></p> <p><span data-contrast="auto">An injection attack is a type of attack that injects malicious code into the application&nbsp;to&nbsp;perform&nbsp;an exploit/attack of some sort.&nbsp;Some of the most common&nbsp;types of&nbsp;injections are SQL, NoSQL, OS command, and Cross-site scripting.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">For example, a&nbsp;SQL injection&nbsp;attack&nbsp;occurs when an attacker&nbsp;is able to&nbsp;inject custom SQL commands&nbsp;into the application, making it possible to perform&nbsp;actions&nbsp;with&nbsp;the database that were not intended.&nbsp;These SQL commands&nbsp;can give the&nbsp;attackers&nbsp;the ability to view&nbsp;sensitive data, change&nbsp;information, or&nbsp;delete&nbsp;data stored in the SQL database.&nbsp;At worst,&nbsp;this could end up causing a&nbsp;major&nbsp;security leak, comparable to cases where customer usernames and passwords were leaked online, resulting in lots of&nbsp;media coverage.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><strong><span data-contrast="auto">4.Security misconfigurations</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Security misconfiguration vulnerabilities occur when there is a misconfiguration or insecure configuration issue,&nbsp;making a component in the web application susceptible to attacks.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Attacks like buffer overflow, XSS&nbsp;or&nbsp;brute force/credential stuffing&nbsp;may&nbsp;target misconfiguration vulnerabilities.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Some of the risks for security misconfigurations include:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Wingdings" data-listid="13" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Missing appropriate security hardening across any part of the application stack or&nbsp;using&nbsp;inappropriately configured permissions on cloud services.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="13" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">For upgraded systems, the latest security features are disabled or not configured securely.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="13" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">The software is out of date.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="auto">5.Vulnerable and outdated components</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">When was the last time you downloaded&nbsp;something for free on the Internet?&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">With the increase in third-party components that are available for free online to use in application development,&nbsp;there is an increasing risk of them&nbsp;becoming&nbsp;outdated and filled with security flaws, yet never get updated in the solution.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Some of the causes for vulnerable/outdated components&nbsp;you might encounter:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Wingdings" data-listid="14" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Software is out of date or vulnerable,&nbsp;including the OS, web server, database management system, APIs, etc.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="14" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">You don&rsquo;t scan for vulnerabilities regularly and&nbsp;don&rsquo;t&nbsp;subscribe to security bulletins related to the components you use&nbsp;in development.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="14" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">You don&rsquo;t upgrade the underlying platform, frameworks, and dependencies in a timely, risk-based fashion.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="auto">6. Identification and authentication failures</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Identification and authentication attacks attempt to exploit the authentication process that a website uses to verify the identity of a user, service&nbsp;or&nbsp;application.&nbsp;Some authentication-related attacks are credential stuffing,&nbsp;password attacks,&nbsp;brute force or other automated attacks.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">An application is prone to authentication weaknesses if it:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Wingdings" data-listid="15" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Permits automated attacks such as credential stuffing, where the attacker has a list of valid usernames and passwords.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="15" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Permits weak passwords such as &ldquo;123456&rdquo;, &ldquo;password&rdquo;, or &ldquo;abc123&rdquo;.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="15" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Uses ineffective credential recovery/ forgotten-password processes such as &ldquo;knowledge-based answers&rdquo;.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="15" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Uses plain-text, encrypted, or weakly hashed password data stores.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="15" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Has missing or ineffective multi-factor authentication.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="auto">7. Software and data integrity failures</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Software and data integrity failures are related to code and infrastructure that don&rsquo;t protect against integrity violations.&nbsp;One example is of application that has auto-update functionality, where updates are downloaded without&nbsp;adequate integrity verification&nbsp;but&nbsp;applied to the formerly trusted application.&nbsp;Ergo, attackers could upload their own updates for the distribution and operation on all installations.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><strong><span data-contrast="auto">8. Security logging and monitoring failures</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">Security logging and monitoring is a process that performs electronic audit logs for signs that help&nbsp;detect&nbsp;unauthorized&nbsp;security-related&nbsp;actions&nbsp;on a framework or an application that transmits or stores data. Insufficient logging and monitoring vulnerabilities occur when the security-critical event is not logged or monitored properly, which makes malicious activities harder to detect and escalate.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Without logging and monitoring, breaches can&rsquo;t be detected. This can affect visibility, accountability, incident alerting and forensics. Insufficient logging, detection and monitoring include:</span><span data-ccp-props="{}">&nbsp;</span></p> <ul> <li data-leveltext="" data-font="Wingdings" data-listid="18" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Auditable events (logins, failed logins, high-value transactions) are not logged.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="18" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Warnings and errors generate inadequate, unclear, or no log messages.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> <li data-leveltext="" data-font="Wingdings" data-listid="18" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">The application can&rsquo;t detect or alert for active attacks in real&nbsp;time or near real&nbsp;time.</span><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></li> </ul> <p><strong><span data-contrast="auto">9. Server-side request forgery&nbsp;(SSRF)</span></strong><span data-ccp-props="{&quot;134233279&quot;:true}">&nbsp;</span></p> <p><span data-contrast="auto">SSRF refers to an attack that lets an attacker send crafted requests from the back-end server of a vulnerable web application, allowing the attacker to manipulate the information in the realm of that server. It is commonly used by attackers targeting the internal networks that are behind firewalls or VPNs and can&rsquo;t be reached from the external network.&nbsp;A common example is when an attacker&nbsp;can&nbsp;get&nbsp;control&nbsp;of&nbsp;a&nbsp;third-party&nbsp;service URL to which the web application makes a request.</span><span data-ccp-props="{}">&nbsp;</span></p> <h2><strong><span data-contrast="auto">Mitigating application vulnerability risks</span></strong><span data-ccp-props="{}">&nbsp;</span></h2> <p><span data-contrast="auto">In the modern&nbsp;web&nbsp;landscape,&nbsp;web applications can contain&nbsp;sensitive data such as usernames, passwords, personal data, credit cards and much more.&nbsp;Therefore, it is critical that every level of the applications is audited for and protected against attacks&nbsp;in cyberspace.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">As the types of cyberattacks are&nbsp;continually&nbsp;getting more&nbsp;sophisticated, it&rsquo;s essential that you&nbsp;use&nbsp;well-secured and monitored applications&nbsp;that&nbsp;follow the&nbsp;</span><a href="https://owasp.org/www-project-top-ten/"><span data-contrast="none">OWASP Top 10&nbsp;guidelines</span></a><span data-contrast="auto">.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Optimizely's&nbsp;platform&nbsp;is designed, reviewed, and tested using OWASP&nbsp;application&nbsp;standards. The&nbsp;software developed by the&nbsp;organization&nbsp;is continually monitored and tested using processes that can proactively identify and remediate vulnerabilities.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">The company also has&nbsp;</span><a href="https://www.optimizely.com/trust-center/security/"><span data-contrast="none">technical measures</span></a><span data-contrast="auto">&nbsp;in place&nbsp;to protect Optimizely&nbsp;applications.&nbsp;Among&nbsp;them are access control&nbsp;measures&nbsp;including secure authentication and session management, network and transmission controls, data confidentiality as well as security in engineering.&nbsp;</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">The&nbsp;Optimizely Digital Experience Platform&nbsp;also has&nbsp;an always-enabled&nbsp;Web Application Firewall (WAF) to constantly monitor website traffic and filter out malicious traffic at the web application layer.&nbsp;The&nbsp;WAF also examines HTTP requests to your website, so&nbsp;malware, SQL injections&nbsp;or any illegitimate traffic&nbsp;can&nbsp;be challenged&nbsp;and&nbsp;either blocked or stopped.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">Having been&nbsp;an&nbsp;<a href="/link/2f47b53da75c43bfb49212a7fcae7ba6.aspx" target="_blank" rel="noopener">Optimizely partner&nbsp;for&nbsp;over a decade</a>&nbsp;and boasting the largest number of Optimizely certified developers</span>&nbsp;of&nbsp;<span data-contrast="auto">any partner in the world, we know the platform like the backs of our hands.&nbsp;And at&nbsp;Niteco, we know that mitigating threats&nbsp;to a&nbsp;web&nbsp;application requires much-needed focus on the end-user.&nbsp;That&rsquo;s why&nbsp;our&nbsp;</span><a href="/link/65b30fc2d7794bd5b3671e344992c3be.aspx"><span data-contrast="none">24/7 Proactive Response service</span></a><span data-contrast="auto">&nbsp;actively&nbsp;monitors&nbsp;security&nbsp;and&nbsp;performs&nbsp;incident management&nbsp;around the clock&nbsp;to give you peace of mind.</span><span data-ccp-props="{}">&nbsp;</span></p> <p><span data-contrast="auto">If you want to know more about&nbsp;our security practices and standards,&nbsp;</span><a href="/link/5e98d748804743f48a4688e0d242ed9b.aspx"><span data-contrast="none">get in touch</span></a><span data-contrast="auto">&nbsp;so&nbsp;we can talk more about&nbsp;how we can help to protect your user data.</span></p>Wed, 17 Nov 2021 11:16:00 +0700https://niteco.com/articles/GDPR/AkofaWallace@editor.niteco.comWill You Be GDPR Ready by 25th May?<p><strong><em>The EU&rsquo;s General Data Protection Regulation (GDPR) comes into force in May 2018.&nbsp;Be &lsquo;Regulation Ready&rsquo;!<br /><br /></em></strong>Almost a year ago, the European Union&rsquo;s (EU&rsquo;s) General Data Protection Regulation (GDPR) Act was ratified. Now 12 months on, companies are finally showing signs of taking the necessary steps to comply with the law that is considered the biggest &lsquo;shake up&rsquo; in data protection history. Albeit slowly. But as the famous saying goes, &lsquo;time waits for no man&rsquo; and this is certainly the case as the countdown to this overhaul continues in earnest&hellip;<br /><br />From May 25<sup>th</sup> 2018, the GDPR will come into effect, significantly impacting the way companies operating in Europe and beyond, obtain, handle and eradicate the personal information of all living EU individuals. It&rsquo;s a law that is designed to give a citizen full control over their personal data and how it is used, while holding global entities to account should they mismanage the information.<br /><br />Non-compliance carries heavy consequences, with possible fines as steep as EUR20 million or up to four per cent of a firm&rsquo;s global revenue for the previous fiscal year, imposed. It&rsquo;s no surprise therefore, that corporations are already looking to modify their global systems now.</p> <p>Read more: <a href="/link/40560504c1eb45178e4d22afd46390af.aspx">How to make GA4 GDPR compliant</a><br /><br /><strong><em>As the development partner of choice for 53 international clients, Niteco has also made it a top priority to start modifying the digital solutions it provides in a bid to help companies adhere to the fine print of the law.<br /><br /></em></strong><strong>But first thing&rsquo;s first: are your ducks in a row?<br /><br /></strong>No modifications can be made if there isn&rsquo;t an accurate full scale digital footprint to look back over. Updating privacy policies and flagging up risks and potential breaches, is essential homework. Niteco&rsquo;s Founder, Pelle Niklasson recommends that a comprehensive corporate analysis of every data system and process is conducted before any changes are made. He says, &ldquo;Review and redraft your current privacy notices; be transparent about how you seek, obtain and record consent; and how you accurately identify and classify child customers.&rdquo; In addition, Pelle points out that it&rsquo;s critical to also make sure you know how you, as a company, will ensure you manage data breaches internally and with the affected customer, within the specified deadlines.<br /><br />&ldquo;It&rsquo;s a time-consuming task&rdquo; Pelle admits, &ldquo;But it will potentially save you millions of Euros in fines, not to mention saving your brand reputation.&rdquo;<br /><br />And despite the United Kingdom&rsquo;s (UK&rsquo;s) eventual divorce from the European Union, early whispers suggest the General Data Protection Regulation Act will be transposed into UK law, meaning UK companies, or companies who operate in the UK are not getting a free pass anytime soon!<br /><br /><strong>Do you need a Data Protection Officer?<br /><br /></strong>The ramifications of the Regulation are so far-reaching that experts are recommending a Data Protection Officer is appointed at companies with employees of 250 or more. &ldquo;It&rsquo;s easy to think that the GDPR is a legal issue, but it&rsquo;s not&rdquo; warns Pelle. &ldquo;The stipulations in this law and their weighty implications mean businesses have no choice but to adopt new ways of working and institute a watertight culture of safeguarding personal data.&rdquo; Pelle believes that a Data Protection Officer can lead on the necessary steps needed to ensure a company is &lsquo;Regulation Ready&rsquo; and can also be that helpful conduit between the company and their development partner. Pelle adds, &ldquo;Companies which are thinking ahead are already asking us to review their data structures and system security to ensure they meet GDPR requirements.&rdquo;<br /><br /><strong>What should you expect from your development partner?<br /><br /></strong>Although the onus is on the company to ensure compliance, working with a software development partner that explicitly appreciates the implications of the law on your business, is critical. After all, their insight and problem-solving capabilities could save you millions. &ldquo;Don&rsquo;t procrastinate!&rdquo; advises Pelle, &ldquo;Start talking with your software development partner and together, begin the planning and execution as early as possible so that your company is &lsquo;Regulation Ready&rsquo;.<br /><br /><strong><em>Pelle Niklasson is founder and Chief Executive Officer of Niteco, a global software development company that employs 200 people in Vietnam, Sweden, the UK, USA and Australia. </em></strong><strong><em>&nbsp;Niteco is the largest Episerver partner in the world, but also specialises in CMS and e-commerce using Sitecore, Wordpress, Sitevision, VirtoCommerce, Imagevault, InRiver and more. In addition, Niteco creates bespoke solutions using Microsoft, OpenSource and mobile technologies.<br /><br /></em></strong><strong><em>Find out more about Niteco by visiting our website: </em></strong><strong><em><a href="/link/aa5328d80a8c4d2cadec3b8bdb44e5d3.aspx">www.niteco.com</a></em></strong></p>Wed, 26 Apr 2017 14:00:00 +0700https://niteco.com/articles/google-symantec-feud/info@niteco.comDoes the Google/Symantec feud leave you on red alert?<p>The internet is turning red – or at least, the https security lock on Google Chrome, is. Back in March, there was a raging feud between two tech giants: Google and Symantec over the authentication of Symantec’s SSL/TLS certificates. If you haven’t heard, this has been a long running issue (since September 2015), with Google calling into question the validity and security of Symantec’s certificates – the ones that ensure your website is properly encrypted.&nbsp;<br /><br />Just weeks ago, the feud exploded. In a blog post, Google Engineer, Ryan Sleevi ascribes somewhere between 127 and 30,000 events of certificate misissuance to Symantec and its network of brands, including GeoTrust, Thawte, and RapidSSL. The same blog post also includes Google’s intent to “deprecate and remove” SSL certificates issued by Symantec.<br /><br /><strong>The three severe actions comprise:</strong><br /><br />1. Reducing the validity period of newly Symantec-issued certificates to nine months or less<br /><br />2. An “incremental distrust” of all currently-trusted Symantec-issued certificates<br /><br />3. And removal of the Extended Validation status of Symantec issued certificates for at least one year. <br /><br /><img title="google-chrome-version" alt="google-chrome-version-certificate" src="/link/539620eadc55426294a1dfc33af177e7.aspx" height="247" width="431" /><br /><br />However, Symantec defended their position, calling Google’s claims “exaggerated and misleading,” and have pointed the finger back at Google, stating that the internet titan singled out Symantec. It’s true that other Certificate Authorities have been at fault. Recently, for example, WordFence discovered that Let’s Encrypt, the free, open, and automated CA, “has been used to create thousands of SSLs certificates for phishing sites illegally using ‘PayPal.”&nbsp;<br /><br />But if Google follows through with its threats regarding Symantec, then anywhere between one-third and half of internet sites will be considered ‘insecure.’ This extremely public conversation between Google and Symantec, happening in real-time via blogs and forums, is calling to attention many issues for the digital community.&nbsp;<br /><br />Linus Ekstrom, Vice President of Technology at Niteco, asserts, “The potential disruption of this prolonged feud is immense. Site-owners cannot wait until Google and Symantec come to a compromise; they need to take the necessary precautions to ensure their website’s security.”&nbsp;<br /><br />But as the two giants battle it out, it’s the civilians who will be collateral. While customers well-versed in CAs can adapt easily, as these security issues are not unique only to Symantec’s network, other customers are trying to figure out their options as site owners.&nbsp;<br /><br /><br /><strong>How do you know if you’re affected?</strong><br /><br />With Symantec issuing 42% of the internet’s certificates, customers need to make sure their sites are properly secure and encrypted, otherwise their sites will receive the dreaded warning sign on Google Chrome. Visitors will be alerted to your website’s lack of security, and your brand is put at risk.&nbsp;<br /><br />Previously, it was relatively simple to be able to see your website’s SSL certificate. You only had to click on the padlock icon in the address bar. But starting from Chrome 56 on, the way to check requires 5 clicks instead of 2:&nbsp;<br /><br />1. Go to the Three Dots Menu<br /><br />2. Click on More Tools <br /><br />3. Find Developer Tools<br /><br />4. Click on the Security tab<br /><br />5. This will show you a Security Overview with a View Certificate Button.&nbsp;<br /><br /><img title="google-chrome-ssl-certificate" alt="google-ssl-certificate-information" src="/link/5e8b7ea2b41946f4b73fde990ea8e96b.aspx" height="732" width="1103" /><br /><br />This has more than a few power-users and developers upset at the cumbersome steps to display information. However, there is a small keyboard shortcut for steps 1-3.&nbsp;<br /><br />For Windows users, press Ctrl+Shift+i, then choose the Security tab. On a Mac, press Cmd+Opt+i.&nbsp;<br /><br />However you check it, the important question is this: Is your certificate issued by Symantec or one of Symantec’s acquired brands? Is your website security certificate at risk?&nbsp;<br /><br /><br /><strong>What more can you do?</strong><br /><br />Knowing your certificate is one thing, but a weak certificate is still a chink in your security armor. No one solution is 100% reliable, so you must take the necessary precautions to ensure your website is purchased from a trusted certificate.&nbsp;<br /><br />“If you do need to get your SSL certificate updated, make sure it’s from a trusted and reputable source,” warns Tu Nguyen of Niteco’s IT team. “Other companies may take advantage of this opportunity to offer Symantec customers cheaper prices, but not necessarily deliver certificates that are up to standard.”<br /><br />Be absolutely sure of your website’s security by using this free scanning tool from GoDaddy. It’s a quick and simple way to see if your site passes Chrome’s security checks.<br /><br />While Chrome and other browsers take safety and security seriously, it takes time for malicious websites to show up on their radar. If a giant like Symantec (and others) can let even one false certificate slip through its fingers, you must take your site’s security in your own hands.</p>Mon, 15 May 2017 19:56:00 +0700https://niteco.com/articles/Episerver-instant-templates-worth-trying-out/Linus EkströmEpiserver Instant Templates – A golden nugget worth trying out<p>Since the release of Episerver 7 five years ago, Episerver has been able to work in a modular manner. Using blocks with a few page templates makes it possible to create many variations of pages, by combining blocks in content areas. This reduces the need to have many page types, which is usually the case for systems that are based on page templates which don&rsquo;t come with the ability to build the unique page using a block-based technique.</p> <h2 dir="ltr">Modular Web Design</h2> <p>Long gone are the days where designers who were coming from the world of print, ruled the web. As a result of the explosion of devices, designing pages and systems using block-based design is something that has become almost mandatory as the need for responsive design increases. To read more, click on this link: <a href="https://medium.com/5000-things/learning-from-lego-a-step-forward-in-modular-web-design-d8ff953f45a8">https://medium.com/5000-things/learning-from-lego-a-step-forward-in-modular-web-design-d8ff953f45a8</a>.<br /><br />Now, when I talk with customers about building sites in Episerver (or any other modular based system), I usually refer to how Lego works. With a few base templates and a number of different blocks, it is possible to create a plethora of individual pages. Actually, the reason that Episerver chose to call their &lsquo;modules&rsquo; blocks was because of the Lego analogy.</p> <p>&nbsp;<img title="episerver-instant-template" src="/link/d8ff6bac92744afc92e99debee82c80b.aspx" alt="episerver-instant-template" width="744" height="418" /></p> <h2 dir="ltr">The Demands of Today</h2> <p>Ever since I jumped the fence from an architect at Episerver to the client side, I have worked on a number of multi-site/multi lingual /multi market/multi stakeholder projects. Typically, a big organization with such complex needs puts in place a steering committee to help prioritize the work. However, in large organizations, listening and adapting to every possible need for variation could easily cripple the attempts to create a new web solution for the organization. Creating flexible enough templates with blocks makes it so much easier to adapt the varying needs of an organization and its markets.<br /><br />For example, variants of the concept pages can be made for differing markets, simply by moving around or adding or removing blocks. This gives editors the option to adapt to the market without the need to involve the systems implementer (except in the rare cases where you have to add new block types). Using Instant Templates can also accelerate your web efforts, since new ways to use the blocks can be tested, and then replicated to other markets if successful. Of course, this is a challenge in itself when you have a lot of markets and stakeholders, but at least it moves the limitations from being a technical one to being more about communication and collaboration between the stakeholders.<br /><br />So, with a few base templates and lots of options for placing blocks, this solution should be a win-win for all parties, right? Well, it turns out for one essential group, life becomes more complicated. That group is the editors because creating dynamic pages becomes much more challenging than filling in a few pre-defined form fields.<br /><br />Even though you can give training and perhaps offer some &lsquo;How To&rsquo; guides, it is still rather tricky for an editor to build a page from scratch with a set of blocks. In addition, building complex pages from scratch using blocks will not give consistency, and anyone that has built an advanced Lego module with or without a manual knows how time consuming and hard this is. The same thing goes for very flexible templates in Episerver using blocks.</p> <p>&nbsp;<img title="instant-template" src="/link/d61ad8296b56417cbc3071ef9fa6472f.aspx" alt="instant-template" width="744" height="417" /></p> <h2 dir="ltr">What Instant Templates Can Help With</h2> <p>There has always been a need to help editors in Episerver. For new editors not used to Episerver, simple templates for news and similar, makes it easy to contribute content. Actually, an early mantra when developing Episerver CMS was that &lsquo;everyone should be able to create and edit content in the CMS&rsquo;. As pages become more and more complex, the need to have templates for intermediate and even experienced editors grows. When I was working at Episerver, it was actually quite common practice that the internal editors at Episerver actually used copy and paste to create new content. Of course, this has many negative effects, such as people forgetting to add a proper URL slug.<br /><br />A few years back, I was talking to Allan Thraen, Episerver Director of Research, regarding this problem, which it turned out, he was also investigating. As editors were using the copy and paste technique already, I suggested to Allan, an innovative way we could improve upon that method while eliminating as many of the disadvantages as possible. For example;</p> <p><strong>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Instead of just finding an existing page, editors can create separate templates that can be organized and easy to find</strong></p> <p><strong>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The add-on ensures the content is set to a draft state when creating an item from a template (compared with Episerver pages which you would have to unpublish as a first step after you have copied it)</strong></p> <p><strong>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Clear some values, like URL slug, when you start.</strong></p> <p>With this in mind, I created a POC for this that I then handed over to Fredrik Vig at Geta who finalized and released this. Templates are managed as regular content in a separate structure that can be worked with by adding a new gadget to the Episerver editorial interface:<br /><br /><img title="episerver-instant-template" src="/link/e028719cbeae4adfacfbc7b015f53e10.aspx" alt="episerver-instant-template" width="243" height="361" /><br /><br />Since this is just standard content, you can add any kind of content as a template and you can also manage access rights to the templates in the admin interface. There is also an addition to the &ldquo;new&rdquo; button where you can choose to create new content from an instant template which gives you a selection of the right templates.<br /><br /><img title="episerver-instant-template" src="/link/3d0eb6acede34478b9ab548125b95e0c.aspx" alt="episerver-instant-template" width="743" height="418" /></p> <h2 dir="ltr">How About Nested Blocks?</h2> <p>You can create templates that contain blocks inside of them. For example, if you create a new item from a template, it will replicate all local blocks while links to shared blocks will continue to link to the shared block.</p> <h2 dir="ltr">How About Multi-Lingual Solutions?</h2> <p>I like to compare Instant Templates with copy paste, but on steroids. I do not recommend a client having several languages for the instant templates, since the content for each language will be copied to the new content. In my opinion, the best future solution for Instant Templates would be if only the content for the current language was copied so that you could create multi lingual templates. For now however, I recommend setting up templates for each language where you need to create original content.<br /><br /><img dir="ltr" title="episerver-instant-template" src="/link/38d3d385578241b9a89fb044e47d2140.aspx" alt="episerver-instant-template" width="190" height="123" /></p> <h2>What About Contributing to Instant Templates?</h2> <p>I talked to Fredrik Vig at Geta about making this available on open source and he has agreed. We at Niteco plan to contribute to the improvement of this module even further and I hope that others can join that effort as well.<br /><br /><strong>Further Reading:</strong>&nbsp;</p> <p><a href="https://github.com/Geta/InstantTemplates">https://github.com/Geta/InstantTemplates</a>&nbsp;</p> <p><a href="https://medium.com/5000-things/learning-from-lego-a-step-forward-in-modular-web-design-d8ff953f45a8">https://medium.com/5000-things/learning-from-lego-a-step-forward-in-modular-web-design-d8ff953f45a8</a>&nbsp;</p> <p><a href="https://world.optimizely.com/articles/Items/EPiServer-7-Ready-for-a-multi-screen-world/">https://world.optimizely.com/articles/Items/EPiServer-7-Ready-for-a-multi-screen-world/</a></p> <p>&nbsp;</p> <p><br /><br /><br /></p>Wed, 24 May 2017 16:45:00 +0700