For a solo founder shipping a subscription web app

The lean SaaS stack

Everything a solo founder needs to charge money by Friday — and nothing else.

These tools fit because they all speak TypeScript, all deploy out of one Next.js repo, and each owns exactly one job so you're never reconciling overlapping features. The seams between them are the most documented integrations on the internet — Clerk in Next middleware, Stripe webhooks writing to Postgres, Drizzle over Supabase — so you're wiring together well-worn paths, not inventing architecture. And every layer has a real free tier, so the whole stack costs nothing until you have paying users.

The stack

  • FrameworkNext.jsOne TypeScript codebase for UI, API routes, and server actions — the default React meta-framework and Vercel's native target.
  • StylingTailwind CSSUtility classes plus copy-paste components you own, so you ship a polished UI without inheriting a component-library dependency.
  • AuthClerkDrop-in sign-in, sessions, and social login with prebuilt React components and Next middleware — the fastest route from zero to logged-in users.
  • DatabaseSupabaseManaged Postgres with a genuine free tier (plus file storage if you need it) — a standard database you can migrate off later, not a proprietary one.
  • ORMDrizzle ORMTypesafe SQL query builder with end-to-end inference and lightweight migrations, thin enough that you still think in SQL.
  • PaymentsStripeSubscriptions, hosted Checkout, the customer billing portal, and webhooks — the boring, correct default for recurring revenue.
  • EmailResendTransactional email — receipts, password resets, magic links — with a clean API and React Email templates.
  • HostingVercelGit-push deploys, a preview URL per pull request, and serverless/edge functions with zero config for Next.js.

Tradeoffs

  • Clerk is the fastest auth to stand up but the first bill that stings — its per-MAU pricing scales with success. Better Auth or Supabase Auth are the cheaper, self-managed escape hatches if you outgrow it, at the cost of wiring things Clerk gives you for free.
  • Using Supabase as just-Postgres plus Drizzle ignores half of what Supabase sells (its own client, row-level security, realtime). That's fine — but pick one query path. Straddling Drizzle and the Supabase SDK means two mental models and two sources of truth.
  • This is a stack of rented backends. You get velocity now and vendor lock-in later — Vercel and Clerk especially. The portable parts are Postgres and Next.js itself; the glue between the SaaS layers is not, so a pricing change upstream is your problem.
  • Next.js plus Vercel is the golden path precisely because they're coupled. You can self-host Next.js, but you lose the zero-config deploys and preview URLs that made Vercel worth choosing in the first place.

Cost

$0 to launch on free tiers; ~$70/mo once you outgrow them (Vercel Pro $20 + Supabase Pro $25 + Clerk $25), plus Stripe's ~2.9% + 30¢ per charge. Resend and Drizzle stay free well past launch.