ShipFast SaaS launch stack (Marc Lou's pattern) icon

ShipFast SaaS launch stack (Marc Lou's pattern)

Stack

The boilerplate stack hundreds of indie SaaS launched with in 2024, 2026. Marc Lou's ShipFast turned this into a paid template; the underlying pieces are all open.

Stack

What this is

The stack popularised by Marc Lou and codified in his ShipFast Next.js boilerplate. Hundreds of indie SaaS launched in 2024, 2026 use a near-identical configuration; Marc himself documents it relentlessly on Twitter and in his email course.

When to pick this stack

  • You’re shipping an indie SaaS solo or with a tiny team and want to go from idea to paid in days, not months
  • You’re comfortable with JavaScript/TypeScript end-to-end (Next.js front and back)
  • Schema-flex matters more than relational integrity, most indie SaaS data fits MongoDB’s document model fine, and the lack of schema migrations is a real productivity win in the early weeks

What we’d swap

  • MongoDB Atlas → Supabase Postgres: if you’ll need relational queries, joins, or row-level security later, swap to Postgres now. Supabase wraps Postgres + auth + storage; you can drop Clerk too in that case.
  • Clerk → Supabase Auth: if you’re already on Supabase. Clerk’s UX is better but you’re paying for it; Supabase Auth is good enough for most B2C SaaS.
  • Resend + Mailgun → Loops: if you want transactional + marketing in one tool with a campaign builder, Loops fills both roles for SaaS-style emails.

Common gotchas

  • Stripe webhooks need a public endpoint, Vercel preview URLs work for testing but production needs a stable URL with idempotency handled correctly.
  • MongoDB free-tier instances pause when idle. Fine for personal projects, awkward when a real customer hits a cold-start delay.
  • Clerk’s pricing scales with monthly active users. Past ~10k MAU the bill matters; some teams switch to Supabase Auth at that point.

Tags

In this stack

8 tools
Vercel

Frontend-first hosting with the best Next.js developer experience. Vercel handles deployment and hosting, often with a global edge network and zero-config CI/CD.

Used here for: Hosts the Next.js app. Zero-config deploys + previews per PR, what ShipFast itself recommends out of the box.

GitHub

Industry-standard Git hosting with Copilot, Actions CI/CD, and the largest dev community. GitHub handles version control and team collaboration, branches, pull requests, code review, CI/CD, and project knowledge.

Used here for: Source control plus the deploy webhook into Vercel. Marc Lou's tutorials assume this pairing.

MongoDB Atlas

Managed MongoDB document database with Atlas Search and Realm sync. MongoDB Atlas provides the storage, APIs, and runtime that web and mobile apps rely on, removing significant amounts of glue code.

Used here for: Document store for users, plans, and payment records. Free tier covers most launches; the schema-less default is friendly to indie hackers iterating on data shape.

Clerk

Modern auth with pre-built UI components and organization/multi-tenancy support. Clerk handles user identity, sign-in flows, sessions, organisations, and account management.

Used here for: Sign-in, social auth, organisations, MFA. ShipFast originally shipped with NextAuth; Clerk is the modern fast-path that includes hosted UI you don't have to design.

Stripe

Developer-first payments with Billing, Connect, and Radar. Stripe handles online payments, checkout, subscriptions, billing, and compliance.

Used here for: Subscriptions and one-time payments. Marc Lou's Stripe + webhook integration is the canonical recipe in this corner of the indie SaaS world.

Resend

Developer-first transactional email with React Email integration. Resend handles transactional or marketing email, sending, deliverability, templates, and reputation.

Used here for: Transactional email, receipts, magic links, password resets. Cheap, dev-friendly, dead-simple API.

Mailgun optional

API-first email delivery with flexible send-time optimization. Mailgun handles transactional or marketing email, sending, deliverability, templates, and reputation.

Used here for: Optional bulk/marketing sender if Resend's plan caps get tight or you start running drip campaigns at volume.

Sentry

Application error tracking and performance monitoring.

Used here for: Error monitoring. Set this up before you launch so the first user-facing 500 is something you find out about, not something a customer reports on Twitter.

Related