The problem
A developer wants to build a side project — a habit tracker, a personal dashboard, a tool to parse invoices. They know exactly what it should do. But setting up the repo, choosing a framework, writing boilerplate, debugging CSS — all of that takes a weekend for something that should take an hour.
Short answer
In February 2025, Andrej Karpathy posted about building a web app by just describing what he wanted to an AI. No manual coding. He called it “vibe coding” — you set the vibe, the AI writes the code.
The term stuck. Within weeks, tools like Lovable, Bolt, Replit Agent, and Cursor Composer started leaning into this workflow as a core use case.
How it works
A typical vibe coding session with a tool like Lovable or Cursor Composer:
- Describe the goal in plain language — “Build a habit tracker with a calendar view, daily streaks, and a dark mode toggle”
- AI generates a working app — Full code, UI components, routing, database schema
- Review the output — Check if the behavior matches your intent
- Iterate by talking — “Move the streak counter to the top. Add a weekly summary chart.” The AI modifies the codebase.
- Ship — Deploy directly from the tool, or export the code to your own repo
The key difference from AI-assisted coding: you never open a code file. You stay in natural language the entire time.
NOTE
Vibe coding ≠ no-code. No-code tools give you a visual builder with fixed components. Vibe coding generates actual source code — you can eject it into a real repo at any point.
Tools built for this workflow
| Tool | Approach | Best for |
|---|---|---|
| Lovable | Full-stack app from a prompt | Non-technical founders, quick MVPs |
| Bolt | In-browser coding agent | Prototypes with instant preview |
| Replit Agent | Autonomous coding in Replit | Full apps with backend + DB |
| Cursor Composer | Multi-file AI edits in IDE | Developers who want some control |
| v0 | UI component generation | Frontend components and pages |
Limits
It works until it doesn’t. Vibe coding handles 80% of a prototype well. The last 20% — auth edge cases, complex state management, performance at scale — often requires reading and editing code manually.
Specific failure modes:
- Debugging is hard — When the AI generates broken code, fixing it by description alone can take longer than just reading the code
- Architecture compounds — Early AI decisions (wrong database, bad state pattern) cascade into problems that are expensive to fix via prompts
- Security gaps — AI-generated code often skips input validation, rate limiting, and auth checks. A Stanford study found AI-assisted developers produce less secure code
- Context limits — Once a codebase exceeds 10-20 files, current tools struggle to keep the full picture in context
CAUTION
Never deploy vibe-coded apps with user authentication or payment processing without a manual security review. AI-generated auth flows frequently have vulnerabilities that aren’t obvious from the UI.
Alternatives
- AI-assisted coding (Cursor Tab, GitHub Copilot) — You write code, AI suggests completions. More control, slower for prototypes.
- Low-code platforms (Retool, Bubble) — Visual builders with drag-and-drop. No code at all, but limited flexibility.
- Agent-assisted coding (Claude Code, Aider) — Terminal-based AI that edits your codebase. You see every change, approve each step.