Ships with its published code review Read it first

The SaaS starter that’s already been code‑reviewed.

Multi‑tenant Next.js 16, Better Auth, Stripe and Prisma 7. Ships with its own published audit, subdomain and path tenancy, and a playbook your AI agent follows instead of improvising.

tests
980+
Claude Code skills
11
specialist reviewers
6
tenancy modes
2
Stack
Next.js 16 · Better Auth · Stripe · Prisma 7

01 The problem

AI writes code fast. It doesn’t write the boring 70% correctly.

Your agent can scaffold a dashboard in minutes. It will also happily skip tenant isolation, replay a Stripe webhook twice, and forget the audit trail. A reviewed foundation matters more in the agent era, not less.

What agents skip What it costs you
  1. 01 Tenant isolation — One forged header and Acme sees Globex’s data.
  2. 02 Webhook idempotency — Stripe retries; your seat count doubles.
  3. 03 Audit trails — The first enterprise security review asks who banned whom.
  4. 04 Auth edge cases — 2FA redirects, invite acceptance, banned sessions.

02 Pillar 1 · Audited, not just shipped

It ships with its own code review. Every finding is tracked.

Six specialist reviewers graded five dimensions and cited specific file:line findings. A status update maps each one to fixed, roadmap or documented. Read it before you buy.

REPO_REVIEW.md Possible outcomes for each finding: FixedRoadmapDocumented

Scorecard

Product
B−
Architecture
B+
Security
B
Docs
A−
Testing
B−

Grades are from the v0.3.0 review on 2026‑06‑09. The review’s status update records the fixes shipped since.

Selected findings

  1. Billing · P0 · src/app/(app)/settings/actions.ts:90 Fixed

    Deleting a workspace left its Stripe subscription billing

    Delete now cancels the Stripe subscription first, and the webhook tolerates unknown tenants instead of retrying forever.

  2. Security · src/features/tenants/context.ts:129 Fixed

    Tenant suspension wasn’t enforced

    The central guard now rejects any tenant whose status isn’t ACTIVE, so every tenant surface inherits it.

  3. Testing · .github/workflows/docker.yml:114 Fixed

    Docker images published without waiting for CI

    Publishing now depends on the checks job, so a red build can’t auto-deploy to production.

  4. Security · docker-compose.infra.yml:7 Documented

    Dev compose file defaults the database password

    Production compose fails closed without POSTGRES_PASSWORD. The infra file keeps a default and is documented as local development only.

Read the full review

03 Pillar 2 · Multi‑tenant done right

Subdomains or paths. One codebase, one env var.

Start on path mode with no DNS work. Flip to subdomains when you buy the wildcard cert. Either way, the server cross‑checks the URL slug against the resolved tenant.

Try both. The app code doesn’t change.
Tenant URL
acme.yourapp.com/settings

Wildcard DNS + cert. Custom domains map to the same tenant.

.env
# the only line that changes
[TENANCY_MODE]=subdomain
Request flow every request, both modes
  1. 1 · proxy
    Resolve tenant
    from host or /t/:slug
  2. 2 · header
    Set tenant header
    stripped from inbound requests
  3. 3 · server
    Cross‑check slug
    URL slug must match resolved tenant
  4. 4 · render
    Membership + role gate
    forged header → rejected

04 Pillar 3 · Built for AI agents

Your agent gets a senior engineer’s playbook.

The repo tells your agent how this codebase works, gives it repeatable recipes for the common jobs, and tells it when it got something wrong.

  • AGENTS.md + CLAUDE.md set the rules
  • PATTERNS.md gotchas and decision rules
  • 11 skills do the common jobs the same way every time
  • 980+ tests catch the agent when it breaks something

Works with Claude Code natively. Cursor and Codex read AGENTS.md.

claude — my-saas illustrative
> /add-tenant-page invoices
⏺ Reading PATTERNS.md → “Tenant pages”, “Role gates”
⏺ Create app/(app)/t/[slug]/invoices/page.tsx
tenant guard + membership check, server component
⏺ Add nav entry, gated to Admin
⏺ Add strings to messages/en.json, es.json
⏺ Add co‑located test
> /run-quality-gates
✓ biome ✓ tsc ✓ vitest ✓ build
>

11 Claude Code skills

Common jobs, done the same way every time.

  • /add-tenant-page
  • /add-role-gate
  • /add-feature-flag
  • /add-subscription-plan
  • /add-prisma-migration
  • /add-server-action
  • /add-admin-page
  • /add-theme
  • /add-mdx-content
  • /add-error-reporting
  • /run-quality-gates

05 What’s inside

Everything a B2B SaaS needs before feature one.

Stack

  • Next.js 16 · App Router · Turbopack
  • React 19 · TypeScript strict
  • Prisma 7 + PostgreSQL
  • Tailwind 4 · Base UI · shadcn/ui
  • Biome · Vitest · Playwright

Auth · Better Auth

  • Email/password, magic link
  • Google, GitHub, OIDC SSO
  • Two‑factor (TOTP)
  • Admin plugin, bans

Billing · Stripe

  • Checkout + Customer Portal
  • Per‑seat Enterprise plans
  • Seeded with live member count
  • Trials · transactional webhooks

Multi‑tenancy

  • Workspaces · subdomain or path
  • Invitations with resend
  • Owner / Admin / Member
  • Custom domains · ⌘K search

Superadmin panel

  • Users, tenants, bans
  • Feature flags
  • Audit log on every sensitive mutation
  • Streamed CSV exports

Platform

  • Job queue
  • HMAC‑signed outbound webhooks, retries, delivery log
  • Notifications + email digests (Resend)
  • S3 / R2 / MinIO or local uploads

i18n & theming

  • English + Spanish, everywhere
  • Per‑account language
  • 4 palettes × light/dark, no flash
  • Reduced motion · skip link

Marketing & deploy

  • Home, pricing, MDX blog + changelog
  • Legal, sitemap, robots
  • Vercel guide · Docker + compose
  • Upgrade guide for new versions

06 See it running

Click around the real thing.

acme.yourapp.com/dashboard
Tenant dashboard

Plan, seats and pending invites at a glance, scoped to the current workspace.

[Screenshot: Tenant dashboard]

Live demo [DEMO URL] superadmin admin@example.com tenant alice@example.com password password

07 Honest comparison

How it stacks up.

Every starter here has real customers and does its job. “?” means we couldn’t verify it from public pages — not that it’s missing.

Feature comparison of Next.js SaaS starter kits
This template MakerkitsupastarterShipFastVercel saas‑starter
Multi‑tenancy Subdomain + path Teams / orgs Organizations ? Teams, Owner/Member roles
Auth library Better Auth Supabase Auth or Better Auth (by kit) Better Auth NextAuth or Supabase Custom JWT
Admin panel Yes Yes Yes ? Not found
Audit log Yes ? ? ? Activity log
Feature flags Yes ? ? ? Not found
Outbound webhooks HMAC, retries, log ? ? ? Not found
i18n EN + ES Yes Yes ? Not found
Tests 980+ unit · E2E Playwright E2E Playwright E2E ? ?
Published code review Yes Not found Not found Not found Not found
AI agent tooling 11 Claude Code skills + AGENTS.md AGENTS.md, MCP server, skills Agent skills + AGENTS.md ? Not found
Price From $99 one‑time From $227 one‑time (list $349) From $349 one‑time From $199 one‑time Free (MIT)

Compared November 14, 2026 from vendor sites and repositories. Prices shown are the current cheapest tier and some vendors discount them. Prices and features change — check each vendor’s site before you decide.

08 Fit check

Buy it if this sounds like you. Skip it if not.

Built for

  • Indie founders and small teams building B2B SaaS that sells to teams: workspaces, roles, per‑seat billing.
  • Developers on Claude Code, Cursor or Codex who want the agent to extend the codebase, not reinvent it.
  • Agencies shipping several client SaaS products on one stack.

Not for

  • No‑code builders, visual CMS or page builders.
  • Single‑user B2C weekend projects. A lighter starter fits better.
  • Teams that need edge rendering or multi‑region databases out of the box.

Why I built it

Jorge Barnaby

I’ve rebuilt auth, billing and tenancy for every SaaS I’ve started. Now I spend my days helping 200+ engineers adopt AI coding agents, and I see where agents go wrong: the boring, security‑critical plumbing. So I built the foundation once, had it reviewed, and wrote down the rules so your agent follows them too.

Jorge Barnaby Principal Software Engineer, AI adoption & developer experience X @jbarnaby GitHub

09 Pricing

Pay once. Get every update.

Full source in a private GitHub repo. No subscription, no per‑project fees.

Solo

One developer, your own products.

$99 one‑time
Get Solo
  • Full source · private repo
  • Lifetime updates
  • Unlimited projects you own
  • Docs, recipes, 11 Claude Code skills
  • 1 developer seat

Agency

Ship it for clients.

$399 one‑time
Get Agency
  • Everything in Team
  • Client‑owned projects allowed
  • Unlimited developer seats
  • Transfer to client on handover

Compare plans

What each license includes
SoloTeamAgency
Full source · private repo Included Included Included
Lifetime updates Included Included Included
Docs, recipes, 11 Claude Code skills Included Included Included
Unlimited projects you own Included Included Included
Developer seats 1 Up to 5 Unlimited
Priority issues on the repo Not included Included Included
Client‑owned projects allowed Not included Not included Included
Transfer to client on handover Not included Not included Included

No refunds once repo access is granted, so try the live demo and read the code review first. Licensed, not sold: you may not resell or redistribute the template itself. Read the license.

10 FAQ

Questions engineers ask.

Still deciding? Open the live demo or read the code review first. Anything else: get in touch.

Why buy a starter when Claude Code can write one?

It can write one. It can’t review one. You’d spend days prompting, then still own the tenant isolation, webhook idempotency and auth edge cases nobody checked. This kit has been reviewed, has 980+ tests, and gives your agent the rules to extend it safely. Use the agent for your product, not your plumbing.

How do I get updates?

Pull from the private repo. The upgrade guide explains how to merge new template versions into your project, and the public changelog says what changed and why.

Can I use it for client work?

Yes, with the Agency license. Solo and Team cover unlimited projects that you own, but not projects owned by a client. The Agency license adds client-owned projects and lets you transfer the project to the client on handover.

Which hosting does it support?

Anything that runs a Node standalone build and PostgreSQL. There’s a Vercel guide, plus Docker images and compose files with Traefik and Watchtower for self‑hosting. Edge runtime and multi‑region databases aren’t supported out of the box.

Is there a free version?

Not at the moment. The live demo and the published code review are both public, so you can judge the product and its quality before you buy.

What’s the license?

A one‑time commercial license with lifetime updates. Build unlimited products you own; you can’t resell or redistribute the template itself. Read the full license.

Do you offer refunds?

No refunds once repo access is granted, because source code can’t be returned. That’s why the live demo and the full code review are public: judge it first. If something is genuinely broken and we can’t fix it, get in touch and we’ll make it right.

Do I need to know Next.js 16?

You should be comfortable with React and the App Router. The patterns are documented in PATTERNS.md, and the skills handle the common changes, so you won’t need to learn every Next.js 16 detail on day one.

What if I don’t need multi‑tenancy?

Then a lighter starter is probably a better fit, and we’d rather tell you now. If you expect to sell to teams later, starting multi‑tenant is far cheaper than retrofitting it.

A security‑audited, multi‑tenant SaaS starter on Next.js 16, built for AI agents to work on safely.

980+ tests · Published code review · Next.js 16 · Better Auth · Stripe · Prisma 7