What if you could describe an app in plain English and just... watch it appear?
That's the promise of vibe coding — a term coined by AI researcher Andrej Karpathy for a style of building software where you tell an AI what you want, accept the code it writes, and keep the conversation going until the thing works. You barely look at the code. You go with the vibes.
It sounds irresponsible. Sometimes it is! But it's also genuinely useful, and knowing when to trust it is a real skill. Let's build that skill right now.
Where vibe coding shines
- Prototypes and experiments. Want to see if an idea has legs? Vibe out a rough version in an afternoon. If the idea is bad, you learned that cheaply. If it's good, you can rebuild it properly later.
- Personal tools. A script that renames your photo files, a little page that tracks your reading list, a one-off data cleanup. If the only user is you and the stakes are low, vibes are plenty.
- Learning by remixing. Ask the AI for a small working game or app, then poke at it. Change a number, break something, ask why it broke. Tinkering with real, running code is one of the oldest and best ways to learn.
Notice the pattern? Vibe coding shines when the cost of being wrong is small and the reward for being fast is big.
Where it bites
- Production code. Anything real users depend on needs review, tests, and someone who understands it. "It seemed to work" is not a maintenance plan.
- Security-sensitive anything. Login systems, payments, personal data. AI-generated code can look polished while leaking secrets or skipping input validation. If you can't audit it, don't ship it — our secure coding basics post shows what can go wrong.
- Anything you can't read. This is the honest dividing line. If the generated code is beyond your ability to review, you're not building software — you're crossing your fingers.
Tip: Ask yourself one question before vibing: "What happens if this code is subtly wrong?" If the answer is "I re-run it" — vibe away. If the answer involves other people's data, money, or trust — slow down.
A responsible vibe-coding checklist
- Keep the blast radius small. Run experiments in a fresh folder or throwaway project, never inside something important.
- Use version control. Commit before each AI change so you can always rewind a bad vibe.
- Test the happy path yourself. Actually click the buttons. Actually run the script on real input.
- Never paste in secrets. API keys and passwords don't belong in prompts or generated code.
- Skim even when you don't study. A thirty-second read catches shocking things: hardcoded values, deleted files, calls to services you never asked for.
- Know your exit. If the prototype becomes real, plan to rewrite or review it line by line before anyone depends on it.
Vibing vs. engineering
The point isn't that one is good and the other is bad. They're different modes for different jobs:
| Vibe coding | Engineering | |
|---|---|---|
| Goal | Something that works, fast | Something that keeps working |
| Code review | Optional skim | Every line, by a human |
| Tests | "I clicked around" | Written and repeatable |
| Who it's for | You, today | Users and teammates, for years |
| When it's wrong | Mild annoyance | Real consequences |
Note: The best developers move between these modes on purpose. They vibe to explore and engineer to ship — and they always know which mode they're in.
So go build something silly this weekend! Describe it, generate it, play with it. Vibe coding is a joyful way to make things — just keep your eyes open when the stakes go up. For the bigger picture of working with AI tools, read what is AI-assisted coding?, and to keep your creations safe, visit secure coding basics for beginners.