On this page
Your first project
What you'll learn
- Start Claude Code in a real project directory
- Understand what CLAUDE.md is and why it matters
- Give Claude your first real task
- Review changes and commit safely
You've installed Claude Code. Time to use it on something real.
Pick a project
Start with an existing project you know well. A side project, a work project you have permission to experiment on, or even a throwaway repo. Don't pick something brand new — Claude Code is most useful when it can read and understand existing code.
cd ~/Projects/my-real-project
claude
You'll land in a prompt. Claude has already started reading your project structure in the background.
The CLAUDE.md file
Before you give Claude a task, add a CLAUDE.md file at the root of your project. This is how you give Claude persistent context about your codebase — conventions, architecture, commands, preferences.
Here's a minimal example:
# My Project
A Next.js 15 app for tracking book reading.
## Stack
- Next.js App Router, TypeScript strict
- Drizzle ORM + Postgres
- Tailwind + shadcn/ui
## Commands
- `npm run dev` — start dev server
- `npm run typecheck` — type check
- `npm test` — run tests
## Conventions
- Server Components by default, "use client" only when needed
- All forms use Server Actions, not API routes
- Drizzle schemas in src/db/schema/
Claude reads this on every session. The more specific you are, the better the results. Think of CLAUDE.md as onboarding documentation for a new engineer — except the engineer is very fast and doesn't forget.
Your first task
Start small. Pick something you'd normally do manually but it's boring:
- "Add JSDoc comments to every exported function in src/lib/"
- "Find all places where we still use the old useState pattern and migrate them to useOptimistic"
- "The CONTRIBUTING.md is out of date. Re-read the current codebase and rewrite it."
Type your prompt. Hit Enter. Watch what Claude does.
Understanding what you see
As Claude works, you'll see:
- Tool calls —
[Reading src/lib/utils.ts],[Editing src/lib/date.ts] - Reasoning — short summaries of what Claude is doing and why
- Diffs — proposed file changes, which you can approve or reject
- Command output — when Claude runs a shell command, you see the output inline
You stay in control. By default, Claude asks before edits and commands that touch the filesystem. You can loosen or tighten this in the session.
Review and commit
When Claude is done, don't skip review. Read the diffs. Run your tests. Check the code does what you actually wanted.
Then commit yourself — Claude Code can commit too, but when you're starting out, do it by hand. You want to stay close to the changes.
git diff
git add .
git commit -m "Add JSDoc comments to utility exports"
What you've learned
You can now:
- Install Claude Code
- Set up a project with CLAUDE.md
- Run an agent task
- Review and commit the output
That's the foundation. In the next lessons (coming soon), we'll go deeper: Skills and MCPs, subagents for parallel work, and production workflows.
Reflect
What's a small, low-risk task in a project you're working on that you could delegate to Claude Code today? Try it.