<?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>Forem: Tuner9696</title>
    <description>The latest articles on Forem by Tuner9696 (@tuner9696_len).</description>
    <link>https://forem.com/tuner9696_len</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%2F3671416%2F2b02ae8a-b766-424a-b09d-27d6541c0fa0.jpeg</url>
      <title>Forem: Tuner9696</title>
      <link>https://forem.com/tuner9696_len</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tuner9696_len"/>
    <language>en</language>
    <item>
      <title>Strapi v4 v5 Overview: What Changed and Why It Matters</title>
      <dc:creator>Tuner9696</dc:creator>
      <pubDate>Sun, 21 Dec 2025 08:46:04 +0000</pubDate>
      <link>https://forem.com/tuner9696_len/strapi-v4-v5-overview-what-changed-and-why-it-matters-58k1</link>
      <guid>https://forem.com/tuner9696_len/strapi-v4-v5-overview-what-changed-and-why-it-matters-58k1</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Upgrading from &lt;strong&gt;Strapi v4 to v5&lt;/strong&gt; is a major step—not a routine dependency update.&lt;/p&gt;

&lt;p&gt;Strapi v5 introduces a more modern, production-oriented architecture with improvements such as a Vite-powered Admin UI, first-class TypeScript support, and clearer build workflows. At the same time, it brings &lt;strong&gt;significant breaking changes&lt;/strong&gt; that directly impact how Strapi projects are built, configured, and deployed.&lt;/p&gt;

&lt;p&gt;This first article focuses on &lt;strong&gt;understanding the differences between Strapi v4 and v5&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rather than diving into implementation details or troubleshooting, the goal here is to give you a clear mental model of &lt;em&gt;what changed&lt;/em&gt; and &lt;em&gt;where those changes affect existing projects&lt;/em&gt;. In the next article, we will dive into &lt;strong&gt;real-world upgrade pitfalls and lessons learned from a production migration&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  High-Level Differences
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Strapi v4&lt;/th&gt;
&lt;th&gt;Strapi v5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Admin UI bundler&lt;/td&gt;
&lt;td&gt;Webpack&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Vite&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Admin UI build&lt;/td&gt;
&lt;td&gt;Built at runtime&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Pre-build required&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configuration files&lt;/td&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node.js support&lt;/td&gt;
&lt;td&gt;14 / 16&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;18 / 20 recommended&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Environment variables&lt;/td&gt;
&lt;td&gt;Mostly runtime&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Separated by build vs runtime&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugin ecosystem&lt;/td&gt;
&lt;td&gt;Broad&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Many plugins not yet compatible&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production workflow&lt;/td&gt;
&lt;td&gt;Flexible&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Explicit and strict&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Admin UI Architecture Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Strapi v4
&lt;/h3&gt;

&lt;p&gt;In v4, the Admin UI is bundled with &lt;strong&gt;Webpack&lt;/strong&gt; and built automatically when the Strapi server starts.&lt;br&gt;
This makes development convenient, but the build process is largely implicit.&lt;/p&gt;

&lt;p&gt;Environment variables affecting the Admin UI are often picked up at runtime, which can hide configuration issues until later.&lt;/p&gt;




&lt;h3&gt;
  
  
  Strapi v5
&lt;/h3&gt;

&lt;p&gt;In v5, the Admin UI is powered by &lt;strong&gt;Vite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Key changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Admin UI must be &lt;strong&gt;explicitly built&lt;/strong&gt; using:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The output is a set of &lt;strong&gt;static assets&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Admin UI configuration is &lt;strong&gt;locked in at build time&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the behavior faster and more predictable, but also far less forgiving.&lt;/p&gt;




&lt;h2&gt;
  
  
  Build vs Start: A Clear Separation
&lt;/h2&gt;

&lt;p&gt;One of the most important conceptual changes in Strapi v5 is the separation between &lt;strong&gt;build time&lt;/strong&gt; and &lt;strong&gt;runtime&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strapi v4
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn start
  ├─ Admin UI is built
  └─ API server starts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Strapi v5
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn build   # Admin UI
   ↓
yarn start   # API server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation is foundational to how Strapi v5 is designed and affects everything from environment variables to containerization.&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment Variable Handling
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Strapi v4
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Environment variables are mostly read at runtime&lt;/li&gt;
&lt;li&gt;Restarting the server is usually enough to apply changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Strapi v5
&lt;/h3&gt;

&lt;p&gt;Environment variables are evaluated at &lt;strong&gt;different phases&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Affects&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build time&lt;/td&gt;
&lt;td&gt;Admin UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtime&lt;/td&gt;
&lt;td&gt;API / server&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This design is more explicit and production-friendly, but it requires careful planning—especially for containerized deployments.&lt;/p&gt;




&lt;h2&gt;
  
  
  Configuration Files: JavaScript → TypeScript
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Strapi v4
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Configuration files are written in JavaScript&lt;/li&gt;
&lt;li&gt;CommonJS (&lt;code&gt;module.exports&lt;/code&gt;) syntax&lt;/li&gt;
&lt;li&gt;Flexible but loosely structured&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Strapi v5
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Configuration files are written in &lt;strong&gt;TypeScript&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;ES module syntax (&lt;code&gt;export default&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Clearer structure and better tooling support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This change improves maintainability but increases the initial migration cost.&lt;/p&gt;




&lt;h2&gt;
  
  
  Plugin Ecosystem Differences
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Strapi v4
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Large plugin ecosystem&lt;/li&gt;
&lt;li&gt;Many community plugins available&lt;/li&gt;
&lt;li&gt;Compatibility issues are relatively rare&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Strapi v5
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Many plugins are &lt;strong&gt;not yet v5-compatible&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Some plugins install successfully but fail at runtime&lt;/li&gt;
&lt;li&gt;Plugin compatibility must be verified in advance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one of the biggest unknowns during upgrades.&lt;/p&gt;




&lt;h2&gt;
  
  
  Node.js and Runtime Expectations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;v4&lt;/th&gt;
&lt;th&gt;v5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Node.js versions&lt;/td&gt;
&lt;td&gt;14 / 16&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;18 / 20&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESM support&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Effectively required&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Optional&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Practically mandatory&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Strapi v5 assumes a modern Node.js and tooling environment by default.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Upgrades
&lt;/h2&gt;

&lt;p&gt;Strapi v5 is clearly designed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modern JavaScript / TypeScript stacks&lt;/li&gt;
&lt;li&gt;Explicit build pipelines&lt;/li&gt;
&lt;li&gt;Containerized and cloud-native deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, this also means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Upgrading from v4 to v5 is closer to a controlled migration than a simple upgrade.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Understanding these differences upfront is critical before touching any production code.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;This article focused on &lt;em&gt;what changed&lt;/em&gt; between Strapi v4 and v5.&lt;/p&gt;

&lt;p&gt;In the next article, we will cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Common upgrade pitfalls in real projects&lt;/li&gt;
&lt;li&gt;Admin UI build failures and environment variable traps&lt;/li&gt;
&lt;li&gt;CORS issues in frontend/API split architectures&lt;/li&gt;
&lt;li&gt;Docker and Kubernetes (AKS)–specific problems and solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re planning a v4 → v5 upgrade, those practical lessons can save you a lot of trial and error.&lt;/p&gt;




&lt;p&gt;This article focuses on practical differences and real-world implications.&lt;br&gt;&lt;br&gt;
For detailed API references and official migration guidance, please refer to the Strapi v5 documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.strapi.io/dev-docs/intro" rel="noopener noreferrer"&gt;https://docs.strapi.io/dev-docs/intro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>strapi</category>
      <category>strapiv5</category>
      <category>cms</category>
    </item>
    <item>
      <title>A Practical Windows Terminal Setup with Git Bash and Automatic Pane Layout</title>
      <dc:creator>Tuner9696</dc:creator>
      <pubDate>Sat, 20 Dec 2025 05:42:04 +0000</pubDate>
      <link>https://forem.com/tuner9696_len/a-practical-windows-terminal-setup-with-git-bash-and-automatic-pane-layout-3oii</link>
      <guid>https://forem.com/tuner9696_len/a-practical-windows-terminal-setup-with-git-bash-and-automatic-pane-layout-3oii</guid>
      <description>&lt;p&gt;When I start my workday, I prefer my development environment to be ready immediately 🙂&lt;br&gt;
Switching shells or manually arranging panes is a small but repeated cost.&lt;/p&gt;

&lt;p&gt;This article describes a simple and consistent setup using &lt;strong&gt;Windows Terminal and Git Bash&lt;/strong&gt;, configured to open &lt;strong&gt;five panes automatically&lt;/strong&gt; on startup.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I Use Git Bash as the Default Shell 🤔
&lt;/h2&gt;

&lt;p&gt;Windows Terminal supports multiple shells, including PowerShell and WSL.&lt;br&gt;
While these tools are powerful, I prefer Git Bash for most daily development tasks.&lt;/p&gt;

&lt;p&gt;My reasons are straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Familiar Linux-style commands&lt;/li&gt;
&lt;li&gt;Minimal configuration&lt;/li&gt;
&lt;li&gt;No context switching between environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For consistency, I decided to use &lt;strong&gt;Git Bash as the default shell&lt;/strong&gt; across all panes.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 1: Install Required Applications 🛠️
&lt;/h2&gt;

&lt;p&gt;First, install the necessary tools.&lt;/p&gt;
&lt;h3&gt;
  
  
  Windows Terminal
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;winget &lt;span class="nb"&gt;install &lt;/span&gt;Microsoft.WindowsTerminal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Git Bash (Git for Windows)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;winget &lt;span class="nb"&gt;install &lt;/span&gt;Git.Git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;After installing Git, restarting the terminal once helps avoid potential PATH-related issues 👍&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 2: Register Git Bash as a Windows Terminal Profile ⚙️
&lt;/h2&gt;

&lt;p&gt;Next, Git Bash is added as a custom profile.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Windows Terminal&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Ctrl + ,&lt;/code&gt; to open &lt;strong&gt;Settings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add a new profile&lt;/strong&gt; → &lt;strong&gt;Empty profile&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Configure the profile as follows:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: Git Bash
Command line:
C:\Program Files\Git\bin\bash.exe --login -i
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Startup&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Default profile&lt;/strong&gt; to &lt;code&gt;Git Bash&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Save the settings&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This ensures that Windows Terminal always launches Git Bash by default.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 3: Create a Shortcut for a Five-Pane Layout 🧩
&lt;/h2&gt;

&lt;p&gt;To reduce manual setup, I use a desktop shortcut that opens Windows Terminal with a predefined pane layout.&lt;/p&gt;

&lt;p&gt;This shortcut:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launches Windows Terminal&lt;/li&gt;
&lt;li&gt;Uses Git Bash in all panes&lt;/li&gt;
&lt;li&gt;Splits the window into five panes&lt;/li&gt;
&lt;li&gt;Starts in a specified directory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Replace &lt;code&gt;your-username&lt;/code&gt; with your Windows user name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wt &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Git Bash"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\U&lt;/span&gt;&lt;span class="s2"&gt;sers&lt;/span&gt;&lt;span class="se"&gt;\y&lt;/span&gt;&lt;span class="s2"&gt;our-username&lt;/span&gt;&lt;span class="se"&gt;\D&lt;/span&gt;&lt;span class="s2"&gt;esktop"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
split-pane &lt;span class="nt"&gt;-V&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Git Bash"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\U&lt;/span&gt;&lt;span class="s2"&gt;sers&lt;/span&gt;&lt;span class="se"&gt;\y&lt;/span&gt;&lt;span class="s2"&gt;our-username&lt;/span&gt;&lt;span class="se"&gt;\D&lt;/span&gt;&lt;span class="s2"&gt;esktop"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
move-focus Left &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
split-pane &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Git Bash"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\U&lt;/span&gt;&lt;span class="s2"&gt;sers&lt;/span&gt;&lt;span class="se"&gt;\y&lt;/span&gt;&lt;span class="s2"&gt;our-username&lt;/span&gt;&lt;span class="se"&gt;\D&lt;/span&gt;&lt;span class="s2"&gt;esktop"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
move-focus Right &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
split-pane &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Git Bash"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\U&lt;/span&gt;&lt;span class="s2"&gt;sers&lt;/span&gt;&lt;span class="se"&gt;\y&lt;/span&gt;&lt;span class="s2"&gt;our-username&lt;/span&gt;&lt;span class="se"&gt;\D&lt;/span&gt;&lt;span class="s2"&gt;esktop"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
split-pane &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Git Bash"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\U&lt;/span&gt;&lt;span class="s2"&gt;sers&lt;/span&gt;&lt;span class="se"&gt;\y&lt;/span&gt;&lt;span class="s2"&gt;our-username&lt;/span&gt;&lt;span class="se"&gt;\D&lt;/span&gt;&lt;span class="s2"&gt;esktop"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Name the shortcut something simple, such as &lt;code&gt;Dev Terminal&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Enable Automatic Launch on Windows Startup 🚀
&lt;/h2&gt;

&lt;p&gt;To ensure the environment is always ready, I register the shortcut in the Windows startup folder.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;shell:startup&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Paste the shortcut into the folder&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With this configuration, the terminal opens automatically when Windows starts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fx250clj0e5kutzgupgcv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fx250clj0e5kutzgupgcv.png" alt=" " width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>terminal</category>
      <category>gitbash</category>
    </item>
  </channel>
</rss>
