NextStarter — Production-Ready SaaS Starter (Next.js 16 · Supabase · Stripe)
Freev1.0.0A complete SaaS foundation — authentication, teams, Stripe billing, admin, moderation & transactional email — wired together, designed, and tested so you launch instead of plumb.
NextStarter — Production-Ready SaaS Starter (Next.js 16 · Supabase · Stripe)
NextStarter 1.0.0.zip · 3.9 MB
Free forever · MIT license · Personal license key
Overview
NextStarter is a complete, opinionated foundation for shipping a SaaS product —
the kind of starter that gives you the boring parts so you can build the point.
It was built phase by phase as a real product would be: database and auth first,
then authorization, then the UI, billing, teams, and the operational surface
(admin, moderation, contact, email, notifications, security hardening) — with
every phase verified end-to-end against a live database.
You get **both individual accounts and teams/organizations**: a user dashboard
with profile/security/billing settings, org workspaces with roles, invitations
and org-scoped content, plus an admin panel for managing users, organizations,
subscriptions, feature flags, settings, and an audit log. The marketing site is
included too — landing page, pricing (driven by a single plan config), blog,
FAQ, contact form with spam protection, and a full set of legal pages with a
cookie-consent banner.
Everything is designed to be **extended, not rewritten**: swap in your own
domain models via Prisma, wire your Stripe price IDs through environment
variables, drop in new React Email templates, and reuse the component library
and server actions as your blueprint.
What's included
- **Authentication (Auth.js v5)** — Google OAuth + email/password, email
verification, password reset, JWT sessions with "sign out everywhere"
invalidation, role/status baked into the session token
- **Authorization (RBAC)** — platform roles (User/Moderator/Admin), per-org
roles (Owner/Admin/Member), a server-only DAL that re-checks every action,
permission maps, ownership/IDOR protection, optimistic cookie-only redirects
- **Teams & organizations** — multi-tenant workspaces, email invitations,
role management, org switcher, ownership transfer, cascade-safe deletion
- **Billing (Stripe)** — Free/Pro/Team plans (monthly + annual), Checkout
Sessions, Customer Portal, webhooks with idempotency, subscriptions synced to
the DB, plan-gated features
- **Admin panel** — MRR/signups dashboard, user/org/subscription management,
feature flags, app settings, audit-log viewer
- **Moderation** — content reporting, moderation queue, hide/warn/suspend,
resolve/dismiss, with notifications + email to affected users
- **Contact & support** — public form (honeypot + rate limiting), admin inbox
with reply-by-email
- **Transactional email** — React Email templates (verify, reset, invite,
receipts, payment-failed, contact), Resend integration, console-logged
fallback in dev
- **Notifications** — in-app bell + inbox, per-category email preferences,
mandatory security/moderation alerts
- **Marketing site** — landing, features, pricing (plan-config driven), blog,
FAQ, contact, help
- **Legal pages** — Terms, Privacy, Cookies + consent banner, AUP, Refunds,
DPA, Subprocessors
- **Design system** — hand-built Tailwind v4 components (no Radix): buttons,
dialogs, dropdowns, tabs, toasts, forms, data tables, light/dark themes
- **Security hardening** — CSP + security headers, rate limiting, env-var
validation, no secrets in the client bundle
- **Testing** — Playwright E2E suite: auth, access control, billing,
moderation, contact, organizations
Get started
Download the ZIP
Unzip & install
Extract, then run npm install
Run it
npm run dev and start shipping
Basic usage
File structure
nextstarter/
├── prisma/ # Database layer
│ ├── migrations/ # SQL migrations (applied via `prisma migrate`)
│ ├── schema.prisma # Prisma schema — all models & enums
│ └── seed.ts # Idempotent demo seed (`npm run db:seed`)
├── public/ # Static assets
├── screenshots/ # App screenshots (for your docs)
├── src/
│ ├── app/ # Next.js App Router routes
│ │ ├── (auth)/ # sign-in, sign-up, verify-email, forgot/reset password
│ │ ├── (legal)/ # terms, privacy, cookies, acceptable-use, refunds, dpa, subprocessors
│ │ ├── (marketing)/ # landing, pricing, features, blog, about, faq, contact, help
│ │ ├── admin/ # admin panel: overview, users, orgs, subscriptions,
│ │ │ # contact, moderation, audit, flags, settings
│ │ ├── api/ # route handlers: auth, webhooks/stripe, notifications, health
│ │ ├── dashboard/ # user dashboard: overview, billing, posts, organizations, settings
│ │ ├── invitations/ # org invitation accept page
│ │ ├── moderation/ # moderation queue (reports, hide, warn, suspend)
│ │ ├── styleguide/ # hidden UI component showcase (QA)
│ │ ├── layout.tsx # root layout: fonts, theme, toaster, consent banner
│ │ ├── sitemap.ts, robots.ts, manifest.ts, opengraph-image.tsx
│ │ └── …
│ ├── components/ # React components
│ │ ├── ui/ # primitives: button, dialog, dropdown, table, toast, form…
│ │ ├── auth/ dashboard/ admin/ moderation/ marketing/ legal/
│ │ ├── notifications/ organizations/ theme/ layout/
│ │ └── …
│ ├── emails/ # React Email templates (verify, reset, invite, receipts…)
│ ├── hooks/ # custom hooks (overlays, floating positioning, theme…)
│ ├── lib/ # server logic
│ │ ├── dal.ts # server-only data-access layer + auth gates
│ │ ├── db.ts # Prisma client singleton
│ │ ├── auth.ts # Auth.js v5 config (in src/auth.ts)
│ │ ├── billing.ts, stripe.ts, checkout.ts, plans.ts
│ │ ├── audit.ts, permissions.ts, moderation.ts, organizations.ts
│ │ ├── notifications.ts, mail.ts, tokens.ts, rate-limit.ts
│ │ ├── env.ts # zod env validation
│ │ └── …
│ ├── types/ # ambient types (next-auth augmentation)
│ ├── generated/ # generated Prisma client (gitignored)
│ ├── auth.ts # Auth.js v5 configuration
│ └── proxy.ts # optimistic cookie-only redirects
├── tests/ # Playwright E2E suite
│ ├── e2e/ # specs: auth, billing, moderation, orgs, contact, access
│ ├── helpers/ # constants + DB helpers
│ ├── auth.setup.ts # authenticated storage-state fixtures
│ └── global-setup.ts / global-teardown.ts
├── playwright.config.ts # E2E config (auto-starts dev server)
├── prisma.config.ts # Prisma 7 CLI config (env loading, seed command)
├── next.config.ts # security headers, CSP, image allowlist
├── eslint.config.mjs
├── package.json
└── README.mdMIT license
Free for personal and commercial use.
NextStarter — Production-Ready SaaS Starter (Next.js 16 · Supabase · Stripe) is free. Grab it.
A 3.9 MB ZIP, signed-in download, instant license key. The rest of the library is free too — explore more scripts.
Keep exploring
More free templates & the Pro vault

Paidly — Invoice Generator
Paidly is a monorepo-shaped, production-grade SaaS starter built on **Next.js (App Router)** + **TypeScript** that ships a complete **enterprise Invoice Generator** product out of the box. Manage clients, emit gap-free invoices with tax-inclusive/exclusive VAT & GST, chase overdue balances with automated dunning, automate recurring invoicing, collect via Stripe "pay now" links, let clients pay through a token-gated public portal, and integrate with anything through a signed REST API with HMAC webhooks. It also includes everything a real SaaS needs beyond the product surface: email/password **and** Google OAuth (Auth.js v5), multi-tenant **organizations** with role-based permissions, FREE/PRO/TEAM **plan entitlements** via Stripe, branded transactional email (Resend + react-email), an **admin support & moderation panel**, audit logging, a self-serve REST API panel, analytics dashboards, and CSV reports. Everything is scoped to a **workspace** (your personal account or an organization), and money is handled as **integer minor units with BigInt half-up rounding** end-to-end — no float drift.
The Pro vault
You've got the free stuff. Unlock the full vault.
Premium templates — full-stack boilerplates (auth, billing, admin panels) at a fixed one-time price. Pay once, keep the template and your license key forever.

Comments
Questions, feedback and experiences from members who shipped withNextStarter — Production-Ready SaaS Starter (Next.js 16 · Supabase · Stripe).
No comments yet
Be the first to share your experience with this template.
Join the conversation
Sign in to leave a comment on this template.
Sign in to comment