Every craft has its workbench. A carpenter reaches for a saw, a clamp, a tape measure — each one doing a job that the others can’t. Frontend development is no different. Before you write a single line of code that ends up on a real website, there’s a small set of programs that quietly sit underneath everything you do.
If you’re brand new, the names can feel like alphabet soup: editor, terminal, Git, npm, dev server. The good news is that none of them are mysterious once you see what problem each one solves. This article is a guided tour, not a tutorial. The goal is simply for you to walk away knowing what each tool is for, so that when someone mentions “just push it to the repo” or “run the dev server”, you nod along instead of panicking.
Let’s open the toolbox.
The code editor: where you actually write
A code editor is the program where you type your code. That sounds obvious, but a real code editor is far more than a fancy text box. It understands the kind of file you’re working with.
The most popular choice today is Visual Studio Code (usually shortened to VS Code), a free editor made by Microsoft. There are others — Sublime Text, WebStorm, Neovim — but VS Code is where most beginners and a huge slice of professionals live, so it’s a safe place to start.
What does a code editor give you that a plain notepad doesn’t?
- Syntax highlighting — it paints keywords, strings, and numbers in different colors so your code is easier to read at a glance.
- Autocomplete — as you type, it suggests the rest of a word, a function name, or a property. This saves time and prevents typos.
- Error squiggles — it underlines mistakes (a missing bracket, a misspelled variable) before you even run the code.
- Extensions — small add-ons you install to teach the editor new tricks, like formatting your code automatically or working with a specific framework.
Think of the editor as your home base. You’ll spend more time here than anywhere else.
Pick one and stick with it for a while
It’s tempting to chase the “best” editor, but they all do the same core job. Choose VS Code, get comfortable with the basics, and only explore alternatives once you have a reason to. Switching tools constantly just slows down your learning.
The browser and its DevTools: where your work comes alive
For frontend work, the browser isn’t just where you check your email — it’s the stage your code performs on. Whatever you build, a real person eventually views it in Chrome, Firefox, Safari, or Edge. So the browser is both your preview window and your testing ground.
But the browser hides a second, more powerful identity. Press F12 (or right-click a page and choose “Inspect”) and a panel slides open: the Developer Tools, almost always called DevTools. This is the frontend developer’s X-ray machine.
With DevTools you can:
- Inspect the page structure — hover over any element and see the exact HTML and CSS behind it.
- Tweak styles live — change a color or spacing and watch the page update instantly, without touching your files. Perfect for experimenting.
- Read the console — see error messages and print-outs from your JavaScript, which is how you figure out why something broke.
- Watch the network — see every file and request the page loads, and how long each one takes.
You’ll open DevTools dozens of times a day. It’s where you debug, measure, and understand what’s really happening.
DevTools deserves its own deep dive
There’s a lot packed into that little panel. If you want a proper walkthrough of each tab and what it’s good for, read our dedicated guide on Browser Developer Tools.
The terminal: typing commands instead of clicking
The terminal is a plain window where you type commands and the computer carries them out. No buttons, no menus — just text. If you’ve only ever used a mouse, it can look intimidating, like a scene from a hacker movie. In reality it’s just a different, faster way to tell your computer what to do.
On Windows this might be PowerShell or the Command Prompt; on macOS and Linux it’s usually called Terminal. Inside your code editor, there’s almost always a built-in terminal too, so you never have to switch windows.
Why bother with text commands when graphical apps exist? Because in development, so many tools are run from the terminal. You start your project, install libraries, and run Git all by typing short commands. A single line like the one below installs everything a project needs:
npm install
You don’t need to memorize hundreds of commands. In practice you’ll use the same handful over and over, and you’ll copy-paste the rest from documentation. The terminal isn’t a test of memory — it’s just the doorway most tools knock on.
The terminal is mostly muscle memory
Beginners worry they need to learn the terminal inside out. You don’t. Learn how to move between folders, run a command, and read what it prints back. That alone covers the vast majority of daily work.
Version control with Git: a time machine for your code
Imagine writing a long document and saving copies named final, final-v2, final-REALLY-final. That chaos is exactly what version control prevents. Git is the tool that records the history of your project: every change, who made it, and when.
Git lets you do a few profoundly useful things:
- Save snapshots (called commits) at meaningful points, so you can always go back to a working version.
- Try risky ideas safely on a separate branch, then merge them in only if they work out.
- Collaborate without overwriting each other’s work, because Git knows how to combine changes from different people.
A repository (or repo) is simply the folder Git is tracking, history and all. You’ll often pair Git with an online home for your repo — a service like GitHub, GitLab, or Bitbucket — where teams share code and back it up off your machine.
Here’s the mental model:
your code ── commit ──▶ local history ── push ──▶ online repo (GitHub)
▲ │
└──────── pull ◀──────────┘
You commit changes locally, push them up to share, and pull down changes others have made. We’re staying conceptual here — Git has plenty of depth — but the core idea is just this: it’s a careful, searchable record of everything that’s ever happened to your code, and an undo button you can trust.
Learn Git early, not 'later'
Many beginners postpone Git because it feels like a separate subject. Don’t. Even on a solo project, having a real history saves you the day you break something and can’t remember what you changed. Start committing from your very first project.
Package managers: borrowing code you didn’t write
You rarely build a website entirely from scratch. The community has already written tools for dates, forms, animations, data fetching, and a thousand other needs. These reusable bundles of code are called packages (or libraries, or dependencies).
A package manager is the tool that fetches those packages, installs them into your project, and keeps track of their versions for you. In the frontend world the dominant one is npm (Node Package Manager), with popular alternatives like Yarn and pnpm that do the same job slightly differently.
When you install a package, your project records it in a file so anyone can recreate the exact same setup:
{
"dependencies": {
"react": "^18.3.0",
"date-fns": "^3.6.0"
}
}
That little list means a teammate can clone your project, run one install command, and get the identical set of libraries you used. No emailing zip files, no “it works on my machine”.
| Term | What it means |
|---|---|
| Package | A reusable bundle of code someone else wrote |
| Dependency | A package your project relies on to run |
| npm | The most common tool that installs and manages packages |
| Registry | The giant online library packages are downloaded from |
The takeaway: a package manager lets you stand on the shoulders of the whole community instead of reinventing every wheel.
The dev server: previewing as you build
When you change your code, you want to see the result immediately. A development server (almost always shortened to dev server) makes that happen. It runs your project on your own computer at a local address — something like http://localhost:3000 — that only you can see.
Two things make it special:
- It serves your work in the browser exactly as a website would, so you can interact with what you’re building.
- It auto-refreshes the moment you save a file. Many dev servers even update the page without a full reload, a feature called hot reloading, so you see changes in a blink.
You start one with a short command, then leave it running in the background while you work:
npm run dev
The dev server is strictly for development — it’s fast and convenient but not meant for the public. When your site is ready for the world, it gets built into optimized files and hosted elsewhere. While you’re creating, though, the dev server is the tight feedback loop that makes frontend work feel alive.
How the pieces fit together
None of these tools work in isolation. A normal afternoon of frontend development weaves all of them together, often without you thinking about it:
1. Open the EDITOR and write some code
2. Use the TERMINAL to run the DEV SERVER
3. View the result in the BROWSER, debug with DEVTOOLS
4. Pull in a library with the PACKAGE MANAGER when needed
5. Save your progress as a commit with GIT
6. Repeat
Each tool covers a gap the others leave open. The editor is where ideas become code. The terminal is the launchpad. The dev server and browser form your preview-and-inspect loop. The package manager brings in outside help. And Git keeps a safety net under all of it.
Recap
Frontend development looks complicated from the outside, but the daily toolkit comes down to a handful of tools, each with a single clear purpose:
- Code editor (VS Code) — where you write and read code, with help like highlighting and autocomplete.
- Browser + DevTools — where your work runs, and the X-ray panel where you inspect and debug it.
- Terminal — the text window from which you run almost every other tool.
- Git — version control that records your project’s history and lets you collaborate safely.
- Package manager (npm) — fetches and tracks the reusable libraries you build on top of.
- Dev server — runs your project locally and refreshes it instantly as you work.
You don’t need to master all of these at once. Install a code editor, open the browser’s DevTools, and get one project running on a dev server — that already covers most of your day. The rest will become second nature the more you build. Welcome to the workbench.