<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paul van Dyk</title>
    <description>The latest articles on DEV Community by Paul van Dyk (@paulvd).</description>
    <link>https://dev.to/paulvd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1049494%2Fbbcb6be9-83ee-4224-8d8a-4e4e4b299f34.jpeg</url>
      <title>DEV Community: Paul van Dyk</title>
      <link>https://dev.to/paulvd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/paulvd"/>
    <language>en</language>
    <item>
      <title>Audits conducted in Front-Commerce for client projects</title>
      <dc:creator>Paul van Dyk</dc:creator>
      <pubDate>Fri, 11 Aug 2023 10:44:44 +0000</pubDate>
      <link>https://dev.to/front-commerce/audits-conducted-in-front-commerce-for-client-projects-o9b</link>
      <guid>https://dev.to/front-commerce/audits-conducted-in-front-commerce-for-client-projects-o9b</guid>
      <description>&lt;p&gt;When it comes to developing an e-commerce website, there are many different areas that require constant attention. Project teams may introduce performance issues or forget important features that could negatively impact the user experience. That's why audits are crucial to ensure that the website is meeting high standards and delivering a great user experience.&lt;/p&gt;

&lt;p&gt;At Front-Commerce, we conduct thorough audits on our client projects and provide recommendations to improve website performance and user experience. In this blog post, we will discuss the key points we measure during our audits.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Performance
&lt;/h2&gt;

&lt;p&gt;Performance is a critical factor in the success of an e-commerce store. A slow website can lead to frustrated customers and lost sales. During our audits, we measure the performance of our client's websites in two key areas: server and webperfs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Server
&lt;/h3&gt;

&lt;p&gt;During our audits, we check if the website's server is performing well. We make sure that things like cache and data loaders are implemented correctly to improve server performance. We also verify if the cache strategies are properly implemented to &lt;a href="https://developers.front-commerce.com/blog/audit-optimization-number-of-external-requests"&gt;reduce the number of requests made to external services&lt;/a&gt;. Another thing we check is that the server-side rendering (SSR) is implemented properly to improve the TTFB. We also ensure that there are no memory leaks that can negatively impact the application's stability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webperfs
&lt;/h3&gt;

&lt;p&gt;
  Another important part of our performance audit is the webperfs analysis. webperfs measures the website speed, responsiveness, and overall user experience. This includes checking if the website's fonts and images are optimized for the store and if the JavaScript bundle size is at an optimal level. We also check if important pages are preloaded to improve the perceived performance for end users.
&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 Theme customization
&lt;/h2&gt;

&lt;p&gt;We understand that every e-commerce store has unique branding requirements. During our audits, we check if the website's theme has been customized to match the client's branding guidelines. We also ensure that any customizations do not negatively impact the website's performance or user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  🦻 Accessibility
&lt;/h2&gt;

&lt;p&gt;We believe that all websites should be accessible to everyone, regardless of their abilities. During our audits, we check if the website meets accessibility standards, such as having proper alt tags for images, keyboard navigation support, and proper contrast ratios.&lt;/p&gt;

&lt;h2&gt;
  
  
  🖌️ Styleguide
&lt;/h2&gt;

&lt;p&gt;Consistency is key when it comes to creating a great user experience. During our audits, we check if the website's style guide is consistent throughout the website. We also ensure that the website's typography, colors, and spacing are in line with the client's branding guidelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  📨 Links received by e-mail
&lt;/h2&gt;

&lt;p&gt;A customer journey extends beyond the web UI and encompasses email interactions. That is why we also check the links that are received by email, as it ensures that customers can access the correct pages of the website, leading to a better overall user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Audit broken links in the store
&lt;/h2&gt;

&lt;p&gt;In a project, developers could have forgotten to update a hardcoded link, or content writers may have contributed unfinished content or made typos. That's why during our audits, we perform a thorough check for broken links and provide recommendations to fix them, ensuring that the website's user experience and SEO are not negatively impacted.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 SEO
&lt;/h2&gt;

&lt;p&gt;Having good SEO is crucial to driving traffic to the website. During our audits, we check for the following:&lt;/p&gt;

&lt;h3&gt;
  
  
  404 &amp;amp; redirections
&lt;/h3&gt;

&lt;p&gt;We check for any 404 errors and ensure that the website has proper redirections in place. This is especially important when migrating to Front-Commerce from another platform, as the links may not be in the same format. This can cause 404 errors for any pages previously crawled by search engine robots, such as Google.&lt;/p&gt;

&lt;h3&gt;
  
  
  Robots.txt
&lt;/h3&gt;

&lt;p&gt;We ensure that the website's robots.txt file is properly configured to allow search engines to crawl the website's pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sitemap
&lt;/h3&gt;

&lt;p&gt;We check if the website has a sitemap.xml file and that it is correctly generated. More information about this can be found &lt;a href="https://developers.front-commerce.com/docs/2.x/advanced/production-ready/sitemap"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Meta tags and microdata
&lt;/h3&gt;

&lt;p&gt;We ensure that the website's meta tags and microdata are properly configured to improve the website's search engine rankings and visibility when sharing on social platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  📱 PWA (Progressive Web App)
&lt;/h2&gt;

&lt;p&gt;We ensure that the store meets the standards for a PWA. We provide recommendations to improve the website's PWA capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  📈 Analytics
&lt;/h2&gt;

&lt;p&gt;During our audits, we check if the website has proper analytics tracking in place. This helps our clients to make data-driven decisions to improve their website's performance and user experience. More information about this can be found &lt;a href="https://developers.front-commerce.com/docs/2.x/category/analytics"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧑‍💻 Code quality audit
&lt;/h2&gt;

&lt;p&gt;Auditing code quality in a project is essential for several reasons. Firstly, it helps identify and rectify potential bugs, vulnerabilities, and performance issues, ensuring a more stable and secure application (as mentioned above).&lt;br&gt;
Secondly, it promotes maintainability and ensures that the project can be updated during its life. By adhering to Front-Commerce best practices, developers can upgrade to newer Front-Commerce versions more easily and with less risk of introducing bugs. Finally, our code quality audit encourages consistent coding standards and improves overall code readability. This leads to a more robust, efficient, and sustainable codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  🪄 Application stability
&lt;/h2&gt;

&lt;p&gt;Application stability is a crucial aspect of a composable architecture, like the one used by Front-Commerce. It refers to the website's ability to remain resilient to external systems outages, such as server downtime or configuration&lt;br&gt;
errors. Ensuring stability is essential for a front-end solution like Front-Commerce, as it directly impacts the user experience and the website's ability to drive sales. Front-Commerce conducts thorough audits to identify potential issues that could affect stability and provides recommendations to improve resilience and ensure a reliable website.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Magic Button
&lt;/h2&gt;

&lt;p&gt;We believe in going above and beyond for our clients. During our audits, we look for opportunities to add additional features to the website that will improve the contribution experience and improve the merchant’s team productivity. Our&lt;br&gt;
&lt;code&gt;Magic Button&lt;/code&gt; feature allows contributors to seamlessly improve the content on the website with direct links to the content source. We ensure that the contribution mode activation is secure and that any custom content is wrapped with the &lt;code&gt;StorefrontContent&lt;/code&gt; component. More information about this can be found&lt;a href="https://developers.front-commerce.com/docs/2.x/category/magic-button"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☁️ Prod server &amp;amp; CI
&lt;/h2&gt;

&lt;p&gt;We check if the website is properly deployed to the production server and if the continuous integration (CI) process is working correctly. This ensures that the website is always up-to-date and running smoothly.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗒️ Audit logs
&lt;/h2&gt;

&lt;p&gt;After conducting a thorough audit of the website, it's important to keep track of any bugs or issues that may arise once the site is live. While we analyze the codebase and test the application during the audit, we believe that analyzing&lt;br&gt;
application logs and monitoring metrics is also crucial once the site is live. This allows us to detect any smaller bugs or performance issues that may have been missed during testing. We follow up on our audits with log analysis a few days after the project is live to ensure that everything is running smoothly and to address any issues that may arise. By addressing these smaller issues, we can improve the overall quality of the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☑️ Checklist before production
&lt;/h2&gt;

&lt;p&gt;Before we proceed with the audit, we have a checklist that should ideally be done by integrators in the project. This checklist includes items such as verifying that the environment is properly configured, that the data has been&lt;br&gt;
properly migrated, and that there are no broken links or missing assets. You can find a detailed checklist in our documentation &lt;a href="https://developers.front-commerce.com/docs/2.x/advanced/production-ready/checklist-before-production"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In summary, audits are essential for ensuring that e-commerce websites meet the high standards necessary to drive sales and provide an exceptional user experience. At Front-Commerce, we take great pride in conducting comprehensive audits and providing our clients with actionable recommendations to enhance their website's performance and user experience. By partnering with us, our clients can rest assured that their website is optimized for success and delivering the best possible experience for their customers.&lt;/p&gt;

</description>
      <category>performance</category>
      <category>audits</category>
      <category>webperf</category>
      <category>developer</category>
    </item>
    <item>
      <title>Set up a WSL development environment.</title>
      <dc:creator>Paul van Dyk</dc:creator>
      <pubDate>Mon, 03 Apr 2023 12:50:39 +0000</pubDate>
      <link>https://dev.to/front-commerce/set-up-a-wsl-development-environment-44jk</link>
      <guid>https://dev.to/front-commerce/set-up-a-wsl-development-environment-44jk</guid>
      <description>&lt;p&gt;Looking to take your Windows development environment to the next level? Look no further than Windows Subsystem for Linux (WSL)! With this powerful tool, you can quickly and easily set up a Linux-based development environment on your Windows machine. This guide has everything you need to get started, from installing WSL to updating packages and setting up Windows Terminal. Plus, we'll show you how to install Node.js and Git, and give you tips for using Visual Studio Code, Zsh, and Oh My Zsh.&lt;/p&gt;

&lt;p&gt;You have two options for installation: you can either follow the full installation guide, or you can refer to the best practices for setup, which includes a step-by-step setup guide and explains important concepts such as File Storage.&lt;/p&gt;

&lt;h4&gt;
  
  
  Prerequisites
&lt;/h4&gt;

&lt;p&gt;To set up WSL in Windows, virtualization should be enabled, commonly referred to as SVM mode. Ensure that it is enabled in your BIOS, you can follow this guide to locate it (it will differ depending on your motherboard). Once enabled, proceed to Install WSL in Windows.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install WSL (📑&lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/setup/environment#get-started" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;ℹ️ &lt;em&gt;If you have already followed the &lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/install" rel="noopener noreferrer"&gt;full install guide&lt;/a&gt;, you can skip this step.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To install Ubuntu, open PowerShell or Windows Command Prompt in &lt;strong&gt;administrator&lt;/strong&gt; mode by right-clicking and selecting "Run as administrator", then enter the &lt;code&gt;wsl --install&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;After running the WSL install command and restarting, Ubuntu will be installed by default. You may change the distribution name by passing in a new name with the &lt;code&gt;-d&lt;/code&gt; flag: &lt;code&gt;wsl --install -d &amp;lt;Distribution Name&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;However, I suggest staying with Ubuntu. 🙂&lt;/p&gt;




&lt;h2&gt;
  
  
  Update and upgrade packages (📑&lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/setup/environment#update-and-upgrade-packages" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;When starting a new development project, updating your packages is always a good idea. After setting up your Unix account, you can simply run this one-liner to update the package manager:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Resolving common connection errors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you receive an error message saying &lt;code&gt;Temporary failure resolving ‘archive.ubuntu.com’&lt;/code&gt;, it is usually due to an invalid nameserver on the WSL installation. This can cause the WSL instance to be unable to connect to the internet.&lt;br&gt;
To confirm if this is the case, try to &lt;code&gt;ping www.google.com&lt;/code&gt;. If it cannot be pinged, this should confirm that the nameserver configuration is the issue. You can update your configurations to the following:&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/wsl.conf
  &lt;span class="o"&gt;[&lt;/span&gt;network]
  generateResolvConf &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt; &lt;span class="c"&gt;# disables auto generation of resolv config&lt;/span&gt;
  generateHosts &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt; &lt;span class="c"&gt;# disables auto generation of hosts /etc/hosts&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/resolv.conf
  nameserver 1.1.1.1


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, as a last step, you can protect the &lt;code&gt;resolv.conf&lt;/code&gt; file by forcing the overwrite to be disabled.&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;chattr &lt;span class="nt"&gt;-f&lt;/span&gt; +i /etc/resolv.conf


&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Set up Windows Terminal (📑&lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/setup/environment#set-up-windows-terminal" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;You can install any terminal, but personally, I prefer using the Preview build because it ships features much faster than the normal version. For example, the GUI feature only arrived around a year later on the standard version, and I have never found it to be really stable.&lt;/p&gt;

&lt;p&gt;To install, visit the Microsoft Store Apps for either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3?hl=en-us&amp;amp;gl=US" rel="noopener noreferrer"&gt;Windows Terminal Preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-us&amp;amp;gl=US" rel="noopener noreferrer"&gt;Windows Terminal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And as mentioned above, GUI is supported! That means you can &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps" rel="noopener noreferrer"&gt;run Linux GUI apps on WSL&lt;/a&gt; 😇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsppqz6q78aehkkc03tot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsppqz6q78aehkkc03tot.png" alt="wsl gui"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  File storage (📑&lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/setup/environment#file-storage" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;To open your WSL project in Windows File Explorer, enter: &lt;code&gt;explorer.exe .&lt;/code&gt; Be sure to add the period at the end of the command to open the current directory.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;TIP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the fastest performance, &lt;a href="https://learn.microsoft.com/en-gb/windows/wsl/filesystems#file-storage-and-performance-across-file-systems" rel="noopener noreferrer"&gt;store your project files on the same operating system&lt;/a&gt; as the tools you plan to use. If you are working with Linux tools in a Linux command line (Ubuntu, OpenSUSE, etc), store your files in the WSL file system. If you're working with Windows tools in a Windows command line (PowerShell, Command Prompt), store your files in the Windows file system. Files can be accessed across operating systems, but doing so may significantly slow down performance.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Install Node.js on WSL&lt;/strong&gt; (📑&lt;a href="https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;We will be using Node Version Manager (&lt;code&gt;nvm&lt;/code&gt;). Follow these steps to install it on Ubuntu (or a similar distribution):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your command line.&lt;/li&gt;
&lt;li&gt;Install cURL using the following command: &lt;code&gt;sudo apt-get install curl&lt;/code&gt;. cURL is a tool used for downloading content from the internet in the command-line.&lt;/li&gt;
&lt;li&gt;Go to the &lt;a href="https://github.com/nvm-sh/nvm/releases" rel="noopener noreferrer"&gt;nvm repository&lt;/a&gt; and find the latest release.&lt;/li&gt;
&lt;li&gt;Install nvm using the following command:
```bash
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;curl -o- &lt;a href="https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh" rel="noopener noreferrer"&gt;https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh&lt;/a&gt; | bash&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---

## **Setting up your shell ([Zsh](https://www.zsh.org/) + [Oh My Zsh](https://ohmyz.sh/))**

This step is optional, but you may want to use Zsh and Oh My Zsh if you are looking for a more customizable and powerful shell experience.

### Installing zsh

To install zsh, open the Ubuntu app installed from the App Store and run the following command in the terminal:

```bash


sudo apt-get install zsh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once it's installed, type &lt;code&gt;zsh&lt;/code&gt; in the terminal. It will prompt you to choose some configuration options. We will do this later on while installing &lt;code&gt;oh-my-zsh&lt;/code&gt;, so choose option &lt;code&gt;0&lt;/code&gt; to create the config file and prevent this message from showing again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing oh-my-zsh
&lt;/h3&gt;

&lt;p&gt;Before anything else, you need to have &lt;code&gt;git&lt;/code&gt; installed on your system. You can install it by running the following command in a terminal:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;git


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After installing &lt;code&gt;git&lt;/code&gt;, you can then use &lt;code&gt;curl&lt;/code&gt; to install oh-my-zsh.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; &amp;lt;https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh&amp;gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command will clone the repository and replace the existing &lt;code&gt;~/.zshrc&lt;/code&gt; file with a template from &lt;code&gt;oh-my-zsh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4mbqung0n4xdd7no83e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4mbqung0n4xdd7no83e.png" alt="install oh-my-zsh"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Installing OhMyZsh Plugins
&lt;/h2&gt;

&lt;p&gt;We can supercharge our command line by adding some oh-my-zsh plugins. First, open the zsh config by running &lt;code&gt;vim ~/.zshrc&lt;/code&gt;. Next, find the line &lt;code&gt;plugins=&lt;/code&gt; and add the desired plugins.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git nvm &lt;span class="nb"&gt;history &lt;/span&gt;zsh-autosuggestions jsontools command-not-found zsh-syntax-highlighting&lt;span class="o"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I have listed my favorite plugins here, but feel free to use your own set based on your needs. You can find a list of plugins&lt;br&gt;
&lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Additionally, I use 3rd party plugins that must be pulled separately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/zsh-users/zsh-autosuggestions" rel="noopener noreferrer"&gt;https://github.com/zsh-users/zsh-autosuggestions&lt;/a&gt;
(&lt;a href="https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh" rel="noopener noreferrer"&gt;installation instructions&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zsh-users/zsh-syntax-highlighting" rel="noopener noreferrer"&gt;https://github.com/zsh-users/zsh-syntax-highlighting&lt;/a&gt;
(&lt;a href="https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh" rel="noopener noreferrer"&gt;installation instructions&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enable NVM autoload in zsh
&lt;/h3&gt;

&lt;p&gt;Enabling the nvm autoload plugin allows you to use the appropriate node version based on the specifications in a &lt;code&gt;.nvmrc&lt;/code&gt; file in any of your projects. This feature is especially helpful when working on multiple projects with different node versions, as it eliminates the need to switch between incompatible versions. With nvm autoload, you can easily switch between projects while ensuring you are using the correct node version.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

zstyle &lt;span class="s1"&gt;':omz:plugins:nvm'&lt;/span&gt; autoload &lt;span class="nb"&gt;yes&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Useful gists for aliases
&lt;/h3&gt;

&lt;p&gt;To create an &lt;code&gt;.aliases&lt;/code&gt; file in your home directory, run the command &lt;code&gt;touch ~/.aliases&lt;/code&gt;. Then, ensure that it is sourced in your &lt;code&gt;.zshrc&lt;/code&gt; file by adding &lt;code&gt;source ~/.aliases&lt;/code&gt; to it.&lt;/p&gt;

&lt;p&gt;Next, you can add the aliases and configurations used in the terminal by following the instructions in &lt;a href="https://gist.github.com/paul-vd/c1ea26e19414bfcb66e7656ed7c22444" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You will notice that there is an alias for &lt;code&gt;npm&lt;/code&gt;. This is to detect which package manager to use by searching for the nearest lock file. An alternative to this is &lt;a href="https://github.com/antfu/ni" rel="noopener noreferrer"&gt;ni&lt;/a&gt;, which is highly recommended.&lt;/p&gt;


&lt;h2&gt;
  
  
  Git Credential Manager setup (📑&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-git#git-credential-manager-setup" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;The credential manager can assist with any HTTPS authentication, utilizing the &lt;a href="https://support.microsoft.com/help/4026814/windows-accessing-credential-manager" rel="noopener noreferrer"&gt;Windows Credential Manager&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To download the latest version, visit the repository at&lt;br&gt;
&lt;a href="https://github.com/GitCredentialManager/git-credential-manager/releases" rel="noopener noreferrer"&gt;https://github.com/GitCredentialManager/git-credential-manager/releases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After installation and configuration, you should also add it to your Linux shell.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

git config &lt;span class="nt"&gt;--global&lt;/span&gt; credential.helper &lt;span class="s2"&gt;"/mnt/c/Program&lt;/span&gt;&lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="s2"&gt;Files/Git/mingw64/bin/git-credential-manager-core.exe"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  VSCode (📑&lt;a href="https://docs.microsoft.com/en-gb/windows/wsl/tutorials/wsl-vscode" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;To get started, &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;download and install VSCode&lt;/a&gt;. Then, add the remote &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack" rel="noopener noreferrer"&gt;development extension&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's it you should be ready to start developing in WSL.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your WSL container resolves the &lt;code&gt;code&lt;/code&gt; path to an Ubuntu installation of VSCode, it can cause issues when you try to open a folder using a command like &lt;code&gt;code ./my-folder&lt;/code&gt;. If Git extensions crash at startup, create an alias for the &lt;code&gt;code&lt;/code&gt; command to point to your Windows installation of VSCode. Run &lt;code&gt;which code&lt;/code&gt;&lt;br&gt;
to detect which VSCode installation is being used.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
Add an alias for the &lt;code&gt;code&lt;/code&gt; command that points to your Windows installation by including it in your &lt;code&gt;.aliases&lt;/code&gt; file.&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/mnt/c/Users/%userprofile%/AppData/Local/Programs/Microsoft&lt;/span&gt;&lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="s2"&gt;VS&lt;/span&gt;&lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="s2"&gt;Code/bin/code"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Microsoft PowerToys: Utilities to customize Windows (📑&lt;a href="https://docs.microsoft.com/en-us/windows/powertoys/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;As you're setting up your Windows development environment, you might be interested in exploring some of the additional tools available to you. One of my personal favorites are the Microsoft PowerToys, a set of utilities designed to help streamline and customize your Windows experience for greater productivity. &lt;a href="https://docs.microsoft.com/en-us/windows/powertoys/install" rel="noopener noreferrer"&gt;Install Microsoft PowerToys&lt;/a&gt; to keep tweaking Windows!&lt;/p&gt;

&lt;p&gt;Here are a few PowerToys features that I find particularly useful:&lt;/p&gt;

&lt;h3&gt;
  
  
  FancyZones
&lt;/h3&gt;

&lt;p&gt;If you want to easily manage the position of each application window on your Windows desktop, check out &lt;a href="https://learn.microsoft.com/en-us/windows/powertoys/fancyzones" rel="noopener noreferrer"&gt;FancyZones&lt;/a&gt;. This tool allows you to customize the size and positioning of your snapping grid with efficient layouts that suit your needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnl6hgf7d4saywau2gpsc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnl6hgf7d4saywau2gpsc.gif" alt="FancyZones"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Keyboard Manager
&lt;/h3&gt;

&lt;p&gt;With the PowerToys Keyboard Manager, you can redefine keys and shortcut combinations on your keyboard. For instance, you can swap the A key for the B key. You can also swap Ctrl + C for ⊞ Win + C. This will copy text when ⊞ Win + C is pressed. If no specific application is targeted in the PowerToys Keyboard Manager, the changes will apply globally across Windows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6l807suxupyjbwvt5lu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6l807suxupyjbwvt5lu.gif" alt="KBM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File Explorer Preview Pane
&lt;/h3&gt;

&lt;p&gt;The Preview Pane is an existing feature in Windows File Explorer that lets you see a preview of a file's contents in the view's reading pane. PowerToys enhances this feature by adding support for multiple file extensions, including Markdown, SVG, PDF, and G-code. It also adds support for source code files with more than 150 file extensions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyahf43yc25bmqxihnzr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyahf43yc25bmqxihnzr.gif" alt="PreviewPane"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ColorPicker
&lt;/h3&gt;

&lt;p&gt;This Windows color picker is a must-have tool for designers and themers. It allows you to easily select colors from any application and customize them to your liking. The interface is user-friendly and you can copy colors to your clipboard in different formats, including hexadecimal, RGB, and HSL. This tool simplifies color palette management and is lightweight. Download it today to improve your design work!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmsh4lg2hipdkl7cwou7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmsh4lg2hipdkl7cwou7.gif" alt="ColorPicker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Text Extractor utility
&lt;/h3&gt;

&lt;p&gt;Text Extractor allows you to copy text from anywhere on your screen, including&lt;br&gt;
inside images or videos.&lt;/p&gt;

&lt;p&gt;To activate the capture feature, use the shortcut (default: ⊞ Win + Shift +T). This will display an overlay on your screen. Click and hold your primary mouse button, then drag to capture the text. The captured text will be saved to your clipboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wj7g1xlqv65gnqthv9t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wj7g1xlqv65gnqthv9t.gif" alt="PowerOCR"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Run Utility
&lt;/h3&gt;

&lt;p&gt;PowerToys Run is a quick launcher for power users that includes additional features without sacrificing performance. It is open source and modular, allowing for additional plugins to be added.&lt;/p&gt;

&lt;p&gt;To use PowerToys Run, simply press Alt + Space and start typing!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfcio7kxodef5fm6pmrw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfcio7kxodef5fm6pmrw.gif" alt="Run"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Enable ‘God Mode’
&lt;/h2&gt;

&lt;p&gt;God Mode will give you access to all of Windows’ control panels from one folder. To enable it right-click on the desktop and select &lt;strong&gt;New &amp;gt; Folder&lt;/strong&gt;. Re-name the new folder with this bit of code:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

GodMode.&lt;span class="o"&gt;{&lt;/span&gt;ED7BA470-8E54-465E-825C-99712043E01C&lt;span class="o"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Sharing SSH keys between Windows and WSL 2&lt;/strong&gt; (📑&lt;a href="https://devblogs.microsoft.com/commandline/sharing-ssh-keys-between-windows-and-wsl-2/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If you have setup ssh in windows you can copy it to your linux&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

   &lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; /mnt/c/Users/&amp;lt;username&amp;gt;/.ssh ~/.ssh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Fix the permissions&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

   &lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.ssh/id_rsa


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Add keychain to linux&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

   &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;keychain


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Run the keychain every time you start a shell instance, you can append this to the top of your &lt;code&gt;.zshrc&lt;/code&gt; file.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

   &lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="sb"&gt;``&lt;/span&gt;keychain  &lt;span class="nt"&gt;--quiet&lt;/span&gt; &lt;span class="nt"&gt;--eval&lt;/span&gt; &lt;span class="nt"&gt;--agents&lt;/span&gt; ssh id_ed25519
   &lt;span class="nb"&gt;command &lt;/span&gt;clear &lt;span class="c"&gt;# this is why we add it to the top so that we can still se other outputs, I have not yet found a better way of silencing the keychain export messages&lt;/span&gt;
   &lt;span class="sb"&gt;```&lt;/span&gt;

&lt;span class="nt"&gt;---&lt;/span&gt;

&lt;span class="c"&gt;## Conclusion&lt;/span&gt;

You have just learned how to &lt;span class="nb"&gt;set &lt;/span&gt;up WSL on your Windows machine and create a powerful and efficient development environment. By following this guide, you have installed WSL and updated packages, &lt;span class="nb"&gt;set &lt;/span&gt;up Windows Terminal and installed Node.js and Git. These tools will &lt;span class="nb"&gt;help &lt;/span&gt;you code faster, easier, and more securely.

🥳 Congratulations on completing this guide! We hope you enjoyed it and found it useful. If you want to learn more about other topics related to development, stay tuned as our blog will be growing!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>tutorial</category>
      <category>windows</category>
      <category>wsl2</category>
      <category>setup</category>
    </item>
  </channel>
</rss>
