Product

The multi-tenant SvelteKit boilerplate — the boring 80% already wired.

Every B2B app ends up needing the same things, and every one of them is only obvious once a customer hits it. This kit is the version where that list was written down first, tested second, and shipped.

Organizations, invitations, role-based access, seat-based billing and an append-only audit log — typed end to end, and verified by tests that reproduce the exact edge case they exist to prevent.

What's inside

  • Organizations & membership

    Create, join, leave; single-use invite links with expiry and atomic claim; ownership transfer.

  • Role-based access control

    Three built-in roles (owner > admin > member) with strict hierarchy — enforced server-side on every request, not just hidden in the UI.

  • Seat-based billing seam

    A BillingAdapter interface with seat limits enforced at join-time. Checkout runs through a merchant of record when live, so you never touch raw card data — and it works from countries where Stripe isn't available.

  • Append-only audit log

    Who did what, queryable, export-ready — the thing enterprise pilots ask for first. No update or delete path exists.

  • Auth that survives review

    Scrypt-hashed passwords, hashed revocable database sessions. The auth and billing paths are covered by tests so changes don't scare you.

See it in action

Real UI from the live deployed demo — multi-tenant-starter.verdantstack-site.pages.dev/ (seeded org, resets daily).

Live demo: organizations home after sign-in
Organizations home after sign-in — pick an org, manage members and seats.
Invite flow: owner creates a one-time invite link, a new member accepts via the link, the owner sees them listed
Invite flow — one-time link, accepted, member listed & seats updated.
Live demo: append-only org audit log
Audit log — every event recorded, append-only, export-ready.

Built for AI coding agents

The kit ships with the context files AI coding agents (Claude Code, Cursor, GitHub Copilot) actually need to work in a codebase the moment they open it.

  • AGENTS.md — architecture decisions, command shortcuts, and "things that will bite you" so an agent starts productive, not fumbling.
  • TypeDoc API reference — generated from the code, a machine-readable spec of every export that cannot silently rot.
  • A public docs portal + llms.txt — deep-dive guides and a site index an agent can retrieve, not just a human can read.

Not a bolt-on: the full agent context lives in the repo from day one.Read the AGENTS.md.

Which database fits

All three kits ship the same tested multi-tenant core — orgs, invites, RBAC, seat billing, audit log. They differ only in the data layer. So the only real question is: which database do you already run, or plan to run? Pick by situation, not by feature list.

Do I need to scale past a single server / need Postgres features?

Postgres Starter (vendor-neutral)

Am I already invested in Supabase (auth, storage, realtime)?

Supabase Starter

Do I want a free, managed, edge-native database with zero ops?

Multi-tenant SvelteKit Starter (D1)

Your situationPickWhy
You will outgrow a single-file DB — pooling, replicas, JSONB, RLS, big dataSvelteKit + Postgres StarterReal Postgres, zero lock-in, Drizzle ORM, opt-in RLS. The vendor-neutral flagship.
You want managed Supabase Auth / realtime / storage APIs and RLS out of the boxSvelteKit + Supabase StarterThe same core layered onto Supabase — auth, database, realtime, RLS handled for you.
You want zero external services — everything on the Cloudflare edge, cost-freeMulti-tenant SvelteKit Starter(this one)SQLite/D1 via better-sqlite3 + Drizzle. The zero-ops serverless default.

Not sure? Read the documentation or the multi-tenant starter evaluation checklist. Every kit is a one-time license with lifetime updates and a 30-day refund.

How it compares

Who this is for

One reader: someone who has already chosen SvelteKit, is building aB2B product that will hold more than one organisation, and wants the tenancy layer finished rather than started.

  • You deploy to Cloudflare, or you might.This kit runs on SQLite — better-sqlite3 locally, D1 in production — so there is no database server to operate and no connection string to rotate. If you have outgrown that ceiling, take thePostgres kit instead.
  • Stripe is not available where you are.If you are billing from a country Stripe does not serve, the seat billing can run through a merchant of record and never touch raw card data in your app. That constraint is why this seam exists.
  • Teams are on your roadmap, not in your codebase.The work in this kit is the work you cannot show on Friday: an invite that expires before it is claimed, two members claiming the same invite, a join that lands after the seat limit is reached.
  • Your next customer has more than one team in it.When the first real account asks who changed what and when, the audit log and the server-side RBAC are the two answers you would otherwise be writing from scratch — under a deadline, in someone else's code.

What you're buying instead of building it

The honest version of "$79 or do it myself" is not a number of hours — you know your rate better than we do. It is the list of what you would otherwise have to write, and the list of what you would only notice was missing after a customer hit it.

  • 43 source files, 3,461 lines of application code
  • 24 test files, 7,054 lines of tests — 475 of them, covering auth, RBAC, invites, seats and the audit log
  • 6 tables of schema and the migration that creates them
  • One licence covering every project you build on it

The tests are the part that earns the money. They are the written record of the edge cases: an invite link that expired, two members claiming the same invite, a join arriving after the seat limit, a member's forged POST trying to promote themselves, an audit row with no edit path. None of that shows up in a screenshot, and all of it is what a paying account finds first.

If your own estimate for that list is a few weeks, then $79 is not really the decision — the weeks are. We don't publish an hour count, because we cannot measure yours, and a number we made up would only be an ad.

Who it's NOT for

  • You want Next.js or Laravel — this is SvelteKit-native, deliberately.
  • You need enterprise SSO/SCIM on day one — this ships app-level tenancy, not identity-provider federation.
  • You want a huge component library — this is a foundation, not a UI kit.

Pricing, stated plainly

One license, unlimited projects, commercial use permitted. Lifetime updates included. Stated plainly because pricing pages that hide this are worse than useless.

$79Early-bird pricing, currently active.

Building for a client or a team of three or more? TheTeam Licence is$249 — 3+ seats, still unlimited projects. Same updates, same support, no per-project fee.Ask about a team licence — invoiced individually, since checkout is per-kit.

  • Actively maintained — v0.2.15, released 2026-10-12, 15 dated releases, 71 logged changes. The full history is public.
  • Commercial license — use it in your business
  • Live interactive demo — try before you buy
  • 475 automated tests covering auth, RBAC, invites, seats, audit
  • Full documentation + API reference + AI-agent files
  • Lifetime updates included

Source delivered to buyers. The full kit code is delivered privately to you after purchase — it is not posted publicly. Explore the docs, feature list and proof freely; buy when you want the code.

Get the kit — $79

30-day full refund — no hassle, no questions. If it's not for you, get your money back.

Actively maintained — see the latest release.Read License Agreement

FAQ

Why SvelteKit?

Because the kit is opinionated about one stack done deeply rather than many stacks done thinly. SvelteKit gives you server endpoints, form actions, and TypeScript end to end without extra glue.

Why not just use Clerk/Auth0?

Managed auth is great until you need app-level tenancy semantics — orgs as first-class data, seat limits, per-org roles and audit trails. This starter owns that layer in your database, where your product logic lives.

How are seats billed without Stripe in my country?

Checkout runs through a merchant of record. The MoR is the legal seller and handles tax; your app only talks to its API via the BillingAdapter seam.

What's the update policy?

One license, unlimited projects, commercial use permitted. Lifetime updates included. Stated plainly because pricing pages that hide this are worse than useless.

Is there a team license?

One license covers one developer. For a client or a team of three or more, the Team Licence is $249 — 3+ seats, still unlimited projects, same updates and support, invoiced individually.

Can't I build this myself or with an AI coding agent?

You can — and the kit includes AGENTS.md and TypeDoc so your agent starts productive. But the value is in the 475 tests, the edge cases (invite expiry, atomic claims, seat enforcement, audit tamper-proofing), and the plumbing that's invisible until an enterprise pilot asks for it in week one. You're buying a tested foundation, not a code generator.

Dive deeper

Get in touch

Questions about the product, team licenses, or anything else? We'll aim to respond within 48 hours.

Max 2000 characters

Stored in our own database — no third party. Deleted on request.