Nobody gets it perfect on the first try — and that's the point.
The best vibe coders aren't the ones who write the perfect description up front. They're the ones who know how to guide a conversation toward what they want. They look at the result, figure out what needs to change, and describe that next step clearly.
This lesson teaches you that skill. By the end, you'll stop trying to describe everything at once and start having productive, focused back-and-forth conversations with Claude.
Why Iteration Beats Perfection
When you're new to vibe coding, it's tempting to write a massive first message that tries to specify every detail — the font, the colors, the layout, the spacing, the animations, all at once. This feels like the responsible approach, but it's actually slower and less effective than describing the big picture and then refining.
Think of it like working with a talented interior designer. You wouldn't hand them a 40-page specification document before they've even seen the room. Instead, you'd say: "I want something warm and modern, with lots of natural light." They'd put together a first pass. Then you'd walk through it together and say "I love the couch, but the rug feels too busy" or "Can we try a darker wood for the shelves?"
Each round is focused on one thing. That focus is what makes it work. You're not trying to hold the entire design in your head — you're reacting to what's in front of you and steering it step by step.
Vague vs. Specific
The single biggest factor in getting useful results from Claude is specificity. Vague requests force Claude to guess what you mean. Specific requests give Claude a clear target. Here's the difference in action:
You don't need to be technical. You just need to be concrete. Here are more examples:
| Instead of... | Try... |
|---|---|
| "Make it prettier" | "Add rounded corners to the cards and a subtle shadow" |
| "Fix the layout" | "Put the image on the left and the text on the right, side by side" |
| "Use better colors" | "Switch to a warm palette — cream background, terracotta accents, dark brown text" |
| "Make it mobile-friendly" | "When the screen is narrow, stack the two columns vertically" |
| "This doesn't look right" | "The heading is too close to the paragraph below it — add more space between them" |
Notice the pattern: every good request names what should change and how it should change. You don't need to know CSS or HTML — you just need to describe the visual result you're after.
A Real Iteration Session
Let's walk through what a real multi-step conversation looks like. We'll start with a portfolio page and improve it over five turns. Watch how each step builds on the last.
Start with the big picture. Describe the overall page and its sections. Don't worry about styling details yet.
Fix the structure. After looking at the result, the sidebar navigation feels heavy. A horizontal bar would be cleaner.
Add polish. The layout is right, but the project cards feel static. Time to add some life.
Add a new feature. The page is looking good. Now add something that wasn't in the original plan.
Fine-tune the details. The feature works, but the colors need adjustment. Be specific about what's wrong.
Five turns. Each one took a few seconds to write. And the result is a polished, feature-rich portfolio that would have been incredibly hard to describe in a single message.
When something looks wrong but you can't articulate why, try describing what you do want instead. "The spacing feels cramped — add more breathing room between sections" is far more useful than "this doesn't look right." Focus on the outcome, not the problem.
Saving Your Progress with Git
As you iterate, you'll want to save snapshots of your work. That way, if you make a change you don't like, you can go back to a previous version. This is what git does — it's like a save button for your entire project folder.
You don't need to master git right now. These three commands are all you need to start:
After each round of meaningful changes, run git add . and git commit -m "description of what changed" again. Each commit is a checkpoint you can return to. Think of it like saving your game before a boss fight — if things go sideways, you have a safe point to return to.
That's it. Two commands per save. You'll learn more about git later in the course, but this is enough to protect your work right now.
Take the bio page you built in Lesson 2 and iterate on it. Open Claude Code and ask it to:
- Change the color scheme to something completely different
- Add a new section (like a list of hobbies, a favorite quote, or a skills grid)
- Improve the layout by rearranging where sections appear on the page
Practice being specific about what you want changed. After each change, commit your progress with git.
Check Your Understanding
1. Which request will get better results?
2. The result doesn't look right. What's the best first move?
3. What does git commit do?
4. What's the best approach to building something complex?
Key Takeaways
- Vibe coding is iterative. Don't try to get everything right in one message — describe the big picture, then refine.
- Specific requests get specific results. Name what should change and how it should look.
- Each conversation turn should focus on one or two changes. Smaller steps lead to better outcomes.
-
Use
git init,git add ., andgit commit -m "message"to save checkpoints of your project as you go. - When something feels off, describe what you want rather than what's wrong.