Setting Up Your First Development Environment

Kent C. Dodds
AuthorKent C. Dodds

So you've decided to learn TypeScript. That is a great decision. But before you write a single line of code, you need a working development environment. This guide walks you through everything, step by step.

If you already have some of these tools installed, feel free to skip ahead. There is a final checklist at the bottom to confirm everything is in order.

One more thing before we start: if you run into any errors that this guide does not cover, an AI chat like ChatGPT does a pretty good job of helping debug setup issues. Paste the error message and describe what you were doing. It can often point you straight to the fix.


Table of Contents

  1. What you are about to install
  2. Opening a terminal
  3. Git
  4. GitHub
  5. Node.js and Volta
  6. Cursor
  7. epicshop
  8. Troubleshooting
  9. Final readiness checklist

What you are about to install

Here is the full picture before we get into individual steps:

  • Git — version control. You need this to download the workshops.
  • A GitHub account — where the workshop code lives. You need an account to interact with it.
  • Node.js (via Volta) — the runtime that executes your TypeScript code.
  • Volta — a tool that manages your Node.js version. This keeps things clean and predictable.
  • Cursor — a code editor. This is where you will write your code.
  • The cursor shell command — lets the workshop app open files directly in Cursor.
  • epicshop — the CLI that downloads and runs each workshop.

That is it. Let's go.


Opening a terminal

Almost everything in this guide happens inside a terminal. A terminal is a text-based interface where you type commands and your computer executes them. It looks intimidating at first, but don't worry, this guide will help you through it.

macOS

Your Mac comes with a terminal already installed. Here is how to open it:

  1. Press Command (⌘) + Space to open Spotlight.
  2. Type Terminal and press Enter.

A window opens with a blinking cursor. That is your terminal.

Windows

Windows has multiple terminal options. I recommend Windows Terminal, which is free and modern.

  1. Open the Microsoft Store (search for it in the Start menu).
  2. Search for Windows Terminal and click Get.
  3. Once installed, open it from the Start menu.

Once it is open, you will be in PowerShell by default. That is exactly what you need.

Linux

Most Linux distributions include a terminal emulator. Common ways to open it:

  • Ubuntu/GNOME: Press Ctrl + Alt + T
  • KDE: Search for Konsole in the application launcher
  • Other: Look in your applications menu for "Terminal" or "Konsole"

Basic terminal commands you need to know

You only need a handful of commands to get through this guide.

CommandWhat it does
pwdPrint working directory. Shows you where you are.
ls (macOS/Linux) / dir (Windows)List files and folders in the current location.
cd folder-nameChange directory. Move into a folder.
cd ..Go up one level.
cd ~Go to your home directory (macOS/Linux).

One important concept: when you type a command and press Enter, that command runs in the current directory. Most of the commands in this guide do not require you to be in a specific place, but some do. I will tell you when it matters.


Git

Git is version control software. It tracks changes to code over time. It is also what the epicshop CLI uses to download and manage the workshops. You need it.

Check if Git is already installed

Open your terminal and type:


git --version

If you see something like git version 2.43.0, you have Git. If the version number is 2.18 or higher, you are good. Skip to Configure Git.

If you see command not found or 'git' is not recognized, you need to install it.

Install Git

macOS

Run this command in your terminal:


xcode-select --install

A dialog will appear asking you to install the command line developer tools. Click Install. This installs Git along with other developer tools. It takes a few minutes.

After it finishes, run git --version to confirm.

Windows

Go to git-scm.com/download/win and download the installer.

Run the installer. The default options are fine, but pay attention to this one:

  • "Adjusting your PATH environment" — select "Git from the command line and also from 3rd-party software". This makes git available in PowerShell and Windows Terminal.

After installation, close and reopen your terminal, then run git --version to confirm.

Linux

Ubuntu/Debian:


sudo apt update && sudo apt install git

Fedora:


sudo dnf install git

Arch:


sudo pacman -S git

After installation, run git --version to confirm.

Configure Git

Once Git is installed, tell it who you are. This information gets attached to any changes you make. Run these two commands, substituting your own name and email:


git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Use the same email you will use for your GitHub account (covered next). That connection matters later.


GitHub

GitHub is the platform where the workshop repositories live. You need a free account to interact with them.

Create a GitHub account

  1. Go to github.com.
  2. Click Sign up.
  3. Enter your email address and follow the prompts to create a username and password.
  4. Verify your email address when GitHub sends you a confirmation email.

That is it. Keep your username and password somewhere safe.

Use the same email you set in Git. When your email matches between Git and GitHub, your commits show up linked to your account correctly. It is not critical for the workshops, but it is a good habit.


Node.js and Volta

Node.js is the runtime that executes your TypeScript code. Volta is a tool that installs and manages Node.js versions.

Why Volta instead of installing Node directly? Because Node versions matter. Different projects need different versions. Volta makes it painless to switch between them and ensures the right version is always active.

Check if Node.js is already installed

Run this in your terminal:


node --version

If you see a version number like v24.0.0 and it is v24 or higher, you are set. You can skip ahead to Install Cursor.

If you see a version lower than v24, or if you see command not found, keep reading.

Why v24? The workshops in this series require Node.js v24 or greater. Installing v24 covers all of them cleanly.

Install Volta

macOS and Linux

Run this command in your terminal:


curl https://get.volta.sh | bash

After the script finishes, it will tell you to restart your terminal (or source your shell configuration file). Do that now. Close your terminal window and open a new one.

Confirm Volta is working:


volta --version

You should see a version number like 2.0.2.

Windows

Go to volta.sh and click Download Windows Installer. Download and run volta-setup.exe.

After installation, close and reopen Windows Terminal, then confirm:


volta --version

You should see a version number.

Install Node.js via Volta

Now tell Volta to install Node.js v24:


volta install node@24

Volta downloads Node.js, installs it, and sets it as your default. This takes a minute or two depending on your connection.

Verify your Node.js installation

Run both of these:


node --version
npm --version

You should see something like:


v24.0.0
10.9.2

The Node version should start with v24. The npm version should be 10 or higher. If both look right, you are done with this step.


Cursor

Cursor is a code editor built on top of VS Code with AI capabilities built in. It is what I recommend for this workshop series, especially if you do not already have an editor you love.

If you already have an editor you prefer, you can skip this section, but you will still need to install the equivalent shell command for your editor if you haven't already (see below). If you are not sure how to do that, ask an AI chat to walk you through it for your specific editor.

Sign up and download Cursor

  1. Go to cursor.com.
  2. Click Download and choose the installer for your operating system.
  3. Run the installer.

macOS: Open the downloaded .dmg file, drag Cursor to your Applications folder, and then open Cursor from Applications.

Windows: Run the .exe installer and follow the prompts. Cursor will open automatically when installation is complete.

Linux: Download the .AppImage file. Make it executable and run it:


chmod +x cursor-*.AppImage
./cursor-*.AppImage

Some Linux distributions also support .deb or .rpm packages, which you can install via your package manager.

  1. When Cursor opens for the first time, it will ask you to sign in or create an account. Follow the prompts to create a free account (you can sign in with your GitHub account).

Install the Cursor shell command

The workshop app has a feature that opens exercise files directly in your editor with one click. For that to work, the cursor command must be available in your terminal.

Here is how to install it:

  1. Open Cursor.
  2. Press Command (⌘) + Shift + P on macOS, or Ctrl + Shift + P on Windows/Linux. This opens the Command Palette.
  3. Type shell command and look for "Shell Command: Install 'cursor' command in PATH".
  4. Click it.

Cursor will install the shell command and show a confirmation message.

Now open a new terminal window and verify it worked:


cursor --version

You should see a version number. If you do, the cursor command is available and the workshop app will be able to open files in Cursor automatically. You'll learn how to do this during the Epic Workshop App tutorial later.


epicshop

epicshop is the CLI that manages the Epic Workshop experience. It downloads workshops, sets up the workshop app, and gives you commands to navigate exercises, track progress, and compare your work to solutions. You'll run it with a special command called npx, which is installed automatically when you install Node.js.

Initialize epicshop

From your terminal, run this command:


npx --yes epicshop@latest init

This will ask you to configure the location of your workshops and other settings. It will also invite you to login to your EpicWeb/EpicReact/EpicAI account (which you should do for each one you already have an account for). It will then invite you to install the workshops you'd like.

This will automatically install the epicshop-tutorial workshop for you as well. I strongly recommend you go through the tutorial before starting any of the other other workshops.

You can later add more workshops to your account by running npx epicshop@latest add <workshop-name> for each workshop you'd like to add. Each workshop has instructions on how to install it on their own repository page.

The epicshop add command clones the workshop repository and installs its dependencies. This takes a couple of minutes per workshop. Start with Workshop 1 and add others as you progress.

Where do workshops get saved? By default, epicshop stores workshops in ~/epicweb-workshops on your home directory. You can change this with npx epicshop config --repos-dir /your/preferred/path.

Start up the tutorial

Make sure you have the Epic Workshop App Tutorial workshop installed with:


npx --yes epicshop@latest add epicshop-tutorial

Then you can open the workshop in your editor using:


npx --yes epicshop@latest open epicshop-tutorial

Most editors (like Cursor), have an integrated terminal that you can use to run commands in the workshop directory. Open the terminal by pressing Ctrl/Cmd + Shift + P and typing Terminal: Open in Integrated Terminal.

In that terminal, start the workshop app by running:


npm start

This starts a local web server for the workshop. It also outputs some help information. There are some hotkeys you can press (like o to opening the workshop app in your browser). The workshop app is where you read exercise instructions, run tests, and watch the video explanations.

By pressing o in the terminal when the workshop app is running, it should open your web browser to http://localhost:5639 (or you can open that URL manually in your browser).

From here, you can follow the instructions in the tutorial to learn how to use the workshop app.


Troubleshooting

Command not found errors

If you type git, node, npm, or cursor and see command not found (macOS/Linux) or 'X' is not recognized as an internal or external command (Windows), the tool is either not installed or not on your PATH.

PATH is the list of directories your terminal searches when you type a command name. If a tool is installed but not on PATH, your terminal cannot find it even though it exists on your computer.

macOS/Linux:

Your PATH is configured in a file like ~/.zshrc (macOS default), ~/.bashrc, or ~/.bash_profile. When an installer says "add to PATH," it usually edits one of these files automatically. If it does not, you may need to add an export line manually.

For example, if Volta did not add itself automatically, add this to your ~/.zshrc:


export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

Then reload your shell:


source ~/.zshrc

For more detailed guidance on PATH: Stack Overflow: How to permanently set PATH on macOS/Linux

Windows:

PATH is managed through System Properties. Search online for "how to add to PATH Windows" for a step-by-step visual guide.

After any PATH change, close and reopen your terminal before testing.

Wrong Node version

If node --version shows a version lower than v24, and you installed Volta, try reinstalling it using the instructions in the Install Volta section. Then run volta install node@24 again.

Windows-specific issues

PowerShell execution policy: If you see errors about scripts being blocked, this is a Windows security setting that prevents some scripts from running. Search for "PowerShell execution policy RemoteSigned" for instructions specific to your Windows version, or paste the error into an AI chat for a quick fix.

npm cache errors: If you see npm ECOMPROMISED or similar cache errors, clear the cache:


npm cache clean --force


Final readiness checklist

Run through this before starting your first workshop. Each command should produce a version number with no errors.


git --version

Expected: git version 2.18.0 or higher


node --version

Expected: v24.0.0 or higher


npm --version

Expected: 8.0.0 or higher


cursor --version

Expected: any version number (confirms the shell command is installed)

If all four checks pass, you are ready. Get started by adding the workshop you'd like to work with:


npx --yes epicshop@latest add

Enjoy!


Have questions or run into something not covered here? Send team@epicweb.dev an email and we'll get back to you!

-Kent

Share this article

Kent C. Dodds
Written by Kent C. Dodds

Kent C. Dodds is a world renowned speaker, teacher, and trainer and he's actively involved in the open source community as a maintainer and contributor of hundreds of popular npm packages. He is the creator of EpicReact.Dev and TestingJavaScript.com. He's an instructor on egghead.io and Frontend Masters. He's also a Google Developer Expert. Kent is happily married and the father of four kids. He likes his family, code, JavaScript, and Remix.

Join 40,000+ developers in the Epic Web community

Get the latest tutorials, articles, and announcements delivered to your inbox.

I respect your privacy. Unsubscribe at any time.