What is vibe coding?
Vibe coding is the practice of building software by collaborating with AI — describing intent in natural language and iterating on generated code. Here is what it actually means, where it came from, and how it works in practice.
Vibe coding is the practice of building software primarily by collaborating with an AI model — describing what you want in natural language, letting the model generate the code, and iterating on the result. Instead of typing every line by hand, the developer operates closer to a director: shaping intent, reviewing output, and steering the AI toward a working system.
The term was coined by Andrej Karpathy, the former Tesla AI director and OpenAI co-founder, in a February 2025 post on X. He described a mode of working where he would "fully give in to the vibes, embrace exponentials, and forget that the code even exists." The phrase stuck because it named something a lot of people were quietly already doing.
The core idea
Traditional programming is specification-first: you write the exact instructions, the machine executes them. Vibe coding is intent-first: you describe the outcome, the model proposes the instructions, and you verify that the outcome is correct. The craft shifts from syntax to specification — from "how do I write this loop" to "what am I actually trying to build, and how do I know when it works."
Three things make this possible in 2026 that were not possible three years ago:
- Long-context models that can hold an entire codebase in their attention window.
- Tool use and agentic loops, so the model can run commands, read files, and test its own output.
- Purpose-built environments — Cursor, v0, Claude Code, Windsurf — that wire the model directly into the edit-run-test loop.
The vibe coding loop
In practice, the loop looks like this:
- Describe intent. "Add a dark mode toggle that persists across sessions."
- Review the diff. The model proposes changes across one or more files.
- Run it. Either the model runs it via an agent, or you do.
- Feed back. If something is wrong, describe what is wrong — in plain English — and iterate.
The output is still code. You still own it, commit it, deploy it. But the unit of work has moved up a level. You are no longer deciding whether to use Array.map or a for loop. You are deciding whether the feature is the right feature.
What vibe coding is not
A few misconceptions worth clearing up:
- It is not "no-code." The output is real source code. You read it, version it, and can modify it by hand when needed.
- It is not autopilot. The best vibe coders are hands-on reviewers. Models still hallucinate APIs, misread context, and over-engineer simple things.
- It is not only for beginners. Some of the heaviest adopters are senior engineers using it to move ten times faster on routine work so they can spend attention on the hard parts.
- It is not one tool. It is a style of working. Cursor, v0, Claude Code, Windsurf, and Aider all support it with different trade-offs.
Who vibe coding is for
Anyone who has ever been bottlenecked on "I know what I want, I just do not want to type 400 lines to get there" benefits from vibe coding. In practice, the strongest use cases are:
- Indie hackers and solo founders shipping MVPs in days instead of months.
- Product engineers who want to prototype a feature end-to-end before committing to a design.
- Technical founders who need to move from idea to a live demo faster than their competitors.
- Non-engineers with taste — designers, PMs, researchers — who can now build what they envision.
The trade-offs
Vibe coding trades a specific kind of control for a specific kind of speed. You move faster, but you need stronger review skills than writing skills. You need to know what a secure auth flow looks like to notice when the model ships an insecure one. You need to know what good code structure looks like to reject the sprawling file the model generated on its first pass.
The skill is not typing. The skill is specification, review, and taste.
Where the term came from
Karpathy's original framing emphasized the experiential side — the feeling of building without the friction of syntax. The term was adopted almost immediately by the indie builder community, then by larger engineering teams, and by early 2026 it was the shorthand most people used for AI-native development.
There's 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 quote is half-joking. The practice is not.
Where to go from here
If you are new: start with our beginner's roadmap. If you are trying to pick a tool, read the best AI coding tools in 2026. If you already have a workflow and want to make it sharper, read the vibe coding workflow.