What vibe coding actually means
The term is a joke. The practice is not.
You describe what you want. Something writes it. You run it. It works, mostly. You describe the next thing.
That loop is vibe coding, and depending on who says the words it is either the future of software or the end of it. It is neither. It is a skill, and like any skill it has a beginner’s version that gets you into trouble and a practiced version that does not.
The phrase started as a shrug: give in to the vibes, forget the code exists, accept whatever the model says. That version is real and it works for a weekend prototype. It fails the moment the thing you built has to keep working next month, on a phone, for someone who is not you.
The practiced version keeps the speed and drops the shrug. You still describe instead of typing. You still let the agent read the codebase, run the tests, and propose the diff. But you know exactly which parts you have verified and which parts you are trusting, and you never confuse the two.
The spectrum
It helps to see the range you are moving along. At one end, autocomplete: the model finishes your line and you accept or reject each token. In the middle, chat: you paste code, ask a question, paste an answer back. At the far end, an agent: a model with tools that can read files, run commands, edit, test, and keep going for twenty minutes without you.
Claude Code and Codex live at the far end. That is what changes the job. When a model can act, the question is no longer “is this snippet right?” but “did the whole thing it just did leave the repo in a state I would sign my name to?”
Everything on this site is about answering that second question quickly.
What you are actually buying
An agent does not make you a better engineer. It makes you a faster one, and speed amplifies whatever you already are. Sloppy habits ship sloppy code three times as fast. Careful habits ship careful code three times as fast, and that is the entire game.
So the practice is mostly about habits that survive speed. Rules the agent reads before it starts. A way to check work that is quicker than reading every line. Git discipline that does not depend on remembering. A budget for attention, because the agent will happily burn all of yours.
Three ideas carry most of the weight, and the rest of this site unpacks them:
- Write things down where the agent reads them. Preferences in your head do not survive the next session.
- Every tool result is re-read on every turn. Context is the budget. Spend it on purpose.
- Green is not done. A passing test suite has shipped an unstyled, edge-to-edge, footer-over-nav page. Only a look at the render caught it.
What this site is not
It is not a prompt library. Prompts matter less than people think once the agent can read your repo; a clear file of project facts beats any clever phrasing. It is not a tool comparison; both major agents are used here, for different jobs, and the split is explained in Part 5. And it is not a case for or against the whole idea. The idea is here. The question is how to do it well.
Vibe coding done badly is trusting the model. Done well, it is trusting your process and letting the model go fast inside it.