Vibe Coding: Skip the Diffs, Keep the System

Vibe coding is prompting an LLM until the software runs, accepting every diff, and skipping the code. Andrej Karpathy coined the phrase in February 2025.

Updated 16 min read
Laptop on a chair with a colorful desktop, vibe coding workspace

Vibe coding is prompting an LLM until the software runs, accepting every diff, and skipping the code. Andrej Karpathy coined the phrase in February 2025. Simon Willison and Martin Fowler draw a hard line: if you reviewed the output, you already left the method.

a16z puts the reachable set at about 1% of people: developers, founders, designers, and PMs. Designers sit in that 1%. Head explainers still skip design systems, Figma files, and the last-mile drift that shows up once a prototype looks finished.

Key Takeaways

  • If you read the diffs, Fowler calls that agentic programming, not the original method.
  • Match the job (chat-to-app, UI and components, native Figma, IDE) instead of hunting a single winner.
  • Scaffold in Figma, then generate against tokens, MCP, or Code Connect. Screenshot-guessing emits a cousin of the file.
  • Happy-path demos hide design-system drift and the last 20% of production work.
  • Treat the output as a prototype until an engineer owns users, money, and review.

What Is Vibe Coding?

Karpathy's February 2025 post set a test, not a brand. Fully give in to the vibes, forget that the code exists, hit Accept All, and skip the diffs. The original scope was throwaway weekend projects.

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. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper
Andrej Karpathy · @karpathyView on X

Willison dated the coinage to 6 February 2025 and split the work the same month. If a model wrote every line and you still reviewed, tested, and understood it, that is a typing assistant. His production rule is blunt: don't commit code you could not explain.

Fowler's bliki (updated 21 May 2026) keeps the same test: prompt, try, re-prompt, never look at the code. People who let models write everything and review structure are doing agentic programming. Best use, in his words, is disposable software for the author or a small group who accept the risk.

Addy Osmani (Medium, 30 November 2025; later Beyond Vibe Coding) draws the same fence from the other side. The method is not AI-assisted engineering. Architecture, review, and security stay human.

Osmani cites Final Round AI (August 2025): 16 of 18 CTOs reported production disasters from AI-generated code. Treat that as a warning, not a census. Osmani joined Google Cloud as an AI director in December 2025; Google also ships a product named Vibe Coding, so attribute the essay to him, not the product page.

One collision sits on the same SERP. Google AI Studio branded a "build apps using only your words" product "Vibe Coding." That page is a product, not the category definition.

On the first anniversary, Karpathy told Business Insider he prefers "agentic engineering" for agents that write the code, to keep the original phrase from swallowing review-heavy work.

Why the Method Spread in 2026

The models started landing whole files that compiled. That is the whole story, and it is also the trap.

In a Sequoia conversation, Karpathy described the slide: chunks came out fine, he asked for more, he could not remember the last correction, then he trusted the system. That is how Accept All becomes a habit.

The same talk splits the jobs. Vibe coding raises the floor for what a non-specialist can produce; agentic engineering preserves the quality bar that already existed. "You're not allowed to introduce vulnerabilities due to vibe coding," he said at 15:57.

a16z (3 February 2026) killed the civilian version of the story. Most people still cannot do this. The audience is that 1%: people who already have taste, a product sense, or a codebase, and designers are the case, not a side note.

Stack Overflow's 2 January 2026 blog put a number on the hangover: 66% of respondents hit the "almost-right" productivity tax. The output looks done. The last fixes cost more than writing it.

How the Loop Works

The working loop is five moves.

You scope one screen and pick a tool that matches the job: chat-to-app, UI generator, native Figma, or an agent in a repo. You generate, click through as a user, skip the code on pass one, and iterate in chat. Only then do you validate, harden, or throw the implementation away.

IBM-style "review the code" steps are Fowler's agentic path. Use them when you intend to keep the file.

Prompt, Click, Re-prompt

arXiv 2506.23253 ran the first empirical study (~8.5 hours of think-aloud). The loop is iterative goal-satisfaction: prompt, rapid-scan or test, then a manual edit. Prompts mix vague vibes with detailed specs, and debugging is hybrid.

The study did not eliminate programming expertise. It redistributed it to context management, rapid evaluation, and the decision of when to take the keyboard. The dataset had no non-programmer sessions, so taste and systems thinking still matter, and syntax is the part you can skip on a prototype.

Rapid Scan Is Not Review

The first pass is a click test. Empty, error, loading, logged-out. If the happy path works, the model will happily emit three more pages that almost match.

Raluca Budiu (NN/g) on LinkedIn (September 2026): one good output shows a system can perform a task. It does not show how often, or how reliably, it will happen again.

When You Grab the Keyboard

The moment you read structure, name the files, and refuse a stack switch, you left the original method. That is the useful fork for a design org.

Karpathy's own later split matches it: AI-assisted rhythm for code he professionally cares about, Accept All for throwaways. Willison later proposed "vibe engineering" for the responsible version, because the original word had become a slur for not reading output.

Vibe coding is irresponsibly building software through dice rolls, not caring what code is produced What about when engineers at the top of their game use AI tools responsibly to accelerate their work? I propose "vibe engineering"!
Simon Willison · @simonwView on X

The Tool Map by Job

Independent tests disagree on a winner because they measure different jobs. EPAM (14 April 2026) scored Figma-link fidelity on two real designs (a news list and a D3 treemap). Product Talk (1 April 2026) splits apps (Lovable, Bolt, Figma Make, v0, Replit) from agents (Claude Code, Codex), and usually keeps Cursor out of the apps list.

Match the job, then stop. Product depth lives on the spoke pages.

Job

Canonical product

Notes

Chat to a hosted app

Lovable

Bolt and Replit Agent sit here

Browser full-stack polish

Bolt

Running-app, prompt-only

UI and components to Next/shadcn

v0

Front-end generation

Native Figma to prototype

Figma Make

Cross-link only

Agent in a real repo

Cursor

Review-heavy; often not the original method

Highest EPAM Figma-link score

Replit

Adjacent; no dedicated spoke

EPAM's averages, for the Figma-import job only: Replit 93%, Figma Make 92.5% (97% on the news list), Bolt 88.5%, Lovable 75%, v0 72%. The predictor was direct Figma metadata over screenshots; screenshot tools emit a generic cousin of the file. Roughly 80% of layout is cheap, and the last 20% burns tokens while the code gets worse.

Prompt-only visual tests pick a different winner, because they score running-app polish rather than file fidelity. Figma Make is often absent from those scorecards.

Chat to a hosted app. Lovable is the current canonical: describe the product, get a running app, deploy. The company closed a Series C of $400M at $13.3B on 12 August 2026 (TechCrunch). Pro is listed around $25/mo.

Lovable homepage with prompt input
Lovable homepage.

Browser full-stack. Bolt.new (StackBlitz) is the prompt-only running-app job. Pro is $25/mo. Use it when you want to click a working UI in the browser, not when you need a design-system lock.

Bolt.new homepage with prompt input
Bolt.new homepage.

UI and components. v0 is the shadcn/Next generator. Plus starts at $30/user/mo.

v0 homepage with prompt and templates
v0 homepage.

Native Figma. Make is the in-file prototype job, and EPAM noted a Full Seat with no token meter. The Make-specific workflow already lives in Figma Make. This hub does not restate it.

Agent in a repo. Cursor is the IDE job, and Individual is $20/mo. SpaceX announced a $60B all-stock acquisition on 16 June 2026, targeted for a Q3 close. On 28 August, OpenAI said it was winding down its Cursor contract after a change of control.

Cursor homepage with desktop agent UI
Cursor homepage.

Adjacent. Replit Core is $20/mo. It won EPAM's Figma-link score and still is not the designer default. Windsurf, Claude Code, and Copilot show up in agent workflows; Supabase is the data layer those chat-to-app tools sit on, not a fourth category.

"Vibe design" (AI interactive prototypes as an agency deliverable) is a separate overloaded term. Ignore also-rans that rank themselves: Zite, FlutterFlow, Emergent, Canva Code, Base44.

Courses that dump Bubble and Glide into the same list are describing no-code.

For the broader AI for designers question (where generation helps, where craft stays human), this hub is the coding-method slice. Design engineering is the career slice: people who already keep Figma and the repo in one head.

A Designer Workflow on the Agentic Fork

Karpathy-mode gets you a Saturday demo. It does not protect a design system.

Into Design Systems (8 April 2026) publishes the time split most teams skip: 70% plan and docs in markdown, 20% review and test, 10% implement. Keep a "don't file" of things the model must never do: a markdown list of shortcuts and habits engineers will hate.

Start With a File, Not a Wish

Scaffold theme, grid, type, and color in Figma first, on one or two pages. Write a one-sentence core function, then prompt like a design brief: audience, states, constraints, what "done" looks like. Scope one screen.

Figma on LinkedIn (September 2026): when you can build anything, building the right thing gets harder. Red Hat said the same from the engineering side: a spec written by someone who does not understand architecture is a wish list.

Encode States Before Pages

Empty, error, loading, logged-out: add those before you ask for another page. Happy-path generation is in the training set. Edge cases are still in Figma.

On r/UXDesign, the recurring use case is coded prototypes that tell the story better than linked frames, with a hard stop at the happy path.

"It's great because it's so much better for storytelling and showcasing designs. But it's also death by a thousand prompts. … I use it for happy path flows. Anything more complicated and it starts doing weird ish. Figma still remains the end all be all for pixel perfection and edge cases." (u/kimchi_paradise in r/UXDesign, September 2026)

Prefer the Source of Truth

EPAM's result is the practical rule. Tools that read Figma metadata, tokens, MCP, or Code Connect beat tools that guess from a screenshot.

Domingo, staff product designer at Intercom, was explicit about where the prototype lives: not in Figma Make, not in another prototyping tool, in the shipping codebase. Figma MCP without Code Connect recreates lookalikes. When components are on-system, Domingo said engineers often keep about 80%.

That is the AI agents vs Figma fork in production form: Figma stays visual truth, the agent attacks a locked registry. shadcn-style workflows do the same with a component library.

Click, Then Stop Rewriting Architecture

Click-test immediately, then iterate in chat. Export or hand off before the third "make it better" that reshuffles the information architecture. EPAM watched the last 20% degrade the code; Product Talk named the doom loop: bug, "fixed," not fixed, agent switches stacks, data and view drift apart.

On r/UXDesign, a constructive ownership split shows up more than a better prompt:

"Design only owns presentation. We only use copilot/claude to code prod grade ui, on the companies standardized stack, that we can pass to engineers to hook up to the back end." (u/oddly_novel in r/UXDesign, March 2026)

A second agent that audits drift against Storybook is the missing reviewer, not another chat tab.

Treat the Output as a Prototype

If users or money will see it, rebuild, or put an engineer on the last 20%. Stream (3 September 2026) used Moltbook as the object lesson: DMs that were not private, no moderation, crypto spam. Happy-path chat is in the training set; production realtime is not.

GitHub's line on LinkedIn is the review rule in one sentence: if you want another human to review your work, read it first.

Where It Breaks

Head explainers recap CVEs. Design orgs hit a different wall first: the prototype looks like the system, and it is not.

It Was Never for Production

Fowler, Karpathy's "throwaway weekend projects," and Stream agree on the prescription. Use the loop to validate a hypothesis, then throw the implementation away. Keep the learning.

"Vibe coding locally and pushing dumb shit into prod are two unrelated problems, and orgs conflating them are going crazy." (u/Flickerdart in r/UXDesign, March 2026)

The polished artifact is the old high-fidelity wireframe trap. Decision makers see the sheen and skip the research.

"Gen AI introduces a lot of carelessness into the work. It becomes a problem when decision makers are short sighted and could only see the polished artifact that hid all the flaws." (u/MaddyMagpies in r/UXDesign, March 2026)

Design-System Drift

Agents invent patterns, ignore Storybook, and ship "slight modifications uncatchable by the untrained eye (margins)," as the March 2026 r/UXDesign drift thread put it. Figma MCP and a design.md file are incomplete guardrails.

PO speed theater is the org version. One evening of Claude versus a month of UX. Engineers refuse the handoff because rebuilding against the real library is cheaper.

Thoughtworks (September 2026) named the review bottleneck: AI generates faster than humans can realistically review. Faster PR bots do not fix that. Judgment has to move upstream, because code got cheaper to produce and understanding systems did not.

YC's design review with Raphael Schaad (3:58) is the public-facing version of the same failure. Purple gradients, hover-only actions, scrolljacking SVG. "Just because we now can" is a conversion problem.

Red Hat's three-month wall is what happens after the demo: instructions go stale the moment code is generated, and the code is terrible at explaining why.

The Last 20 Percent

Stream's 80/20 and EPAM's last-20% decay are the same shape in two domains. Chat can emit a list view. Chat cannot emit your auth, your realtime, your empty states, or your token math.

Security Numbers, Kept Separate

Do not mix studies. Each row is a different method.

Study

Finding

Method

Veracode 2025 GenAI Code Security Report

Vulns in 45% of 80 tasks; Java >70%; Python/C#/JS 38–45%

>100 LLMs; functional quality improved, security pass rates flat

CodeRabbit Dec 2025

AI PRs 1.7× more issues; security vulns 2.74×

320 AI-co-authored vs 150 human OSS PRs

GitGuardian 2026

28.65M new secrets on public GitHub in 2025 (+34%); AI-assisted commits 3.2% leak vs 1.5% baseline

State of Secrets Sprawl, 17 Mar 2026

Escape via CSA

65% of 1,400+ apps had issues; 58% ≥1 critical; 175 PII

Production scan of 1,400+ vibe-coded apps

Tenzai Dec 2025 via CSA

69 vulns in 15 apps; every app lacked CSRF and security headers; every tool introduced SSRF

n=15 anecdote

The Cloud Security Alliance note (31 March 2026) is the join document. Georgia Tech's radar, also via CSA, counted AI-attributed CVEs rising 6 to 15 to 35 from January to March 2026, with a true-count estimate of 400–700 because tools leave no commit metadata.

Vendor marketing that says "up to 62%" is a different Veracode page with no method that matches the 80-task report. Ignore it.

Versus Traditional, No-Code, and Agentic Programming

Fowler's split is cleaner than "versus no-code." You are choosing what you manipulate.

Approach

What you manipulate

Lock-in

Failure mode

Traditional

Source you understand

Low

Slow to a first clickable

Low-code

Visual builder plus some code

Platform

Ceiling plus vendor

No-code

Visual builder, no code

High

You cannot leave Bubble or Webflow

This method

Natural language to generated source

Lower if you export git; higher if you stay hosted

You cannot read what you shipped

Agentic programming

Generated source you review

Low-to-medium

Review cannot keep up with volume

No-code hides the source. This method emits source you are tempted to skip, which is why "do you need to learn coding?" is the wrong binary.

You can start without being a developer. You cannot skip review if you ship. Basic code literacy is how you know when the model invented a second button.

Lovable (August 2026) said the org version: the cost of creating software is collapsing, and most product orgs are still built for scarce engineering time. The scarce resource moved. It is now judgment, systems, and taste.

Common Prompt-to-Prototype Mistakes

Shipping the Playground

A Saturday demo is a hypothesis. Putting it on a custom domain does not make it a product. Keep a vibe playground synced to Storybook and Figma, and promote nothing until an engineer wires data.

Treating One Good Output as an Evaluation

A single on-system screen is an existence proof. Run the empty, error, and logged-out states before you present it as "the design."

MCP Without Code Connect

Figma MCP alone recreates lookalike UI. Intercom's fix was Code Connect into the shipping repo. If engineers cannot keep 80% of the output, you generated a mock, not a prototype.

Ranking Tools Instead of Matching Jobs

Figma-import winners are not prompt-only polish winners. Cursor is the wrong card for a non-dev chat-to-app job; Lovable is the wrong card for a design-system lock in an existing Next app. Pick the row in the job map.

Accept All Into a Repo With Users

Karpathy's test is the definition. It is also the incident report. GitGuardian's 3.2% versus 1.5% leak rate is what "forget the code exists" looks like on a public GitHub graph.

Examples You Can Steal the Shape From

IBM's habit-tracker is the commodity example. The honest ones are personal, disposable, or explicitly on-system.

Lee Robinson (September 2025) vibe-coded a Spotify UI for himself. Not to share. Personal software is the original scope.

Building macOS apps is pretty fun. I'm vibe coding this UI for Spotify. Not building it to share, but just personal software for myself. I made a version last year that was web-based and only mp3 files. But wow, Swift and the Mac ecosystem is fun. It's nice that you get a https://t.co/eSFmQ9GMTr
Lee Robinson · @leerobView on X

Guillermo Rauch recreated Airbnb's nav with v0, 4o, and Runway. That is the UI-generator job in one card, not a claim that v0 won a category.

Recreated @airbnb's iconic nav with @v0 (code) + @openai 4o (image) + @runwayml (video). Prompting is all you need. https://t.co/I33k2KyCzj
Guillermo Rauch · @rauchgView on X

Karpathy's MenuGen (photograph a menu, generate dish photos) is the throwaway that taught the method. Intercom's one-shot Figma-to-playground, then a draft PR, is the designer version that survives contact with a real codebase.

On r/OutOfTheLoop, a useful non-coder pattern showed up early:

"One of the artists on my team vibe-codes up a storm while prototyping. She doesn't have a clue how to code, but the resulting little experimental demos are very useful for us for developing a design perspective on how the app should flow." (u/GregBahm in r/OutOfTheLoop, March 2025)

Harvest the demo. Do not ship the artist's playground.

Frequently Asked Questions

Related Articles