Zero-to-ready · Windows-focused setup

Set up the environment and learn how to prove it works.

This is intentionally more than an installer checklist. The goal is that you can diagnose PATH, permissions, processes, ports, runtime versions, and package-manager failures before framework code enters the picture.

Environment step

1. Understand what you are installing

You need an editor, shell, Git, a Node version line, Corepack/pnpm, browser DevTools, and later external services such as PostgreSQL/Supabase and Docker. Treat each as a separate executable/service you can verify.

PowerShellVerification
Get-Location
$PSVersionTable.PSVersion
Environment step

2. Install Git and verify command resolution

Use a normal user-level installation where appropriate. Open a fresh PowerShell after installation and prove which executable is being resolved before assuming setup succeeded.

PowerShellVerification
Get-Command git
git --version
git config --global user.name
git config --global user.email
Environment step

3. Install VS Code and learn the terminal boundary

VS Code is an editor, not the runtime. Its integrated terminal inherits environment variables from the editor process, so restart the editor when PATH changes are not visible.

PowerShellVerification
code --version
Environment step

4. Install the course Node line through a version manager

A version manager makes project runtimes reproducible. The repository/course may lock a specific Node line; use that lock instead of whatever global installer happens to be newest.

PowerShellVerification
Get-Command node
node --version
npm --version
Environment step

5. Enable Corepack and activate pnpm

Corepack lets the repository declare the package-manager version. Do not maintain unrelated global pnpm installations if they cause command-resolution confusion.

PowerShellVerification
corepack --version
corepack enable
pnpm --version
Environment step

6. Clone or extract the repository into a normal user-owned folder

Avoid protected system folders. Keep project paths simple enough that scripts/tools do not inherit permission problems from Program Files or system directories.

PowerShellVerification
git status
Get-Location
Environment step

7. Install dependencies reproducibly

The lockfile is part of the project contract. On the first install, pnpm creates pnpm-lock.yaml. Commit it. After that, use --frozen-lockfile in CI/verification so dependency resolution cannot drift silently.

PowerShellVerification
pnpm install
Environment step

8. Run the documentation site

Start the dev server, read the exact listening address, and verify the browser request. If the port is occupied, find the owning process rather than killing random Node processes.

PowerShellVerification
pnpm dev
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
Environment step

9. Run production verification before Vercel

Development mode is not proof that the project builds. Run type checking and the production build from a clean state before pushing.

PowerShellVerification
pnpm lint
pnpm build
Environment step

10. Keep secrets and environment-specific values out of Git

The documentation site itself needs no database secrets. When you build TaskFlow, use .env files excluded from Git and commit only safe examples documenting required variable names.

PowerShellVerification
git status
git diff -- .gitignore
Troubleshooting

Do not solve setup failures by randomly reinstalling everything.

pnpm is not recognized

Run Get-Command pnpm, check Corepack, open a fresh terminal, and identify whether another pnpm executable shadows the intended one.

EPERM / access denied

Check whether the project/tool is writing under a protected directory or another process is holding the file. Do not default to Administrator mode as the permanent fix.

Port 3000/4000 already in use

Find the PID owning the listening port, identify the process, then stop only the service you actually mean to stop.

Node version is wrong

Use Get-Command node and your version manager's current selection. PATH order can point to an older standalone installation.

Build differs from dev

Read the production build error first. Server/client boundaries, type errors, static generation, and environment values often surface only during build.

Ready means verified: a fresh ordinary PowerShell can resolve the intended Git/Node/Corepack/pnpm executables, the repository installs from its lockfile, dev starts, and production build/type checks pass.