Transactional email
Resend + React Email. Welcome, subscription active, payment failed, magic link, team invitation — five real templates, previewable with npm run email:dev.
A Next.js 15 SaaS with auth, Stripe billing, teams, API keys and an admin panel — shipped with AGENTS.md, Cursor rules and an MCP server, so Claude, Codex and Cursor read your repository instead of guessing at it. Seven themes. Eight languages. 128 tests.
One-time payment · lifetime updates · full source, no runtime dependency on us
Your workspace, its members and their roles.
4 of 5 seats used · 1 pending
Live, not a screenshot — see all seven themes. Ship one with one environment variable.
Real output, this repository. The audit reports its own gaps — so when it says nothing, that means something.
One Next.js 15 app, App Router, server components, TypeScript strict. A
CLAUDE.md that documents the actual
patterns — not a summary of the README — plus Cursor and Copilot instruction files, so
your assistant knows the conventions from the first prompt instead of inventing new ones.
Clerk handles sessions, social login, SSO and the password reset flow you would otherwise write twice. What the kit adds is the part that is actually yours: middleware that protects every locale of every private route, and server helpers that fail closed.
Welcome back
Sign in to continue to Acme.
Three plans configured, monthly and yearly. Checkout, the customer portal, and the four webhook events that actually matter — including the subscription-deleted case most kits forget, which is how a churned customer keeps their paid plan forever.
Current plan
Renews on 1 October 2026
Workspaces, OWNER › ADMIN › MEMBER re-checked in the database on every mutation, and email invitations tied to one address. Seats come from the plan and are enforced: a pending invitation holds a seat, so a free workspace can't invite twenty people and discover the limit when they all accept.
3 members · 1 pending invitation
| Member | Role |
|---|---|
ALAda Lovelaceada@acme.com |
Owner |
GHGrace Hoppergrace@acme.com |
Admin |
ATAlan Turingalan@acme.com |
Member |
?katherine@acme.comExpires 8 September 2026 |
Invited |
A key is shown once and stored only as a SHA-256 — a dump of the table grants nobody
anything. Keys are gated on the plans that advertise API access, read straight off the
same PLANS object your pricing page
renders, so the table and the gate can't drift apart.
sk_live_7Ka9Xf••••••••••••sk_live_Qm2Vd0••••••••••••Most kits translate the landing page and stop at the login wall. Here the whole signed-in product is localized: dashboard, settings, billing, admin, teams, API keys. Dates, numbers and currency follow the request locale instead of a hard-coded one.
app.organization.seatsUsed
Not seven hues — seven complete themes. Each redefines the whole token set for light
and dark, corner radius included, so
they read as different products rather than the same one tinted. Nothing in a component
names a colour, which is why NEXT_PUBLIC_THEME
can change all of it.
A real admin area, not a placeholder: every user, their plan and role, estimated MRR, active subscriptions, churn and new signups this month — computed from your own database, with no third-party dashboard to wire up first.
| User | Plan | Signed up |
|---|---|---|
ALAda Lovelaceada@acme.com | Business | 2 September 2026 |
GHGrace Hoppergrace@acme.com | Pro | 31 August 2026 |
ATAlan Turingalan@acme.com | Free | 30 August 2026 |
Every one of these is wired and queried. None of them is a model sitting in an empty table waiting for you to finish it.
Resend + React Email. Welcome, subscription active, payment failed, magic link, team invitation — five real templates, previewable with npm run email:dev.
Frontmatter, tags, drafts, full metadata, and posts in the sitemap. Content SEO you can start on the day you launch, not the quarter after.
Dynamic sitemap with every locale, robots.txt, canonical URLs, hreflang, Open Graph and Twitter cards, JSON-LD. Discoverable from the first deploy.
Role hierarchy, seat maths, key hashing, webhook signatures, plan gating, locale parity. Written to catch the mistakes that cost money, not to pad a number.
CSS variables on the shadcn/ui token contract, so npx shadcn add drops components in already themed. System-aware with a manual toggle.
Vercel in three clicks, or the included Dockerfile and docker-compose for your own box. No proprietary runtime, no platform lock-in, no phone-home.
Every boilerplate landing page is a list of claims. This one ships the command that checks them — and it was built to fail, out loud, when the code and the promise disagree.
That was real output from this repository. So the API keys got built, the env vars got wired, and the audit was run again:
Delete the blog, drop the admin panel, strip a plan — then run it again. It names what you left dangling.
npm run audit -- --strict exits 1 on any finding. --json gives a script the same data.
It reads the files on disk: sizes, routes, models with how many times the code queries them, env vars cross-checked against .env.example.
A comparison you can check. Every competitor cell below is what their own site said on 1 September 2026; the links go straight to them. Where we are behind, the table says so — you are going to open both tabs anyway.
| SaaS Starter | supastarter | ShipFast | |
|---|---|---|---|
| Price (single dev) | $149 once | €299 once | $199 once |
| Shape | One Next.js 15 app | Monorepo, several apps | One Next.js app |
| Auth | Clerk | better-auth (self-hosted) | Google OAuth & magic links |
| Payments | Stripe | Stripe, Lemon Squeezy, Polar, Creem, Dodo | Stripe, Lemon Squeezy |
| Database | Prisma + PostgreSQL | Prisma or Drizzle | MongoDB or Supabase |
| Teams & roles | Yes, with enforced seats | Yes | Not advertised |
| API keys | Yes, hashed + endpoint | Not advertised | Not advertised |
| Languages | 8, app included | Yes | Not advertised |
| Admin panel | Users, MRR, churn | SaaS Admin UI | Not advertised |
| Tests shipped | 95 unit tests (Vitest) | Playwright E2E configured | Not advertised |
| Self-audit command | npm run audit | No | No |
| Background jobs, S3, notifications | Not included | Included | Not advertised |
| Error monitoring (Sentry) | Not included | Included | Not advertised |
The honest summary: supastarter is a larger kit — a monorepo with modules this one does not have, at twice the price. If you need file storage, background jobs and Sentry pre-wired, buy that. This kit is one app you can read in an afternoon, where every claim on this page is checkable by a command in the repo. That is the trade.
More angles, at length: the 2026 comparison of Next.js SaaS starter kits, the template walkthrough with the real repo tree, free & open-source options and what "free" costs, Clerk + Prisma vs Supabase, and what buying a kit costs you in shadcn registry compatibility.
No subscription, no seat count, no runtime dependency on us. You get the repository.
For your own product.
One-time · lifetime updates
For agencies and serial builders.
One-time · lifetime updates
Not sure? Open the live demo and click through the dashboard, the billing page and the team screen before you decide.
Auth, billing, teams, API keys, admin, emails, eight languages — and a command that proves it.