A "template" should mean the boring, load-bearing 80% is already built and tested — auth, billing, dashboard, email — so you spend your time on the 20% that's your product. This one delivers that, and proves it the only honest way: with the real repo tree and a purchase-to-production walkthrough, not a wall of feature promises. Next.js 15, one-time payment, instant GitHub access.
Every row here is wired end-to-end, not a placeholder. Where something is a deliberate scaffold or a known gap, it's flagged by the template's own npm run audit command — see the published audit output.
Auth (Clerk)
Sign-in / sign-up, protected /dashboard and /admin via middleware, and server helpers in lib/auth.ts (requireUser, requireAdmin).
Billing (Stripe)
Checkout, billing portal, and signature-verified webhooks handling checkout.session.completed, invoice and subscription events, with the plan enum kept in sync.
Admin dashboard
A real admin area that computes MRR and plan splits from Prisma queries against the User model — not a static mock.
Email (Resend)
Four React Email templates wired to events, sent through Resend — welcome and subscription lifecycle out of the box.
i18n + blog
8 locales via next-intl, and an MDX blog pipeline (gray-matter + next-mdx-remote) for content and SEO.
Tests + CI + AI configs
45 Vitest tests, a GitHub Actions workflow, plus CLAUDE.md and Cursor/Windsurf rules so agentic editors understand the codebase.
Honest exclusions, stated up front: single-tenant (User/Admin, no org teams), Stripe-only (no merchant-of-record), in-memory rate limiting, and an ApiKey table that's a scaffold today. All four are documented, not hidden.
Templates are sold on screenshots; this is the file structure you actually clone. If the shape of a codebase tells you whether it was built by someone who ships, here it is unedited:
src/ ├── app/ │ ├── (auth)/ # Clerk sign-in / sign-up │ ├── (marketing)/ # landing, blog, pricing │ ├── dashboard/ # protected app: settings, billing │ ├── admin/ # admin-only: users, MRR metrics │ ├── api/ │ │ ├── webhooks/stripe/ # signature-verified handler │ │ ├── webhooks/clerk/ │ │ ├── stripe/checkout/ │ │ └── stripe/portal/ │ ├── sitemap.ts robots.ts # SEO generation │ └── layout.tsx not-found.tsx ├── components/ │ ├── ui/ # shadcn-token components │ ├── landing/ dashboard/ emails/ ├── lib/ │ ├── auth.ts stripe.ts prisma.ts │ ├── email.ts blog.ts rate-limit.ts │ └── utils.ts config.ts ├── emails/ # 4 React Email templates ├── i18n/ messages/ # 8 locales (next-intl) ├── __tests__/ # 45 Vitest tests └── middleware.ts # route protection prisma/schema.prisma # User, WaitlistEntry, ApiKey + enums content/blog/ # MDX posts scripts/audit.mjs # npm run audit — the self-report CLAUDE.md .cursorrules # AI agent configs
Want to see how the layers connect? The architecture doc walks auth → data → billing, and the full docs are public before you buy.
No mystery steps. This is the whole path from paying to a deployed app on Vercel — the same one the docs spell out in detail.
Clone
Instant access to the private repo on purchase. git clone then npm install.
Configure .env
Copy .env.example, paste Clerk / Stripe / Postgres / Resend keys. Every var is documented; npm run audit flags anything missing.
Push the database
npx prisma db push against any Postgres host, then npm run db:seed for demo data. (Want Supabase? here's how.)
Run & verify
npm run dev to boot, npm test for 45 green tests, npm run stripe:listen to exercise webhooks locally.
Deploy to Vercel
Push to GitHub, import to Vercel, add the same env vars, deploy. Point Stripe's webhook and your Clerk instance at the production URL — live.
Step-by-step with commands: getting started and deployment docs.
A free Next.js SaaS template is a legitimate choice — we even name the good free repos. The difference isn't "free is bad", it's how much is finished and who maintains it.
| Free template (typical) | This template | |
|---|---|---|
| Price | $0 | $149 / $299 one-time |
| Auth finished | Skeleton | Clerk, wired |
| Stripe webhooks hardened | Often example-grade | Signature-verified + plan sync |
| Admin MRR dashboard | No | Yes |
| Email templates | Rarely | 4 React Email |
| Tests | Rarely | 45 Vitest |
| Maintained for you | No — your fork | Free updates for life |
| Wiring hours you save | 0 (you do them) | ~72 hours |
The full hours breakdown and the case for staying free is on the free starter page — read it before buying, not after.
Pay once, own the template, ship as many features as you like on top. 30-day money-back guarantee.
One-time · 1 commercial project
One-time · unlimited projects + client work
Secure payment via Stripe · Instant private GitHub access · 30-day refund
The $149 Starter license covers one commercial project; the $299 Unlimited license covers unlimited projects and client work, which is why agencies take that tier. Both include free updates for life. Full terms on the terms page.
Yes — free updates for life, pulled from the same private repo. Dependency bumps, security patches and roadmap items land for existing buyers at no extra cost. The template is maintained because this marketing site and other KipDev tools run on the same stack, so real edge cases feed back in.
Yes. The repo ships a CLAUDE.md, Cursor and Windsurf rule files and a documented prompts guide, so agentic editors know the auth helpers, the plan model and the architecture. Customising features by prompt becomes reliable instead of a guessing game.
A free template leaves ~70–90 hours of wiring — hardened webhooks, admin panel, email, i18n, tests — as an exercise; this one ships them finished and tested, plus lifetime updates. If your time is worth more than $149 for two weeks of plumbing, it pays for itself. If not, a free repo is the right call — we name several.
30-day money-back guarantee, no questions asked — refund policy. Because it's a private repo you can't fully read first, the published audit output and the live demo are the pre-purchase proof.
The auth, billing, dashboard and email are built and tested. Clone, add your keys, deploy to Vercel this afternoon — and if it doesn't hold up, you have 30 days.
One-time payment · 30-day refund · Instant GitHub access · Read the docs before buying