Skip to content

What is vibe coding and why developers are trying it

Vibe coding is a development approach where you describe what you want in natural language and let AI tools generate the code. Here is what it means in practice.

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:

  1. Describe the goal in plain language — “Build a habit tracker with a calendar view, daily streaks, and a dark mode toggle”
  2. AI generates a working app — Full code, UI components, routing, database schema
  3. Review the output — Check if the behavior matches your intent
  4. Iterate by talking — “Move the streak counter to the top. Add a weekly summary chart.” The AI modifies the codebase.
  5. 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

ToolApproachBest for
LovableFull-stack app from a promptNon-technical founders, quick MVPs
BoltIn-browser coding agentPrototypes with instant preview
Replit AgentAutonomous coding in ReplitFull apps with backend + DB
Cursor ComposerMulti-file AI edits in IDEDevelopers who want some control
v0UI component generationFrontend 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.