v2.0.0 — a full rewrite
v2 is a new starter built from scratch, not an upgrade of v1. It keeps the goal (auth, payments and content ready on day one) and changes the whole foundation around one idea: every part is a module you can switch off or delete for good.
Coming from v1? There is no migration path: the database, auth and content layers are all new. v1 stays available on the
v1.0.0tag.
New stack
| v1 | v2 | |
|---|---|---|
| Framework | Next.js 14, React 18 | Next.js 16 (App Router, Turbopack), React 19 |
| Database | Prisma | Neon Postgres + Drizzle ORM |
| Auth | Auth.js (NextAuth v5 beta) | Better Auth with organizations |
| Payments | Stripe | Stripe Checkout, customer portal, webhooks |
| Content | Contentlayer | MDX with Fumadocs |
| UI | Tailwind CSS v3, shadcn/ui | Tailwind CSS v4, shadcn/ui, Base UI |
Modules
auth,billing,admin,docs,blogandchangelog, each one a flag inconfig/features.ts.- A module stays off while its dependencies or its environment variables are missing: its routes 404, its links disappear and its endpoints are refused.
- A dev panel (bottom-right corner) shows the state of every module and service.
pnpm modules:prune <module...>deletes a module's routes, components, content and packages. Without--yesit only prints what it would remove.
Auth and organizations
- Google sign-in, with one-tap sign-in for signed-out visitors.
- One organization created per account, with billing attached to it.
- Settings for the organization (name, slug) and the profile (display name, account deletion).
Billing
- Plans read live from Stripe: no hardcoded prices, cached and refreshed by the webhook.
- Checkout from the pricing page, even when signed out (sign up, then the checkout resumes).
- Billing page with the current plan, upgrade and customer portal.
- Subscription state resynced from Stripe on every visit to the billing page, without waiting for the webhook.
Dashboard
- New shell: fixed sidebar, quick search (
Fkey), a settings mode and a top bar. - Admin panel preview with sample users (real user management ships with Pro); platform admins get the top plan without paying.
- Locked preview pages for the Pro features, easy to delete when you ship your own product.
- Toast feedback on every save, error and sign-out.
Content and marketing
- Landing page, pricing page with FAQ, terms and privacy pages.
- Docs with setup guides for Stripe, Google OAuth and deployment.
- Blog and changelog with covers, pagination and a table of contents.
- Metadata, generated Open Graph image,
sitemapandrobots.
Getting started
npx create-next-app my-saas --example "https://github.com/mickasmt/next-saas-stripe-starter"Then follow the README.
Pro
A paid version adds onboarding, transactional emails, team management and seat-based billing on the same foundation. See the Pro section of the README.