Glossary
What is vibe coding?
Building software by prompting an agent and steering, instead of writing most of the code.
Updated 2026-09-09
Vibe coding is building software by describing what you want to an agent and steering the output, rather than writing most of the code yourself.
Andrej Karpathy named it in early 2025, and the original framing mattered: he was describing throwaway projects where you accept diffs you barely read because the stakes are zero. The term escaped that context immediately and now gets used for any agent heavy workflow, including ones where people very much are reading the code.
Where it genuinely works: prototypes, internal tools, scripts, one off migrations, and unfamiliar territory where seeing something run teaches you faster than reading docs. Where it gets expensive: anything long lived that nobody on the team understands. The code compiles, ships, and then breaks in a way no one can debug because no one has a mental model of it.
The thing that makes it work at all is a feedback signal. Types, tests, and a linter give the agent something to fix against, which is why the same tool feels magic in a typed and tested repo and chaotic in an untyped one. If you take one habit from it, take that: build the guardrails first, then let the agent run.
Where people get this wrong
- Accepting code you cannot review is fine for a weekend demo and reckless anywhere near auth, money, or user data.
- Speed hides debt. The bill arrives the first time something breaks in production at 2am.
- Without tests and types the agent has no signal, so it guesses, and you end up debugging its guesses.