Where the term came from
Andrej Karpathy coined "vibe coding" in early 2025 in a now-widely-quoted tweet. His framing was something like: you sit with an LLM, describe what you want, run the output, react to what you see, and iterate on the vibe rather than the syntax. The code is almost incidental — the loop is intent, output, reaction, intent.
The term caught on because it named something practitioners had already been doing for a year. By the time Karpathy named it, half the indie SaaS scene was already shipping production software this way.
What vibe coding actually means in practice
Stripped of the marketing, vibe coding is rapid, AI-assisted development where you ship working software by iterating on intent rather than writing every line by hand. It pairs well with PM rigor. The AI accelerates the build; a clear PRD and user flow keep the output on target.
It is not "let the AI do everything." It is not vibes-only, no-direction development. The good practitioners I know spend more time thinking about the spec, the data model, and the user flow than they ever did before — because the AI eliminates the bottleneck of typing, exposing the real bottleneck, which has always been clarity of intent.
The four principles I use
1. Spec before vibe. Every project starts with a written PRD or operational flowchart. The AI works better with clear intent, and the human work is upstream of the code anyway. If you cannot describe what the feature does in three paragraphs, no AI will rescue you.
2. Ship to a public URL on day one. Vercel deploy, Supabase database, real domain. The first version is broken in many ways, but it is real. From day one onwards, every change is a deploy. This forces honesty.
3. Real users in week one. Five real users tapping at a real URL beat a hundred internal demos. The point of vibe coding is not that you ship faster — it is that you find out faster whether what you shipped matters.
4. Throw away aggressively. When the AI generates the wrong abstraction, delete it. Do not refactor it; do not patch it. Re-prompt with better intent and let the AI rewrite. The code is cheap; your time reading bad code is not.
Vibe coding is not chaos coding
The strongest argument against vibe coding is that it produces unmaintainable spaghetti. In my experience, that happens when the vibe is the only thing — no spec, no data model, no test coverage, no code review.
The version that works has guardrails:
- A schema you can read in thirty seconds.
- Tests for anything that touches money, data, or user identity.
- A deployment pipeline that catches the dumb breaks.
- A code review at the end of every session, even if the reviewer is just you.
With those guardrails, vibe coding is faster and cleaner than traditional coding for early-stage products. Without them, you end up with a beautiful demo and a maintenance nightmare on day ninety.
When vibe coding fails
It fails on three classes of problem:
- Performance-critical code. When you need to optimise a hot path, you need to read every line. Vibe coding will produce something that works at small scale and falls apart at large scale.
- Security-sensitive code. Auth flows, payment handling, and PII storage need a level of paranoia LLMs do not yet have. Hand-write or hand-review every line.
- Anything you do not understand. The fastest way to ship a bug into production is to vibe-code your way through a domain you have not learned. The AI will produce code that compiles; whether it is correct is your problem.
My 2026 vibe coding stack
For most B2B SaaS MVPs I default to:
- Frontend: Next.js 15 + Tailwind CSS + Tailwind UI components
- Backend: Supabase (PostgreSQL + auth + storage) or FastAPI on a DigitalOcean droplet
- AI: Gemini for cheap, Claude for hard reasoning, OpenAI for ecosystem fit
- Deployment: Vercel for frontend, Supabase or DigitalOcean for backend
- AI assistant: Claude Code or Cursor with Claude as the primary model
- Analytics: PostHog or Mixpanel from day one
The stack is boring on purpose. Vibe coding rewards stacks the AI knows well; cutting-edge frameworks reward more careful coding.
Closing thought
Vibe coding is a tool, not a philosophy. It is great for going from zero to MVP, decent for going from MVP to product-market fit, and bad for taking a mature product to scale. Use it for the right problem and it is the largest productivity gain since the IDE. Use it for the wrong problem and you will regret it on day ninety.
If you have an MVP you want to ship in the next month, book a free strategy call and we can talk about whether vibe coding is the right play for your project.