What Is Vibe Coding?
Traditional coding vs. vibe coding, side by side. See how describing what you want replaces typing every line by hand.
Vibe coding is building software by describing what you want in natural language and letting an AI model generate and adjust the code, while you steer, review, and decide what ships. Toggle between the two workflows below to see what actually changes.
- 1Read the docs for the library you need
- 2Write boilerplate and imports by hand
- 3Type every line of the implementation
- 4Chase down syntax errors one at a time
- 5Run it, and hope it works
Where the term comes from
Former Tesla AI director Andrej Karpathy coined “vibe coding” in February 2025, describing a style of building software where you “fully give in to the vibes”: you describe what you want, accept AI suggestions, and iterate by prompting rather than typing every character yourself. The name stuck because it captures something real, the feel of coding changes, even though the underlying engineering discipline still matters just as much.
The definition drifted fast. Name that drift rather than pretending the word means one thing. Karpathy’s original post described barely reading the output at all. Within months the term had grown into a catch-all for any development where an AI model is doing a meaningful share of the writing, careful diff-reading and test-running very much included. That split matters because two people can both call themselves vibe coders while meaning opposite things by it: one hears “code without understanding it”, the other hears “code faster, understand it just as thoroughly”. This course means the second one, on every page that follows.
February 2025, by Andrej Karpathy, describing a specific way of working rather than a general term for AI-assisted coding.
That you could give in to the vibes and barely look at the code it produced.
As a catch-all for building software with an AI model in the loop, review and testing included.
Where it earns its keep, and where to slow down
Neither half of that split is more “real” vibe coding than the other. What actually varies, task to task, is how much the approach is worth and how carefully you need to check the result. Both questions have the same answer: it depends what breaks if the AI is confidently wrong.
Where it earns its keep
Prototypes you plan to throw away, one-off scripts, and scaffolding a new screen from a description. Iteration speed is the entire point here, and being wrong costs you a re-prompt, not a rewrite.
Also anywhere you are fluent enough to read the output and catch a mistake in seconds. There it is a multiplier on judgement you already have, not a replacement for it.
Where to slow down
Security-critical or payment-handling code, and anything with a performance budget the AI cannot measure for you.
Anything you could not explain to a reviewer line by line. If you cannot defend a change, you should not ship it, regardless of who typed it.
The part that does not change
It is tempting to treat a generated feature as the AI’s work, and therefore the AI’s fault if it breaks. That is not how responsibility works here, and no amount of tooling progress changes it. You reviewed it, or you did not. You tested it, or you did not. You shipped it, or you did not. Every one of those is your decision, whichever tool typed the characters.
Key takeaways
- Vibe coding replaces typing with describing, reviewing, and steering — the review is not optional.
- The term drifted from Karpathy's original 'barely look at the code' framing into a catch-all for any AI-assisted development.
- It earns its keep fastest on throwaway prototypes and is slowest to trust on anything security-critical or hard to verify.
- You are responsible for what ships, whichever tool typed the characters.
- If you cannot explain a change to a teammate without re-reading it, you have not reviewed it yet.
Quick check
Answer these to unlock the next chapter — 3 of 3 to pass. You can retake it anytime.
Answer every question to check.
Make a free account to read on
Every chapter is free — an account is how your progress, XP, and streak follow you from your laptop to your phone, and how you show up on the leaderboard. No payment, no trial.