Product
Ship your multi-tenant B2B SaaS on SvelteKit + Postgres without rebuilding orgs, invites, and billing from scratch.
A starter with multi-tenancy wired end-to-end on real Postgres: organizations, invitations, role-based access, seat-based billing via a merchant of record, and an append-only audit log. Drizzle ORM + postgres.js. No provider lock-in.
The SvelteKit + Postgres starter — scales to any team size.
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.
Append-only audit log
Who did what, queryable, export-ready. No update or delete path exists.
Real Postgres, no provider lock-in
Drizzle ORM + postgres.js over any Postgres — Neon, Railway, Supabase-direct, Fly.io, or self-hosted. Connection pooling config + PgBouncer/Supavisor guidance included.
Row-level security (opt-in)
Defense-in-depth RLS policies with a per-request identity pattern — fail-closed at the database level once you adopt the GUC.
See it in action
Real UI from the live deployed demo — postgres-starter.verdantstack-site.pages.dev (seeded org, resets daily).



Built for AI coding agents
The kit ships AGENTS.md, a generated API reference andllms.txt, so Claude Code, Cursor and Copilot start with the file map and the public API already in context instead of inferring them.
They are included because they cost nothing to ship and make the kit more usable — not because they are unusual. The Svelte CLI'snpx sv add ai-tools already scaffolds a framework-levelAGENTS.md into any SvelteKit project; these are the product-specific files layered on top of that baseline.
- 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.
- 325 automated tests — the trust layer. AI code without tests is a liability. AI code with 325 tests is a foundation.
Not a bolt-on: the full agent context lives in the repo from day one.Read the AGENTS.md.
The data layer
Unlike a single-file database that hits a ceiling at single-server scale, this starter uses the full Postgres ecosystem: connection pooling (postgres.js pool + PgBouncer/Supavisor guidance), row-level security as opt-in defense-in-depth, and documented add-yourself paths for read replicas,JSONB, and full-text search. The service layer is identical across VerdantStack kits — only the driver changes.
Tenancy is application-enforced by default; rls/0010_rls_policies.sql adds database-level fail-closed hardening once you adopt the per-request identity pattern.
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 situation | Pick | Why |
|---|---|---|
| You will outgrow a single-file DB — pooling, replicas, JSONB, RLS, big data | SvelteKit + Postgres Starter(this one) | Real 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 box | SvelteKit + Supabase Starter | The same core layered onto Supabase — auth, database, realtime, RLS handled for you. |
| You want zero external services — everything on the Cloudflare edge, cost-free | Multi-tenant SvelteKit Starter | 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
- All three kits share the same tested core — orgs, invites, RBAC, seat billing, audit log. The difference is the data layer.
- If you are already on Supabase and want managed Auth/RLS/realtime, see the SvelteKit + Supabase Starter ($99 early-bird).
- If you want zero-ops on Cloudflare with SQLite/D1, see the Multi-tenant SvelteKit Starter ($79 early-bird, 357 tests).
- Read the full comparison: Postgres vs Supabase · Drizzle vs Prisma
Who it's NOT for
- You want managed Supabase Auth/realtime/storage — this kit is provider-neutral and owns auth itself.
- 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.
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.1.13, released 2026-10-04, 13 dated releases, 52 logged changes. The full history is public.
- Commercial license — use it in your business
- Live interactive demo — try before you buy
- 325 automated tests against a real Postgres database
- 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.
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 Postgres instead of SQLite?
The same service layer runs on both. If you will outgrow a single-file database — connection pooling, read replicas, JSONB, full-text search, row-level security — start on Postgres. The kit gives you the real thing from day one.
Is this different from Supabase?
Yes. Supabase is a managed Postgres platform with its own Auth/RLS/Realtime/Storage. This kit is provider-neutral: bring any Postgres connection string and own the whole stack. Both are valid — it depends on whether you want the managed convenience or the lock-in-free control.
How many tests does it ship with?
325 automated tests run against a real Postgres test database (docker-compose provides one), covering auth, RBAC, invites, seat limits, audit, and HTTP-level flows.
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 325 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. See our guides: Claude Code + VerdantStack, Cursor + VerdantStack.
Dive deeper
Get in touch
Questions about the product, team licenses, or anything else? We'll aim to respond within 48 hours.