Setup & Foundation
Everything you need to go from zero to building real tools with Claude Code. This page gets you installed, authenticated, and thinking the right way about how to work with an AI coding partner.
Claude Code is an AI coding assistant made by Anthropic. It runs right in your terminal (that black window with the blinking cursor) and you talk to it in plain English. You describe what you want to build, and it writes the code, creates the files, runs commands, and debugs problems — all while you watch.
What you'll build in this tutorial series:
- Exercise 1 of 3: An Eisenhower Matrix — a personal task prioritizer you open in your browser
- Exercise 2 of 3: A client homework form that emails responses to you via Google
- Exercise 3 of 3 (The Big One): A middleware app that imports bills into QuickBooks Online via API
Each one is harder than the last. By the end, you'll be dangerous.
What you need to get started:
- A Windows computer (you're on one — good)
- Internet access
- A Gmail account (if you don't have one, make one now — if you can't make a Gmail account, the rest of this tutorial is going to be a bad time)
- A credit card for a Claude subscription (flat monthly fee — no surprises)
Anthropic is the company that makes Claude. You need a Claude account with a subscription plan so Claude Code knows who you are. This is a flat monthly fee — no metering, no token tracking, no surprises on your credit card.
Claude Code is built on Node.js, which is a tool that lets JavaScript (a programming language) run on your computer. You don't need to learn JavaScript — you just need Node.js installed so Claude Code has something to run on.
v20.x.x or higher.
Now that Node.js is installed, you can install Claude Code with a single command. This downloads it from the internet and sets it up on your machine.
Before you start building, you need a home base. Every project you build will live under one root folder: C:\dev. This keeps things organized and gives Claude Code a consistent place to work.
C:\dev. When you open a terminal and type cd C:\dev\MyProject, you're in your project. Clean and simple.
C:\dev already exists, skip this step. If Windows won't let you create folders on C:\, create dev in your user folder instead (like C:\Users\YourName\dev) and use that path everywhere in this tutorial.
C:\dev.This is the moment. You're about to open a terminal, navigate to your project folder, and start talking to an AI that writes code. Don't worry — the terminal is just a text box where you type commands. Nothing scary.
The first time you run Claude Code, it will open a browser window and ask you to log in to your Claude account — the same one you just created. Log in, authorize Claude Code, and the browser will confirm you're connected. Switch back to the terminal.
You should now see Claude's prompt — a cursor waiting for you to type. Try saying hello:
claude — Start a conversation (from your project folder)/help — See all available commands/clear — Clear the conversation context (do this often — it prevents crashes)Escape or Ctrl+C — Cancel what Claude is doingexit — End the conversation and go back to the terminalUp arrow — Recall your previous message
Take a minute to play around. Ask Claude some questions. When you're done exploring, type exit to leave. We'll come back to Claude in a moment with a plan.
Here's the most important concept in this entire tutorial:
claude and start a new conversation, it's like meeting a brilliant contractor who has total amnesia. It has no idea who you are, what you've built before, or how you like to work. CLAUDE.md fixes that.
A CLAUDE.md file sits in your project folder. When Claude Code starts up, it reads this file automatically — before you say a word. It's your instruction manual for Claude. It tells Claude who you are, how you work, and what rules to follow.
Without a CLAUDE.md, Claude is a generic assistant. With one, Claude is your assistant.
What goes in a CLAUDE.md?
Here's a template. Don't just copy it blindly — read through the annotations (the explanations in parentheses) and think about what matters to YOU. You'll create your own version in a moment.
What a mature CLAUDE.md looks like:
A mature CLAUDE.md has all of the above plus some extras that have evolved over months of daily use:
- A "Brown M&M" rule — a small test at the top of his file that forces Claude to prove it actually read the instructions. (Van Halen used to put "no brown M&Ms" in their concert riders to verify promoters read the whole contract. Same idea.) If Claude skips the test, you know it skipped the file.
- Naming conventions — rules about how to name variables and database fields so everything stays consistent
- "Archive, don't delete" — instead of deleting old files, move them to an archive folder. You never lose work.
- "Claude runs commands" — Claude executes terminal commands itself instead of telling you to do it. You shouldn't have to touch the terminal for routine tasks.
Other consultants might add rules like:
- "All client-facing documents use our company letterhead"
- "Use metric units, not imperial"
- "My clients speak Spanish — build bilingual interfaces"
- "I'm working on a Mac, not Windows"
The CLAUDE.md grows over time. Every time Claude does something you don't like, add a rule. Every time it does something great, add a rule to keep doing it. It's a living document.
Let's create yours now. Start Claude Code in your Sandbox folder and ask it to create one for you. Personalize the prompt below before sending it — replace the bracketed parts with your actual info:
/clear (this restarts the conversation so Claude re-reads the CLAUDE.md). Then ask Claude: "What do you know about me?" Claude should repeat back the details from your CLAUDE.md. If it does, the file is working.
CLAUDE.md tells Claude who YOU are. Now you need to tell Claude what you're BUILDING and what's HAPPENED so far. Both of those live in a single folder called context/ at the root of your project.
context/PROJECT.md— the project brief. What are you building, who is it for, what's the stack, what's done, what's next.context/JOURNAL.md— the running log. At the end of every session, you ask Claude to add a dated entry: what we did, what worked, what's next.
Why two files instead of one? PROJECT.md is the current state — short, kept up to date, rewritten as the project evolves. JOURNAL.md is the history — dated entries that pile up, newest first. One file would either get too long for Claude to read every session, or lose the history every time you updated the scope. Two files keep each one focused.
Here's a simple PROJECT.md. Don't create this one — we'll make real ones in the exercises.
And here's a JOURNAL.md after a few sessions:
How to maintain JOURNAL.md: at the end of every session, before you type exit, say this to Claude:
That's it. Claude appends a dated entry. Next session, Claude reads both files and picks up exactly where you left off.
context/ folder and renames MEMORY.md to JOURNAL.md — that's because Claude has its own built-in memory system in your user profile (covered on the harness page) with a file also called MEMORY.md, and the collision was confusing. Same idea, sharper boundary: project state lives in the project (context/); facts about you live in the harness.
Every project you build will have CLAUDE.md at the root and a context/ folder with PROJECT.md and JOURNAL.md. That's the foundation. You'll add other folders (source/, output/, reference/, archive/) as projects grow. Everything else is just typing.