Guides · September 2026
Vibe coding vs traditional coding
The term is eighteen months old and already in two dictionaries. Here is what it describes, where it works, where it fails, and what the other side of the versus has quietly become.
Where the term came from.
On 2 February 2025 Andrej Karpathy posted that there was “a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.” The rest of the post is the definition that matters: “I ‘Accept All’ always, I don’t read the diffs anymore,” and it was “not too bad for throwaway weekend projects.” He later called it a shower-thoughts throwaway. It became a Merriam-Webster “slang & trending” entry within five weeks and Collins’ Word of the Year that November, defined as “the use of artificial intelligence prompted by natural language to write computer code.”
The dictionary definition is too wide, because by it every professional using a coding agent is vibe coding. The useful line is Simon Willison’s: “If an LLM wrote every line of your code but you’ve reviewed, tested and understood it all, that’s not vibe coding in my book — that’s using an LLM as a typing assistant.” Vibe coding is defined by what you don’t do. You don’t read it. You describe, run, paste the error back, and keep going while it mostly works.
What traditional coding means now.
The other side of the versus moved while nobody was looking. Traditional coding used to mean a person typing every line and holding the whole system in their head, with autocompletion and a search engine as the tools. That version is already gone for most working developers. Agents write most of the lines; the person’s job is the parts around them — specifying what should exist, deciding the architecture, writing the tests the agent has to pass, reviewing what comes back, supervising several agents at once.
Willison calls the disciplined form vibe engineering and lists what it leans on: automated tests, planning, documentation, version control, a review culture, manual QA — “almost all of these are characteristics of senior software engineers already.” Karpathy, on the term’s first anniversary, moved on to agentic engineering: you aren’t writing the code directly most of the time, you’re orchestrating the agents that do and acting as oversight. And the caution is real. METR’s randomised trial of sixteen experienced open-source developers on their own repositories found early-2025 tools made them 19% slower while they believed they were 20% faster. Traditional coding didn’t die. It became the review layer.
Where vibe coding works.
The honest list is short and the items on it are genuinely good.
Prototypes and throwaways
Karpathy’s own case. When the point is to see whether an idea holds — a screen, a flow, a demo for Friday — the code is scaffolding, and nobody reads scaffolding.
Personal tools
The script that renames the photos, the dashboard with one user, the bot that watches one feed. If it breaks you are the only casualty, and you fix it the way you built it.
One-off glue
Converting a CSV, calling an API once, migrating a folder. Work that runs a handful of times and is never maintained has no maintenance cost to hide.
Learning by watching
People who can read code but never wrote much get a working example of every idiom they ask for — a real on-ramp, as long as the reading happens.
Where it fails.
It fails on security first, because the model doesn’t know which of two working versions is the safe one. Veracode’s 2025 report ran 80 coding tasks across more than a hundred models and found that where a secure and an insecure way to write the code both existed, the models chose the insecure one 45% of the time — and newer, larger models did no better. Nobody reading the diffs means nobody catching the 45%.
It fails on maintainability next; Willison’s warning is the plain version: “Vibe coding your way to a production codebase is clearly risky.” Most software work is changing something that already exists, and the tenth change to a codebase nobody understands is where the speed goes. And it fails hardest at the person who can’t read the output — not from carelessness, but because an agent will sometimes report success it didn’t achieve and there is no one to notice. In July 2025 a Replit agent deleted a production database during a declared code freeze, then told its user a rollback was impossible. It wasn’t. The fault line isn’t AI versus human. It’s whether anyone in the loop can tell when it’s wrong.
The tradeoffs, side by side.
| Vibe coding | Traditional coding, 2026 edition | |
|---|---|---|
| Who reads the code | Nobody, by definition | A person, before it merges |
| Time to first working version | Minutes | Hours — the plan and the tests come first |
| Time to the tenth change | Grows with every change nobody understood | Roughly constant |
| Security | Whatever the model picked | Whatever review, tests, and a threat model caught |
| When it breaks | Paste the error back and hope | Read the stack trace; you know where it lives |
| Best at | Prototypes, personal tools, one-off glue | Anything other people depend on |
| Fails at | Production, data, other people’s money | Nothing structural — it’s just slower |
| Skill it rewards | Describing what you want, clearly | Judgement: architecture, review, supervision |
| The tools | Chat-first builders and agents on Accept All | The same agents, plus a person who says no |
Both columns use the same models. The difference is a reader.
The part both sides share: the agent has to run somewhere.
Whichever column you sit in, the agent lives on a machine, and the good ones live on a real computer with your project on it — a Mac at home, a box under the desk — not in a chat tab. The vibe coder’s actual workflow is to start the agent there and reach it from wherever they are, mostly a phone, to answer the question it stopped on. The honest routes are the vendors’ own web and mobile apps and the SSH-app-plus-tunnel setup; SSH from an iPhone teaches the second.
spawnd is that with no setup ceremony. One command on the machine that runs your agent; after that, any browser — your phone, installed to the home screen as a web app — is a window onto it. Nothing to open on your router, no VPN, no app to install. The session keeps running when you close the tab or the laptop lid, scrollback and all, and your phone gets a notification when the agent is waiting on a yes. Claude Code, Codex, OpenCode, and Aider are built in and sign in on the machine exactly as they always do — your subscription works as the vendor’s own tool uses it, nothing added on top. Claude Code, remote covers the routes Anthropic ships and where they stop, and the agents roundup is where to start if you haven’t picked one.
Start
One box, one command, every device a window.
curl -fsSL https://spawnd.dev/install.sh | shQuestions
- Is vibe coding bad?
- Not for the things it is for — prototypes, personal tools, one-off scripts. It becomes a problem the moment other people, their data, or their money depend on code nobody read.
- Do I need to know how to code to vibe code?
- No, and that is both the point and the risk. You can ship a working thing without reading a line; you just can’t tell when the agent is wrong, which is fine for a weekend project and not fine for a production one.
- Does spawnd make vibe coding safer?
- It doesn’t change what the agent writes. It changes where you can be while it works: the agent runs on your own machine, and your phone becomes the place you read what it did and say yes or no. The reading is still yours to do.