What people mean when they say it
Andrej Karpathy coined the term in a February 2025 post. The concept: instead of writing code, you describe what you want in plain English, accept what the AI gives you, and iterate by describing problems rather than debugging them. You're not writing software - you're directing a model that writes software. The vibes are your spec.
Karpathy was making an observation about a real and interesting shift in how people interact with code. The term stuck. Then, as tends to happen, it got stretched to cover everything from "I used Copilot to autocomplete a function" to "I built an entire startup without understanding any of the codebase."
What it actually describes (charitably)
At its best, vibe coding is a legitimate productivity technique for specific contexts:
Prototyping and exploration: When you're trying to figure out if an idea is worth building, getting a rough version up in an hour via AI prompting is genuinely useful. The code is throwaway. Speed matters more than correctness.
Unfamiliar domains: If you need a bash script to wrangle some log files and you haven't written bash in years, using an AI to generate it and reviewing the output is reasonable. You're borrowing expertise rather than relearning a syntax.
Boilerplate: Setting up a new project, wiring together a data pipeline, writing CRUD endpoints - there's legitimate value in AI handling the parts of software development that are mechanical and well-understood.
What it doesn't describe (critically)
The problem is when the term gets used to justify not understanding the code you ship. Code that you can't read is a liability. An AI assistant can generate correct-looking code that has subtle security vulnerabilities, incorrect business logic, or architectural choices that will make the codebase unmaintainable in six months. If you accepted that code without review, you now own the consequences.
Vibe coding also doesn't scale to team environments. Code is communication - it's written for the next developer who reads it, not just for the machine that runs it. A codebase built by prompting an AI without consistent human judgment ends up with inconsistent patterns, duplicated logic, and no coherent mental model for the team to reason about.
The vibes don't survive the first time someone else has to fix a production bug in the code.
The actual shelf life of the term
"Vibe coding" will probably not survive as a technical term. In five years, the workflow will just be called "using an AI IDE" - as unremarkable as saying "I used an IDE" is today. The novelty is in the practice being new enough to need naming. Once AI-assisted development is the default mode, the name dissolves.
Ornamental verdict
Vibe coding is an ornamental term: it describes a real thing that people do, but the term itself carries no technical content. You can't architect a system around it, measure it, or make engineering decisions based on it. It's a cultural label for a workflow that's partially useful in narrow contexts and being wildly oversold as a paradigm shift. Take the useful parts (AI-assisted prototyping, boilerplate generation) and leave the philosophy.