Next.js templateLive

Multi-language SaaS Starter

Production-ready Next.js 16 SaaS template — 10 locales, 45 themed UI primitives, full auth + Stripe billing, admin panel, ⌘K palette, RSS feeds, feature-request board, 60+ shipped routes. Ship a real SaaS in days, not months.

$149$249

first 1000 buyers — then $249

7-day no-questions refund · Instant delivery

Who this is for

  • Indie devs shipping a real SaaS who do not want to spend two months on auth + Stripe + RLS + admin panel before their first paying customer.
  • Solo founders going multi-locale on day one — 10 pre-wired locales, hreflang, JSON-LD, Open Graph, and multi-currency Stripe (USD / EUR / GBP / VND) so you can charge in a buyer's home currency from launch.
  • Agencies building white-label SaaS dashboards for clients — production-grade RLS, audit log, runtime feature flags, branded admin shell, and a 45-primitive component library you compose into any vertical.

Tech stack

Everything is plain TypeScript + React. No runtime lock-in — you own the code.

Next.js 16React 19TypeScriptTailwind 4shadcn/uii18nextSupabaseStripePrisma 7NextAuthNeonResendVitestPlaywright

What’s inside

Multi-language i18n (10 locales pre-wired)

EN, VN, ES, FR, JA, KO, ZH, AR (with RTL), ID, TH ship as working locales. Type-safe translation keys, browser-locale + timezone auto-detect, hreflang alternates, multi-locale sitemap, language switcher. Drop a new locale file in `src/locales/` and the build picks it up — no config change needed.

45 themed UI primitives + showcase catalog

Every shadcn / Base UI primitive a SaaS needs — DataTable (TanStack v8), recharts, cmdk command palette, vaul drawer, resizable panels, combobox, sortable, hover-card, context-menu, tabs, dialog. A live `/components` catalog renders each primitive with copy-paste code so you never wire one from scratch.

Live Theme Studio — 12 presets, fonts, RTL/LTR

`/settings/theme` page with 12 WCAG-AA color presets, light / dark / system, soft / default / bold contrast, font-size slider, layout + stretch, RTL/LTR. Settings persist to localStorage via CSS variables — instant preview, no rebuild.

Supabase Auth + NextAuth alternative stack

Default: Supabase Auth (email/password + OAuth + OTP + recovery). Flip `AUTH_PROVIDER=nextauth` and `DB_PROVIDER=neon` for an Auth.js v5 + Neon Postgres alt stack — same `requireUser` / `requireAdmin` API surface, same admin panel, no code changes. UX shells for social-only, multi-step register, 2FA, magic-link, SSO.

Stripe billing — multi-currency subscriptions

Free / Pro / Business tiers with webhook-verified upgrades, customer portal, dunning, idempotent `StripeEvent` table, and a `profiles_update_self_safe_columns` RLS policy that blocks user-side billing tampering. Multi-currency (USD / EUR / GBP / VND) — visitor locale picks the price.

Full admin panel + audit log

Dashboard (4 KPI cards + signups timeseries + plan-mix donut), Users (list + detail + 5 lifecycle actions), Subscribers (list + CSV export), Messages (mark all read + reply via Resend), Audit log (filterable + paginated), Site Settings (runtime feature flags), Posts CRUD, Email gallery (preview + send test), Feature-flag editor, Docs viewer.

Public blog + full-text search + image uploads

Posts CRUD with `tsvector` full-text search via `websearch_to_tsquery`, `ts_headline` snippets with `<mark>`-wrapped matches, drag-and-drop cover image uploads to Supabase Storage with folder-prefix RLS, public `/blog` + `/blog/[slug]`, JSON-LD Article + breadcrumb.

Multi-tenancy — Organizations + Memberships

`Organization` + `Membership` Prisma models with RLS via `is_org_member()` / `is_org_admin()` SECURITY DEFINER helpers. `/app/organizations` lets users list + create orgs (creator becomes owner via atomic transaction). Owner-only delete, admin-only update, member-only read enforced server-side.

Public API + per-user API keys

`ApiKey` table stores prefix + sha256(plaintext); plaintext shown once at creation. `requireUser()` accepts `sk_live_…` / `sk_test_…` bearer tokens. `/api/v1/me` worked example. `/app/settings#api-keys` UI for create + revoke. RLS owner-scoped.

AI chat widget (streaming SSE)

`/api/ai/chat` Server-Sent Events endpoint proxies to OpenAI when `OPENAI_API_KEY` is set; otherwise streams a deterministic stub so the demo works without a key. Floating widget in the bottom-right, rate-limited 30 msg/IP/min.

Growth toolkit — analytics, affiliate, lead magnet

One `track(event)` fans out to GA4 / Plausible / PostHog. UTM + affiliate ref capture (60-day cookie, sanitised, forwarded to Stripe metadata). Crisp live-chat. Social-proof toaster. Lead-magnet modal with cookie-gated dismiss. Each gated by a `FEATURES.*` flag.

GDPR + observability — cookie consent, Sentry, cron

GDPR cookie consent banner gates analytics + live chat until accepted. Sentry CDN loader. Cron pattern (`/api/cron/trial-expiry` + `requireCronSecret`) scheduled via `vercel.json`. RLS verifier (`bun run verify:rls`) asserts every table's policies match expectations — drift fails CI.

FAQ

How is this different from ShipFast / Makerkit / Achromatic?

Three differences. (1) **10 locales pre-wired** with RTL — most SaaS templates ship 1-2. (2) **Two parallel stacks**: default Supabase + Supabase, optional NextAuth + Neon — flip two env vars, no code changes. Most templates lock you into one. (3) **Production RLS, not just auth**: every table has explicit policies + a `verify:rls` script that asserts the live state matches expectations. Most templates ship RLS-off and let you "fix it later".

Can I rip out features I don't need?

Yes — that is the design. Buyer-optional subsystems gate behind `FEATURES.*` flags in `src/template.config.ts` (newsletter, themeStudio, blog, demoApps, aiChat, liveChat, analyticsFanOut, affiliateRef, socialProof, leadMagnet). Flip a flag to false and the route 404s + the component tree-shakes. Per-deletion guides for auth / billing / admin live in the buyer docs.

How many languages can I add?

Unlimited. 10 locales ship as working examples; the i18n layer treats every locale file the same — drop a new file (e.g. `de.ts`, `pt.ts`) into `src/locales/`, register it in one line of `template.config.ts`, and i18next + hreflang + sitemap pick it up. The Theme Studio supports RTL out of the box (Arabic ships as the worked example).

What if I do not want Supabase?

Set `DB_PROVIDER=neon` and `AUTH_PROVIDER=nextauth`. The template ships a parallel migration track in `prisma/migrations-neon/` (greenfield-friendly, no `auth.users(id)` FK, no RLS). Auth.js v5 with `@auth/prisma-adapter` + bcrypt and Google / GitHub / Credentials providers wires up automatically. The same `requireUser` / `requireAdmin` API guards work in both modes.

What about Stripe in Vietnam?

The codebase uses Stripe directly. If you are a VN founder you will need a Stripe-supported entity (Stripe Atlas / US LLC) or a Merchant of Record like Polar.sh / Paddle. The wiring is processor-agnostic where it matters; the customer-portal + webhook layer is the heavy lift this template saves you.

Can I use this for client work?

Yes. Single-developer commercial license covers unlimited apps for yourself or clients you bill directly. Redistributing the source itself (selling, posting on a marketplace, uploading to a public repo) is not allowed.

Will I get updates?

Six months of free updates included. Monthly minor versions (Next.js / React bumps, bug fixes, occasional features). After that, a paid upgrade unlocks another twelve months.

What about refunds?

Fourteen-day no-questions refund. If `bun install && bun dev` does not boot on a fresh machine, email me with the error and I will refund within one business day.

Skip the setup. Ship tonight.

Code you own, forever. No runtime lock-in, no subscription.