Karpathy's vibe coding (Feb 2025) — and why "mostly works" is not a production SLA

Read the field note below to see how we apply this pattern in practice.

verified today
Security: unaudited
SERIES The Karpathy Playbook 04/06DIFFICULTY beginnerTIME 5 minCATEGORY ai-industryVERIFIED PUBLISHER FRE|Nxt LabsEdit on GitHub →
Need this in production?

Turn this cable into a shipping system.

We help teams deploy reliable AI workflows with architecture, implementation, and hardening support.

The Karpathy Playbook #4: Vibe coding

Part 4 of 6 — tracing Karpathy's public thinking with FRE|Nxt Labs production commentary.


The tweet

"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 so it's not even coding, I just speak."

@karpathy, 2 February 2025

One year later, in his retrospective, he called it "a shower of thoughts throwaway tweet" — and noted he still can't predict tweet engagement after 17 years on the platform. The throwaway tweet became a generational label.


What we heard

Karpathy wasn't advocating sloppiness. He was describing what happens when the friction of writing code drops below the friction of thinking about code. At that threshold, you iterate at the speed of ideas.

The trap is stopping there. "Mostly works" is not a production SLA. Every production system we've shipped has a vibe-coding origin story and a non-vibe production-gate ending.


What we actually do with this

We split every AI-assisted build into two explicit phases:

Phase 1 — vibe phase (intentionally fast) We do exactly what Karpathy describes. We use Claude Code to scaffold, generate, iterate at idea speed. We don't review individual lines. We run it and look at output.

Phase 2 — production gate (intentionally slow) Before any output leaves our environment we run:

  • npm run build — type errors are load-bearing
  • npm run lint — catches the copy-paste artifacts AI loves to leave
  • A smoke test against the real API (not a mock)
  • A cost estimate: tokens-in × token price at expected QPS

The vibe phase might take 20 minutes. The production gate takes 40 minutes. The ratio is the point — we're not abandoning rigour, we're front-loading creativity and back-loading verification.


The concrete result

On the InterviewLM engagement, we used this pattern to prototype eight distinct agent personas in two days. Vibe phase shipped the scaffolding. Production gate caught the three that had prompt-injection surface areas. Total time to production-ready: six days.

Without the vibe phase: probably three weeks of careful upfront design. Without the production gate: three personas with live security issues.


The one thing to steal from this

Add a pre-commit hook that runs your build + lint. It forces you to exit the vibe phase before you ship. Claude Code with Turbopack makes this nearly zero latency — there is no longer a meaningful cost to running a build.


Next in this series

#5 — Software 3.0 (June 2025). Four months after "vibe coding," Karpathy gave it a formal name at YC AI Startup School: "The hottest new programming language is English." What that reframing unlocks.

Quick answers

What do I get from this cable?

You get a dated field note that explains how we handle this ai-industry workflow in real Claude Code projects.

How much time should I budget?

Typical effort is 5 min. The cable is marked beginner.

How do I install the artifact?

This cable is guidance-only and does not ship an installable artifact.

How fresh is the guidance?

The cable is explicitly last verified on 2026-04-17, and includes source links for traceability.

More from @frenxt

Share this cable