Built an MVP in 3 days with Claude Code — here's the stack
The old MVP playbook hasn't changed: identify a real problem, define one core value prop, strip everything else. What has changed is how fast you can validate. AI coding tools compress the build-measure-learn loop from weeks to days.
My current validation stack
- Cursor — primary IDE, Cmd+K for inline edits, Composer for multi-file features
- Claude Code — terminal agent for scaffolding, migrations, test generation
- v0.dev — instant UI components when I don't want to write Tailwind
- Supabase — auth + database + edge functions in one PostgreSQL backend
- Vercel — zero-config deploy, preview URLs for every push

The 3-day sprint breakdown
Day 1: Problem validation before code. I wrote a one-pager, posted in two relevant Discords, got 12 people saying "shut up and take my money." Only then did I open Cursor.
Day 2: Scaffold → authenticate → charge. Single prompt to Claude Code:
Create a Next.js 14 app with Supabase auth (email/password + OAuth),
a /dashboard route protected by middleware, and a Stripe Checkout
integration that creates a subscription on success. Use TypeScript,
Tailwind, and App Router. Output the full file tree.Got a working repo in 45 minutes. Spent the rest of the day styling the pricing page and writing the webhook handler.
Day 3: Polish the happy path. Added loading states, error toasts, email confirmation flow. Deployed. Sent the preview link to the 12 people from Day 1. Three converted to paid before Monday.
What I skip now (and you should too)
- Custom UI component libraries — v0 + shadcn/ui covers 90%
- Manual API route boilerplate — Supabase edge functions + generated types
- Test suites for throwaway code — E2E tests only for the payment flow
- Admin panels — SQL queries in Supabase dashboard until revenue justifies it
The trap to avoid
AI makes overbuilding easier, not harder. You can generate a full admin dashboard, analytics pipeline, and notification system in an afternoon. Don't. Every feature you add before charging a single user is a hypothesis you haven't tested.
My rule now: one paid user > 100 GitHub stars. The code quality of my Day 2 scaffold was embarrassing — hardcoded secrets, no tests, console.logs everywhere. But it worked, and that's the only metric that mattered.
Next sprint: replace the Stripe webhook with a proper event-driven architecture using Upstash QStash. But only because MRR demands it.
What's the longest you've spent on an MVP before getting a single dollar?
