What is vibe coding? A practical definition, and where it breaks
Where the term came from, what it means in practice in 2026, the kinds of projects it handles well, and the specific places it fails once real users and real data arrive.
Key Takeaways
- The original meaning is “don’t read the code.”. Andrej Karpathy’s February 2025 post described giving in to the vibes and forgetting that the code even exists. That’s narrower than how the term is used today.
- Most people now use it more loosely. Collins defines it as using AI prompted by natural language to write computer code. In practice it covers anyone building mainly by prompting, whether or not they review the output.
- It’s excellent for prototypes, personal tools and internal apps. When the cost of a bug is low and you can see the result, judging by behaviour is fast and usually good enough.
- It breaks at the invisible parts. Permissions, data that must not be lost, payments, secrets and anything that only fails under load or with a second user. You can’t judge those by looking at a preview.
- The fix isn’t learning to code first. It’s adding a few habits: version control, a test with two accounts, a security checklist and knowing how to restore data.
Quick-Start Prioritization Framework
| Project type | Vibe coding fit | What to add before real users |
|---|---|---|
| Personal tool or script | Excellent | A backup of anything you’d hate to lose |
| Prototype to show investors or customers | Excellent | Nothing, as long as it’s clearly a demo |
| Internal app for a small team | Good | Sign-in, a permissions test, version history |
| Public app with accounts and data | Workable with care | Security review, two-user test, backups, monitoring |
| App that takes payments | Workable with care | All of the above plus webhook verification and refund testing |
| Regulated data (health, finance) | Risky alone | A qualified reviewer and your compliance obligations |
Vibe coding means building software by describing what you want to an AI and accepting what it produces, judging the result by whether it works rather than by reading the code. The phrase started as a half-joke from a well-known AI researcher in early 2025 and became Collins Dictionary’s Word of the Year that November. It’s now used for everything from a weekend toy to a funded startup’s first product, which makes it worth pinning down. This guide gives a working definition, the line between vibe coding and AI-assisted engineering, what the workflow looks like day to day, and the places it reliably breaks.
Where the term came from
On 6 February 2025, Andrej Karpathy, a co-founder of OpenAI and former head of AI at Tesla, posted about “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.” He described accepting all the AI’s changes without reading the diffs and pasting error messages back in until things worked.
The phrase spread fast because it named something many people were already doing. By 6 November 2025, Collins Dictionary had made it Word of the Year, describing it as “the use of artificial intelligence prompted by natural language to write computer code.”
A practical definition
The two definitions above aren’t the same, and the gap matters.
The narrow meaning
Simon Willison, a long-time developer who writes widely about AI tools, argued in March 2025 that “not all AI-assisted programming is vibe coding.” In his framing, vibe coding is building with an LLM without reviewing the code it writes. If you read, test and can explain every line before you commit it, you’re doing software engineering with an AI helper, not vibe coding.
The everyday meaning
In everyday use, vibe coding now means building mainly by prompting. That includes founders who never look at code, designers who skim it, and engineers who let an agent write most of a feature and review the risky parts. The tools are marketed to all of them.
The definition this site uses
Vibe coding is building software where your main input is natural-language instructions to an AI, and your main check is whether the result behaves correctly. Reading the code is optional. Checking the behaviour isn’t. That last sentence is where most of the practical advice on this site comes from.
What vibe coding looks like day to day
The tools differ, but the loop is the same everywhere.
Describe
You write what you want in plain language: who uses the app, what it stores, what each screen does. A good first prompt reads like a short brief, not a wish. “A booking page for my studio where clients pick a class, sign in with Google and see their upcoming bookings; I get an admin page with everything” is far more useful than “make a booking app.”
Generate
An agent writes the files, installs packages, maybe creates a database table and starts a preview. Modern agents such as Claude Code, Codex and Cursor’s agent also run commands and tests along the way, and app builders like Replit, Lovable and Floot handle hosting too.
Look and react
You click around the preview. Something is off, so you describe it: “the date picker lets me book in the past,” “the button overlaps the text on my phone.” You paste error messages. The agent fixes, you look again.
Ship
At some point it looks right and you publish. This is the step the original “forget the code exists” framing never had to deal with, because a toy doesn’t have users. A live app does.
Where vibe coding works well
The pattern is consistent: vibe coding shines when mistakes are visible and cheap.
- Prototypes and demos, where the goal is to learn whether an idea is worth building properly.
- Personal tools: a habit tracker, a script that renames photos, a dashboard for your own data.
- Internal tools for a small team that trusts each other, such as a job tracker or inventory list.
- Front-end work where the output is the thing you judge: layouts, landing pages, visual polish.
- Glue code between services you already use, where each run’s result is easy to check.
Where it breaks
Every one of these failures has the same cause: the problem doesn’t show up in the preview you’re looking at.
Permissions and data leaks
The OWASP Top 10, the standard list of web application risks, puts Broken Access Control first in its 2025 edition. In vibe-coded apps this usually looks like a page or API that returns every user’s data, filtered only in the browser. You sign in as yourself, see your own data, and it looks fine. A second account, or someone calling the API directly, sees everyone’s.
Secrets in the wrong place
An agent asked to “connect to OpenAI” or “add Stripe” may put the secret key in frontend code to make the demo work. It runs. It’s also published to anyone who opens the browser’s developer tools.
Data you can’t get back
Agents run migrations. A migration that drops a column, or a prompt like “clean up the old tables,” can delete real data in one step. Code can be rolled back from history; data can only be restored from a backup you already had.
The second change breaks the first
Without tests, each fix can quietly undo an earlier one. You notice the new bug, not the old feature that stopped working three prompts ago. This is the most common reason vibe-coded projects stall at around the third week.
Things that only fail with real traffic
Payments webhooks that arrive twice or out of order, emails that land in spam, queries that are fine with 20 rows and slow with 200,000. Stripe’s own documentation warns that it doesn’t guarantee events arrive in order and that endpoints may receive the same event more than once. None of this appears in a preview with one test user.
How to vibe code responsibly without learning to code first
You don’t need a computer science degree to avoid the failures above. You need a handful of habits that check behaviour you can’t see.
Keep history you can undo
Use Git with a coding agent, or the checkpoint feature in an app builder. Commit or checkpoint every time something works, so a bad prompt costs you minutes instead of a day.
Test with two accounts
Before launch, create two ordinary users and confirm each one sees only their own data, on every page that shows data. This single test catches the most serious class of bug.
Ask the agent to review its own work, then check the evidence
Ask for a security review of the changes, and ask for evidence: the command it ran and the output, not just “all tests pass.” Anthropic’s Claude Code guidance makes the same point, recommending you ask for the command and its output rather than a summary.
Know your restore path
Find out where your database backups live and how to restore one before you need to. Download a copy of the data before any big change.
Common mistakes
These are the patterns that turn a fun weekend project into a support problem.
- Treating a working preview as a finished app. The preview only proves the happy path works for one user.
- Never saying “use a database.” The agent may use browser storage and the data won’t follow users between devices.
- Letting the agent rewrite large parts of the app in one prompt. Smaller requests are easier to check and to undo.
- Pasting the same error back five times. If two attempts fail, ask the agent to explain the cause before it tries again, or start a fresh session with a clear summary.
- Launching without knowing how to restore data or roll back a deploy.
- Assuming the AI handled security because you didn’t see any errors. Security bugs don’t produce errors.
If you’d rather not run the infrastructure yourself
If you’d rather not set up the database, sign-in and hosting yourself, Floot builds full-stack web apps from plain-English descriptions and runs those pieces for you, with a live preview of every change. You can use it from its own editor or from ChatGPT, Claude, Claude Code, Codex and Cursor.
Frequently Asked Questions
Who coined the term vibe coding?
Andrej Karpathy, in a post on 6 February 2025. He described fully giving in to the vibes and forgetting that the code exists.
Is vibe coding the same as AI-assisted programming?
Not in the strict sense. Simon Willison and others draw the line at review: if you read, test and understand the code before committing it, that’s AI-assisted engineering. In everyday use, though, people call almost any prompt-first building vibe coding.
Can you build a real business on a vibe-coded app?
People do, especially for a first version. The risk isn’t the prompting; it’s skipping the checks for permissions, secrets, backups and payments. Add those habits before you have paying users.
Do I need to know how to code to vibe code?
No. You do need to be able to describe what you want precisely, test behaviour methodically and follow a short security checklist. Reading code helps but isn’t required for low-risk projects.
What are the best tools for vibe coding?
It depends on whether you want an all-in-one builder or a coding agent. Our guide to the best vibe coding tools compares the main options with their current prices.
Why do vibe-coded apps get hacked?
Usually because access rules were never tested with a second user, or a secret key ended up in frontend code. Neither shows up as an error while you build.
Sources
- Simon Willison, Not all AI-assisted programming is vibe coding (but vibe coding rocks), 2025 https://simonwillison.net/2025/Mar/19/vibe-coding/
- Collins Dictionary Language Blog, Collins’ Word of the Year 2025, 2025 https://blog.collinsdictionary.com/language-lovers/collins-word-of-the-year-2025-ai-meets-authenticity-as-society-shifts/
- OWASP, OWASP Top 10:2025, 2025 https://top10.owasp.org/2025
- Stripe, Receive Stripe events in your webhook endpoint, 2026 https://docs.stripe.com/webhooks
- Anthropic, Best practices for Claude Code, 2026 https://code.claude.com/docs/en/best-practices