Project exercises are where you take what you've learned in skill-building sections and apply it to a real project. Real projects don't follow a clean linear path. They zigzag as you try different approaches and iterate.
To make this more realistic, I've given you an entire commit history showing me building a project from scratch. Each exercise is built around a single commit in this history.
Each exercise page contains:
pnpm reset and pnpm cherry pick) to help you work through itYou can tackle these exercises in two fundamentally different ways, depending on your learning style.
The pnpm cherry pick command works like git cherry-pick. It applies a specific commit on top of your current work.
pnpm cherry pick 2.2.03
Successfully cherry-picked Lesson 2.2.3
When to use this:
The beauty of cherry picking is that you keep all your previous work while pulling in new code. If you've made conflicting changes, you might get merge conflicts, but you can resolve those (or even use AI to help) and continue forward.
The pnpm reset command works like git reset—it resets your entire repository to a specific commit's state.
pnpm reset
When to use this:
This is perfect if you prefer to start each exercise fresh without worrying about previous work conflicting.
However, reset is destructive—any local changes you've made will be completely lost. So make sure you've committed your changes before resetting. The CLI will also give you the option to create a new branch before resetting.
This way, if you ever want to go back to your previous work, it's still there on your old branch.
When you reset to an exercise, you'll see two choices at the top of the commands section:
| Option | Result |
|---|---|
| Start the exercise | Resets to the commit before the target, so you can code it yourself |
| See the final code | Resets to the target commit itself, showing you the complete solution |
Choose "start the exercise" if you want to hand-code and learn. Choose "see the final code" if you just want to see what the result should look like.
Here's how I suggest you work through these exercises:
Read the recommendation at the top of each exercise to see whether I suggest cherry picking or hand-coding
For hand-coded exercises:
For cherry-pick exercises:
pnpm cherry pick commandIf you get lost or want a reset:
pnpm reset anytime to return to a known stateThis workflow gives you the best of both worlds. You can hand-code the stuff that matters most while skipping the tedious, repetitive parts. You're free to diverge completely from my implementation and build things your own way, yet you can still pull in reference material whenever you need it.
You can move at your own pace—blazing through exercises with cherry picks when you're confident, or slowing down to hand-code everything when you're learning something new. The choice is yours.