---
title: "Overview"
description: "Set up a fast, Linux-based web development environment on Windows 11 with WSL, zsh, Node.js, pnpm and VS Code."
canonical_url: "https://vinicunca.dev/windows-dev/guide"
---
# Overview

> Set up a fast, Linux-based web development environment on Windows 11 with WSL, zsh, Node.js, pnpm and VS Code.

This guide walks you through turning a fresh Windows machine into a web development workstation. Your code, tools and terminal run inside a real Linux distribution through the Windows Subsystem for Linux (WSL), while your editor, browser and everyday apps stay on Windows.

## Who it's for

- Web developers on Windows who want the same tooling as macOS and Linux teammates (POSIX shell, `curl | sh` installers, Linux-only npm packages).
- Anyone setting up a new machine, or cleaning up an old one, to work on Vinicunca projects or any Node.js, Vue or Nuxt codebase.

You need Windows 11 (or Windows 10 version 22H2) with virtualization enabled in the firmware, and an account with administrator rights.

> [!NOTE]
> 
> Some steps use features that only exist on newer builds: `sudo` for Windows needs Windows 11 version 24H2, and mirrored WSL networking needs Windows 11 version 22H2. Check yours with `Win` + `R`, then run `winver`.

## What you'll end up with

- **Windows Terminal** as the default terminal, opening straight into your Linux home directory.
- **WinGet** (and optionally Chocolatey) to install and update Windows apps from the command line.
- **WSL 2** with Ubuntu, systemd enabled and sensible memory and networking settings.
- **zsh** with Oh My Zsh (or Starship) as your login shell.
- **Git** that signs in through Git Credential Manager or the GitHub CLI, with no passwords stored in plain text.
- **Node.js** LTS managed by fnm, switching versions per project automatically.
- **pnpm** as your package manager.
- **VS Code** connected to WSL, linting and formatting with the Vinicunca ESLint config.

## Steps

Follow the pages in order. Each one assumes the previous ones are done.

[**1. Windows Terminal**](https://vinicunca.dev/windows-dev/guide/terminal)

Install or update Windows Terminal and make it the default.

[**2. Package managers**](https://vinicunca.dev/windows-dev/guide/package-managers)

Open an admin shell, then use WinGet (and optionally Chocolatey) to install apps.

[**3. WSL**](https://vinicunca.dev/windows-dev/guide/wsl)

Install Ubuntu on WSL 2 and configure memory, networking and systemd.

[**4. zsh**](https://vinicunca.dev/windows-dev/guide/zsh)

Replace bash with zsh, Oh My Zsh and a couple of essential plugins.

[**5. Git**](https://vinicunca.dev/windows-dev/guide/git)

Configure your identity, line endings and secure authentication.

[**6. Node.js**](https://vinicunca.dev/windows-dev/guide/nodejs)

Install fnm inside WSL and use it to install Node.js LTS.

[**7. pnpm**](https://vinicunca.dev/windows-dev/guide/pnpm)

Install pnpm with its standalone script.

[**8. VS Code**](https://vinicunca.dev/windows-dev/guide/vscode)

Connect VS Code to WSL and set up ESLint, Vue and UnoCSS.

## Time estimate

Plan for about **45 to 60 minutes** on a reasonable internet connection. Installing WSL requires one reboot, and most of the remaining time is spent waiting for downloads.

> [!TIP]
> See: /windows-dev/extras
> 
> Once you're set up, see the Extras for commit message conventions and fixes for common WSL problems.


## Sitemap

See the full [sitemap](https://vinicunca.dev/sitemap.md) for all pages.
