Best Next.js SaaS starter kits in 2026, compared honestly

Every "best SaaS starter" list is the same: a grid of feature bullets you can't check until after you've paid. This one is different in one specific way. It publishes the actual npm run audit output of the kit it ends up recommending — red findings and all — so you can verify the claims before spending a cent. I also flag where the free option or a bigger paid kit beats mine.

Last updated: Kits examined: nextjs/saas-starter, Makerkit, Supastarter, SaaS Starter Live demo

Disclosure, up front: I build SaaS Starter, one of the four kits below. So read the parts where I recommend a competitor or list my own gaps as the load-bearing ones — a vendor talking up rivals and flaws is at least being expensive with their own credibility. Everything I claim about my kit is reproducible: clone it, run the audit, and the numbers on this page should match.

The short version

Pick by scope, not by star count. If your goal is to learn how auth and billing fit together, clone the free official nextjs/saas-starter — it's MIT, readable, and paying for a shortcut would defeat the point. If you need multi-tenant teams, merchant-of-record billing and background jobs on day one, Makerkit and Supastarter carry more surface area than I do and I won't pretend otherwise.

SaaS Starter is the pick when you want one opinionated, fully-wired, single-tenant kit with nothing half-built pretending to be done — and you'd like to verify that before paying. It's the only kit here that ships an audit tool and publishes its output.

Why most of these comparisons are worthless

Search "best Next.js SaaS starter" and you'll find twenty pages that all copy the same feature grid: auth ✅, Stripe ✅, i18n ✅, tests ✅. Green check-marks the author never ran. The dirty secret of paid boilerplates is that "Stripe billing" can mean a production webhook with signature verification and plan sync, or it can mean a checkout button and a TODO. The bullet reads identically either way, and you find out which one you bought after the refund window on some of these has closed.

So the honest question isn't "who has the longest list". It's "whose claims can I check before I pay". For an open-source repo that's easy — read the code. For a paid, private repo it's usually impossible, which is exactly why the free official starter feels like the safe default even when it does less.

My answer to that problem is a script called npm run audit. It walks my own codebase and prints what's wired, what's protected, and — critically — what's declared but never called. The full output is further down this page, unedited. Nobody else in this search result shows you theirs.

Two adjacent decisions get their own deep-dives so this page stays focused: if free is the constraint, see the named free/open-source repos and what "free" really costs in hours; if you're weighing Supabase, see Clerk + Prisma vs Supabase, decided honestly.

The four kits, described plainly

nextjs/saas-starter — the free official one

MIT · free

The reference implementation from the Next.js team. Postgres, Drizzle, Stripe and real shadcn/ui. Its own README calls it "intentionally minimal and to be used as a learning resource". It has Owner/Member roles and an activity log — genuinely more team structure than my kit — but no admin metrics, no transactional email, no blog, no tests and no i18n. As of 16 July 2026 it carried 15,957 stars and its most recent commit was 11 December 2025, a CVE-2025-55182 security bump. Unmaintained is the normal resting state of a teaching repo; just know that keeping it current becomes your job.

Makerkit — the broad commercial kit

paid · check their site for price

A mature, wide-scope paid boilerplate. Markets multi-tenant teams with roles, several billing providers including merchant-of-record options, storage, and AI tooling. If you're building a team-seated B2B product and want that plumbing pre-built, it's a serious option and out-scopes me on breadth. I'm deliberately not quoting its exact price or star count here — those move, and I'd be asking you to trust a number I snapshotted once. Check their site; compare capability, not my memory of it.

Supastarter — the Supabase-leaning kit

paid · check their site for price

Another well-regarded paid kit, strong on organisations, provider-swappable auth and multiple billing back-ends, with Next.js and Nuxt variants. Same honest caveat as above: I'm comparing it on the capabilities it's known for rather than reciting figures I can't stand behind today. If teams and merchant-of-record billing are non-negotiable, put it and Makerkit on your shortlist ahead of me.

SaaS Starter — mine, the narrow-but-proven one

$149 / $299 · 30-day refund

Next.js 15 (stable, not a canary), Clerk auth, Stripe subscriptions with a billing portal and signature-verified webhooks, Prisma on Postgres, an admin panel that computes MRR and plan splits, an MDX blog, Resend with four React Email templates, 8 locales via next-intl, and 45 passing Vitest tests. Single-tenant. No teams, no merchant-of-record billing, no queue. The trade is deliberate: a smaller surface with everything actually finished, and a npm run audit command that will tell you where I cut a corner before you find it yourself.

The capability matrix, red cells included

Rows I can verify by cloning or reading a public repo carry a firm mark. Where a paid competitor's capability is well-established but I can't run their code, I mark it in their favour and say so. My column shows its losses in red — that's the whole point.

Feature comparison of four Next.js SaaS starter kits
Capability nextjs/saas-starter Makerkit Supastarter SaaS Starter
Price Free (MIT) Paid Paid $149 / $299
Read the source before buying Yes — public No — private No — private Partial — audit + demo published
Published audit of its own gaps No No No Yes — npm run audit
Multi-tenant teams / orgs Owner/Member + log Yes Yes No — User/Admin only
Merchant-of-record billing No — Stripe Yes — multi-provider Yes — multi-provider No — Stripe only
Admin panel with MRR metrics No Varies Varies Yes
i18n No Yes Yes Yes — 8 locales
Transactional email templates No Yes Yes Yes — 4 React Email
Automated tests shipped No Varies Varies Yes — 45 Vitest
Durable rate limiting (Redis) No Yes Yes No — in-memory only
Background jobs / queue No Yes Yes No

Four red cells in my own column. I'd rather you see them here than discover them on day two. The limitations panel below explains each one and what it means in practice.

Build versus buy, with the hours written down

Paid-kit landing pages love a big scary number — "save $12,000" is a common one. I won't use it, because I can't defend it and neither can they. Here's the honest version: an itemised count of the pieces you'd wire yourself to reach where SaaS Starter starts, with rough hours. These are estimates from having built this stack more than once, not a stopwatch reading. Your speed varies.

Estimated hours to build each piece from scratch
What you'd wire yourself Rough hours
Clerk auth + middleware + protected routes~10
Stripe: checkout, billing portal, webhook verification, plan sync~18
Prisma schema, Postgres, migrations, seed~6
Admin panel + MRR / plan-split queries~10
next-intl scaffolding across 8 locales~8
Resend + 4 React Email templates, wired to events~7
MDX blog pipeline~5
Vitest suite (45 tests) + config~8
Rate limiting, security headers, glue~5
Total, roughly~77 hours

Call it 70-ish hours once you subtract the parts you'd copy from memory. At a hobby rate of $50/hr that's about $3,500 of your evenings; at a $100/hr contractor rate it's $7,000. Against that, $149 for one project or $299 for unlimited projects is the trade. If your hourly value is genuinely near zero — you're learning, you have time, you enjoy the plumbing — then the maths says build it, and the free starter is your on-ramp. I mean that.

The one figure I'd push back on from any kit, mine included: the hours only count if the code actually works. A boilerplate that "saves 70 hours" but ships a half-wired webhook you spend 15 hours debugging saved you 55. That's the entire reason the audit below exists.

The receipts: SaaS Starter's own audit output

This is the unedited output of npm run audit run against the repo on 19 July 2026. It counts the code, lists every route and whether the middleware guards it, checks which Prisma models are actually queried, and reconciles declared environment variables against the ones the code reads. Then it prints its findings — including the unflattering ones. A buyer running the same command gets the same output.

  SaaS Starter — codebase audit
  ────────────────────────────────────────────────

  Size   (code = non-blank, non-comment lines)
  src/app          33 files    1659 code
  src/components   20 files    1223 code
  src/__tests__     7 files     334 code
  src/lib           8 files     320 code
  src/emails        5 files     259 code
  prisma            2 files      62 code
  ────────────────────────────────────────────
  total            81 files    3991 code

  Data model   (uses = Prisma client calls in src/)
  User            13 fields    23 uses
  ApiKey           7 fields     0 uses
  WaitlistEntry    3 fields     1 uses

  6 findings
   Model ApiKey is declared in schema.prisma but never
    called in src/. It ships as an empty table.
   NEXT_PUBLIC_GA_ID is read by code but missing from .env.example.
   NEXT_PUBLIC_PLAUSIBLE_DOMAIN is read but missing from .env.example.
   NEXT_PUBLIC_POSTHOG_KEY is read but missing from .env.example.
   ADMIN_USER_IDS is declared in .env.example but never read.
   NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY is declared but never read.

  These are gaps between what the code declares and what it runs.
  Re-run anytime: npm run audit

Read the top half and the claims on the home page hold up: 81 files, 3,991 lines of real code, an admin panel that queries the User model 23 ways, a working waitlist. Read the bottom half and you learn the exact seams before paying — chiefly that the ApiKey table is a dead scaffold today. I'd rather lose a sale to someone who needed API keys than sell them a table with nothing behind it.

That's the wedge over every other kit here. Their landing pages are unaudited by definition — you take the feature grid on faith and reconcile it with reality after the money's gone. Mine hands you the reconciliation up front.

What SaaS Starter is not (yet)

The four red cells in the matrix, spelled out, so nothing is a surprise on day two:

The ApiKey table is a dead scaffold

The Prisma model exists; nothing generates, hashes, scopes or verifies a key, and there's no UI. The audit flags it with 0 uses. If your product needs programmatic API keys, budget building that yourself.

Rate limiting is in-memory

Fine on a single long-lived instance; it resets on redeploy and doesn't coordinate across serverless instances. For production at scale, swap in Upstash or Redis. The seam is one file, src/lib/rate-limit.ts.

Stripe only, no merchant-of-record

Flat subscriptions through Stripe, no Lemon Squeezy / Paddle / Polar. If you sell globally and want the provider to own EU VAT and sales tax, a merchant-of-record kit is the safer buy.

Single-tenant, no teams

Roles are User and Admin. No organisations, no member invites, no per-seat billing. The free official starter and both paid rivals beat me here — if teams are a hard requirement, buy one of them.

None of these is hidden in a changelog you'd find after purchase. They're on the sales page, in the audit, and in the schema itself.

On the roadmap, labelled as not-yet-built

So you can judge trajectory without me faking present capability. These are directions, not promises with dates — and if any lands, it lands for existing buyers too, because updates are free for life.

Who's behind it, and what it's already running

SaaS Starter is built and maintained by KipDev — the same shop behind the tools linked in the footer below (a webhook toolkit, a cron monitor, a schema.org generator and others). The kit isn't a write-once-sell-forever template gathering dust: this very marketing site runs on the same stack, and the boilerplate gets the fixes as the network's own products surface edge cases in Stripe webhooks, i18n routing and email delivery.

I'm not going to stack fake testimonials here — a five-star wall of invented names would undercut the one thing this page is about. When there are real, named customers happy to be quoted, they'll go here with their names and what they shipped. Until then, the audit output and the live demo are the proof I'm willing to stand behind.

Questions buyers actually ask

So which one is actually the best? +

There's no universal winner. Learning the plumbing: the free official starter. Team-seated B2B with global tax: Makerkit or Supastarter. One opinionated single-tenant kit where everything is finished and you can verify it before paying: SaaS Starter. Pick by the scope you need, not by the length of a feature grid.

Is a paid kit worth it over the free official one? +

Only if you've wired this stack before and know the hours. My honest itemised count is around 70 hours for a fully-working single-tenant kit — $3,500 to $7,000 of contractor time. If you've never built auth and billing and want to learn, buy nothing and clone the free starter; you'd be paying to skip the education you're after.

What's the licence, and can I use it on more than one project? +

The $149 Starter licence covers one project; the $299 Unlimited licence covers as many as you like. Both include free updates for life — when the roadmap items above land, existing buyers pull them at no extra cost. Full terms are on the terms page.

What if it doesn't work for me? Refunds? +

30-day money-back guarantee, no questions asked — see the refund policy. The window exists precisely because it's a private repo and you can't read all the source first. The published audit and the live demo are there to shrink that risk before you ever pay.

Why Stripe only? What about global tax? +

The kit ships Stripe subscriptions with a billing portal and verified webhooks, and nothing else. If you sell worldwide and want the provider to handle EU VAT and US sales tax, a merchant-of-record kit like Makerkit or Supastarter is the honest recommendation over this one. A merchant-of-record adapter is on my roadmap but not built.

Is auth locked to Clerk? What about lock-in? +

Yes, auth is Clerk — a third-party service with its own pricing beyond the free tier. That's a real dependency and if self-hosted auth is a requirement, don't buy this. The upside is you skip building session handling, social login and SSO. The auth surface is isolated in src/lib/auth.ts, so swapping it is a bounded job rather than a rewrite.

Is it real shadcn/ui, or a lookalike? +

The components are hand-written on shadcn's token contract rather than generated by the CLI, but the CLI, registry and MCP all work against the repo. There's a whole page on that nuance, with the sixty-second test to prove it: Next.js SaaS starter + shadcn/ui, compatible not locked.

If "narrow but proven" is what you want

Poke at the live demo, run the numbers on this page against the repo after you buy, and if it doesn't hold up you have 30 days. $149 covers one project, $299 covers unlimited — both include updates for life. If teams or merchant-of-record billing are dealbreakers, go buy Makerkit or Supastarter with my blessing; if you're here to learn, clone the free official starter.

One-time payment · 30-day refund · Instant GitHub access · Read the docs before buying