SaaSy Land 2.0: The Next.js SaaS Boilerplate With a 100% Coverage Gate
One command scaffolds auth, billing, email, an admin and a marketing site, with 141 test files and a coverage gate already enforcing them. Here is exactly what ships, and how to check every number before you pay.

The three months at the start of every SaaS are always the same three months. Authentication with the edge cases. Billing with the webhook that must not charge twice. Transactional email. An admin nobody outside the company will ever see. Translations, timezones, currencies. A marketing site.
None of it is your product. All of it has been solved.
SaaSy Land 2.0 is a production Next.js SaaS starter that ships those three months as source you own, with a test suite already covering them and a coverage gate that fails the build if anything drops below 100%. One command scaffolds it. One payment buys it. Nothing bills you per user afterwards.
This post is the specification: what is in the box, what changed in 2.0, what it costs, and the command that proves each claim.
The short version
- Stack: Next.js 16 and React 19 on Bun, Elysia, Better Auth, Drizzle with Neon Postgres, Zod, Stripe, Resend, next-intl, Tailwind 4, shadcn/ui, Fumadocs, strict TypeScript.
- Tests: 141 Vitest files, 5 Playwright suites in real Chromium and WebKit, 100% coverage enforced as a CI gate.
- Reach: 54 locales, 156 currencies, 195 timezones, 248 countries, with a parity check that fails the build on a missing translation.
- Cost: $249 once.
$0per monthly active user, forever.
Version 2.0 replaced Hono with Elysia, NextAuth with Better Auth and Content Collections with Fumadocs. Everything below describes what is in the repository today, and every number is generated by it.
What is SaaSy Land?
SaaSy Land is a commercial Next.js SaaS starter kit. A CLI asks five questions and writes only the modules you answered for: authentication on your own database, billing, transactional email, an admin console, internationalization and a visual page designer. It arrives with 141 test files and a coverage gate already enforcing them, so the code you receive is verified rather than merely present.
The code is MIT licensed and public, so you can read it before you decide. You pay once for the CLI, the templates and lifetime core updates, and there is no runtime licence check, no vendor callback and no subscription.
What is in the box
Ten modules. Seven are always written; three depend on how you answered the CLI.
| Module | What ships | Always |
|---|---|---|
| Authentication | Better Auth with email and password, OAuth, verification, password reset, two-factor and admin impersonation, on your database | Yes |
| Database | Drizzle ORM against Neon Postgres, typed end to end, with generate, migrate, push and studio scripts wired to local, preview and production | Yes |
| Billing | Checkout, customer portal and webhooks, with products and pricing managed from the admin rather than hardcoded in the app | If asked |
| React Email templates through Resend, with the auth flows already sending real mail on day one | If asked | |
| Admin console | Thirteen sections built and styled: users, products, payments, analytics, blog, courses, pricing models, page designer, settings and more | Yes |
| Interface | 56 components on Tailwind 4 and shadcn/ui, in your repository rather than behind a package boundary you cannot edit | Yes |
| Internationalization | 54 locales, 195 timezones, 156 currencies, 248 countries, plus a parity check that fails the build on a missing key | Yes |
| Content | An MDX blog and a documentation site on Fumadocs, both editable from the admin, both indexed and localized | If asked |
| Tests | 141 Vitest files, 5 Playwright suites, and 100% statement, branch, function and line coverage as a CI gate | Yes |
| Tooling | Bun, Elysia, strict TypeScript, Zod schemas, Redis rate limiting, and a formatter, linter and type check that all run before anything merges | Yes |
No add-ons. No paid modules. No second checkout.
Pick your stack, run one command
The CLI is not a template you download and then fight. It asks what you are building and writes exactly that, so the same tool scaffolds a single-tenant side project and a multi-tenant product with a merchant of record.
bunx saasyland@latest init my-app \
--framework next \
--tenancy multi \
--billing stripe \
--content mdx \
--email resendFive questions, with deliberately boring flags so the command survives being pasted into a script rather than into a prompt:
| Question | Options | Why it is a question |
|---|---|---|
| Framework | next, tanstack | Both are supported; pick the one your team already knows |
| Tenancy | multi, single | Retrofitting organizations later touches every query you have written |
| Billing | stripe, polar, lemonsqueezy, --no-billing | Polar and Lemon Squeezy are merchants of record and carry EU VAT and US sales tax for you. Stripe does not. A founder makes that call once |
| Content | mdx, --no-content | A blog and docs, or neither |
resend, --no-email | Transactional mail wired into the auth flows, or none |
Change an answer and the command changes with it. Run it again for the next project: the answers change, the CLI and the lifetime updates do not.
The four things that are actually different
Plenty of starters ship auth and billing. These are the parts that are hard to copy, and each one is checkable.
A coverage gate, not a badge
100% of statements, branches, functions and lines, enforced on every pull request. Untested behaviour cannot merge, which is a different promise from tests existing somewhere in the repo.
$0 per monthly active user
Better Auth runs on your database. Your user table, your sessions, your margins. The bill at 50,000 users is the bill at 50.
A page designer in the box
Landing pages, pricing pages and a blog your marketing team edits visually inside your own admin, rendering your own components. No second subscription.
The engineer, on video
Two courses in the Masterclass tier. One walks the codebase you receive, subsystem by subsystem. The other builds the whole product again from an empty folder.
Why the coverage gate matters more now than it did at launch
When 2.0 shipped, the coverage number was a quality argument. It has since become a throughput argument, because a large share of the code being added to SaaS codebases is now written by an agent.
In the 2025 Stack Overflow Developer Survey, 84% of developers reported using or planning to use AI tools, while the most-cited frustration, named by 45%, was AI output that is "almost right, but not quite." A threshold that fails the build is the cheapest available answer to that: an agent cannot add behaviour without adding a test, and anything it breaks surfaces at the pull request rather than at a customer.
We wrote this up at length in why your repository decides agent output quality and in how to choose a stack for AI coding agents. The short version is that this repository scores 20 out of 20 on our own readiness scorecard, by construction rather than by effort.
What changed in 2.0
| Area | Before | Now | Why |
|---|---|---|---|
| API layer | Hono | Elysia on Bun | Tighter end-to-end types and instant HMR |
| Authentication | NextAuth | Better Auth | Multi-tenancy, organizations, RBAC, and no per-user pricing |
| Content | Content Collections | Fumadocs | One system for the blog and the docs, both localized |
| Localization | 8 languages | 54 locales | Plus 195 timezones, 156 currencies and a build-failing parity check |
| Interface | Assorted components | 56 shadcn/ui components in your repo | Editable source rather than a package boundary |
| Tests | Present | 100%, enforced in CI | The gate, not the number |
| Marketing site | None | A visual page designer | Ship the marketing, not only the app |
All of it is in the repository today. Lifetime core updates are included, so the next round lands in your repository too.
What $249 actually buys
You are not buying code. You are buying back the calendar.
At $150 an hour, $249 is about three hours of your time. The work it replaces is not three hours. It is authentication with two-factor and OAuth, a typed data layer, billing with webhooks that survive a retry, an admin console, a 54-locale catalog, a marketing site your team can edit, and a test suite that proves all of it still works after the next change.
| Tier | Price | For | Adds |
|---|---|---|---|
| Codebase | $249 one-time | The founder who ships alone and reads every line | Full source, CLI, all templates, the complete test suite, lifetime core updates |
| Masterclass | $399 one-time | The engineer who wants the reasoning, not just the result | Everything above, plus the full video course, architecture deep-dives and deployment playbooks |
| Agency | $899 one-time | The shop that bills clients for what it builds | Everything above, plus an unlimited client licence, priority Discord and Figma files |
One-time payment in USD. No subscription, no seat count, no monthly active user meter, no renewal date.
Check every claim before you pay
No testimonials, because there is nothing to verify in a quote. Every number on this page is generated by the repository you would be buying, and here is where to find it.
| Claim | Where to check it |
|---|---|
| 100% test coverage | coverage/coverage-summary.json, generated by bun run test:coverage |
| Enforced, not reported | .github/workflows/ci.yml, on every pull request and push to main |
| Real browsers, not jsdom | e2e/specs, 5 Playwright suites on Chromium and WebKit |
| 54 locales, 156 currencies | src/modules/_core/constants, checked by bun run check:i18n |
Strict types, zero any | tsc --strict, which blocks the merge on a single error |
| 56 components, in your repo | src/presentation/components, editable source |
Who this is not for
If you want something free to learn on, clone a template and enjoy it. If you would rather a hosted vendor run your authentication and bill you per monthly active user for the privilege, buy that instead.
This is for people who intend to still own their margins at fifty thousand users, and who would rather find out at the pull request than in production.
Start here
Read the documentation and the architecture section, then run the coverage report against the repository. When the numbers check out, see what it costs.
Frequently asked questions
SaaSy Land is a production Next.js SaaS starter kit. A CLI asks five questions and scaffolds only what you answered: authentication on your own database, billing, transactional email, an admin console, 54-locale internationalization and a visual page designer, with 141 test files and a 100% coverage gate already enforcing them in CI. One payment of $249, no per-user fees.
Three one-time tiers. Codebase is $249 and includes the full source, the CLI and lifetime core updates. Masterclass is $399 and adds the full video course. Agency is $899 and adds an unlimited client licence, priority Discord support and Figma files. There is no subscription, no seat count and no monthly active user meter.
Yes, on statements, branches, functions and lines, and it is a gate rather than a badge. 141 Vitest files plus 5 Playwright suites running in real Chromium and WebKit, with the threshold enforced on every pull request by .github/workflows/ci.yml. Run bun run test:coverage against the repository and the report regenerates itself.
Next.js 16 and React 19 on Bun, with Elysia for the API, Better Auth for authentication, Drizzle ORM against Neon Postgres, Zod for boundary validation, Stripe, Polar or Lemon Squeezy for billing, Resend for email, next-intl for localization, Tailwind CSS 4 with shadcn/ui, and Fumadocs for the blog and documentation. Strict TypeScript throughout.
Ownership and margin. Hosted auth charges per monthly active user, so your cost rises exactly when your revenue should. Better Auth lives in your codebase and your database, which means your users are rows you own, your auth logic is source you can read and extend, and the bill at 50,000 users is the same as the bill at 50.
The Agency tier at $899 includes an unlimited commercial client licence, so you can ship it to as many clients as you bill. The Codebase and Masterclass tiers cover your own products. All three are one-time payments with lifetime core updates.
No. The CLI asks five questions and writes only what you answered, so billing, content and email can each be left out with a --no-billing, --no-content or --no-email flag. Seven modules are unconditional and three are written only if you asked for them.
The code is MIT licensed and the repository is public, so you can read every line before you decide. What the $249 buys is the CLI and its templates, lifetime core updates, and the supporting material. There is no runtime licence check, no vendor callback and no subscription.
Check it before you pay. The documentation is public, the coverage report is generated by the repository itself rather than screenshotted, and the CI workflow that enforces the gate is a file in that repository. Every number on this page maps to a command or a path, listed in the verification table above.
It will, and the result will look right. What it will not tell you is which auth edge cases it skipped, which webhook is not idempotent, or that the translation parity check it never wrote would have caught the missing keys. An agent's output is only as trustworthy as the checks that reviewed it, and on an empty repository there are none.
Built by a professional developer to production standards. Questions go to hello@saasyland.com, and one person reads them.