Two weeks sounds impossibly fast for a full-stack SaaS product. But I've done it — and the key isn't working harder. It's being ruthless about what you build and what you skip.
This is the exact playbook I use.
Week 1: Infrastructure + Core Loop
Day 1-2: Project scaffold and auth
Don't start with the "interesting" features. Start with the boring infrastructure that everything else depends on.
next create-next-app@latest (App Router, TypeScript, Tailwind)
→ Clerk or NextAuth for authentication
→ Prisma + PlanetScale (or Supabase) for the database
→ Vercel for deployment (do this on day 1, not day 14)
Why deploy on day 1? Because deployment surprises kill projects. Get it live immediately, even if it's just a login page.
Day 3-4: Core data model
This is the most important architectural decision you'll make. Get the data model wrong and everything else is expensive to fix.
Rules:
- Model the core entity first (the thing your product is fundamentally about)
- Add created_at, updated_at, userId on everything
- Keep it flat — no premature normalisation
- Plan for soft deletes from the start (add
deletedAt)
Day 5-7: The one core loop
An MVP doesn't need features. It needs one loop that works end-to-end:
- User can create a [thing]
- User can see their [things]
- User can do the core action on a [thing]
If your product is a project management tool, the core loop is: create project → add tasks → mark complete. Everything else — comments, integrations, team members, notifications — is deferred.
Week 2: Polish, Payments, Launch
Day 8-9: Payments
Stripe is the only correct answer. Specifically:
// Use Stripe Checkout + webhooks
// Never build your own payment form
// Add Stripe Customer Portal for subscription management
Set up:
- Stripe Checkout for subscription creation
- Webhook handler for
checkout.session.completedandinvoice.paid - Store
stripeCustomerIdandsubscriptionStatuson your user
Don't build billing logic yourself. Don't build a custom payment form. Don't defer payments until post-launch. Payments are infrastructure — do them early.
Day 10-11: The 3 pages that matter
Every SaaS needs exactly these:
- Landing page — what it does, who it's for, one CTA
- Dashboard — the logged-in home, your core loop
- Pricing page — simple, 2-3 tiers maximum
That's it. No blog, no docs, no changelog, no team page. Those are post-traction.
Day 12-13: Error handling and loading states
This is the difference between "technically works" and "feels like a real product." Every async operation needs:
- A loading state (skeleton or spinner)
- An error state (clear message + recovery action)
- An empty state (what users see before they have data)
These take time but they're the things users notice. A blank screen with no explanation kills trust.
Day 14: Launch prep
- Set up Plausible or PostHog (analytics, free tier)
- Add basic error monitoring (Sentry, free tier)
- Write 5 cold DMs to your target users
- Post on Twitter/X, Hacker News, or the relevant community
What I Always Skip in Week 1-2
- Team/collaboration features — build for solo users first
- API/webhooks — nobody is asking for this yet
- Advanced search/filtering — YAGNI
- Email notifications — use Resend but only for critical transactional emails
- Mobile app — responsive web is fine for MVP
- Internationalisation — get English right first
- Dark mode — seriously, defer it
The Stack I Default To
For a solo founder or 2-person team shipping in 2 weeks:
| Layer | Choice | Why |
|---|---|---|
| Framework | Next.js (App Router) | Full-stack, great ecosystem |
| Database | Supabase / PlanetScale | Managed, good free tier |
| ORM | Prisma | Type-safe, great DX |
| Auth | Clerk | Fastest to production |
| Payments | Stripe | No other answer |
| Deployment | Vercel | Zero config Next.js |
| Resend | Best DX, great free tier |
The Mindset Shift
The hardest part of 2-week MVPs isn't technical — it's the discipline to say no to yourself.
Every day you'll have ideas for features that seem obviously important. Write them down. Don't build them. The question isn't "is this a good idea?" It's "will users churn without this in week 1?"
Ship ugly. Ship incomplete. Get someone to pay for it. Then iterate.
If you're building a SaaS and want a technical partner for the initial build or architecture review, let's talk.