Comparison

SvelteKit Starter Comparison: VerdantStack vs CMSaasStarter

Two popular SvelteKit starters for B2B SaaS. Different approaches, different strengths. Here's an honest comparison to help you choose.

At a glance

VerdantStack

  • • SQLite (zero dependencies)
  • • Full RBAC (owner > admin > member)
  • • Seat-based billing adapter
  • • Append-only audit log
  • • 357 tests
  • • $79

CMSaasStarter

  • • PostgreSQL (via Supabase)
  • • No organization model — per-user profiles
  • • No RBAC
  • • Stripe subscriptions (no seat model)
  • • No audit log
  • • Free (MIT)

Feature comparison

Authentication

VerdantStack:Custom scrypt + hashed sessions (DB-backed, revocable)
CMSaasStarter:Supabase Auth

Different approaches — we use SQLite + custom auth; they use Supabase managed auth

Multi-tenancy

VerdantStack:Organizations with memberships, invite links, role hierarchy
CMSaasStarter:Not included — per-user profiles, no org model

This is the real gap: they have no organizations at all, so a B2B SaaS is built from zero

RBAC

VerdantStack:Full role hierarchy with capability matrix, server-side enforcement
CMSaasStarter:Not included

We include RBAC; theirs does not

Seat billing

VerdantStack:Pluggable BillingAdapter with seat limits enforced at join-time
CMSaasStarter:Stripe Checkout + Portal, per-user subscriptions — no seat model

They do ship working billing; the difference is that ours bills and enforces SEATS inside the app

Audit log

VerdantStack:Append-only by construction (no UPDATE/DELETE path)
CMSaasStarter:Not included

We include audit logging; theirs does not

Rate limiting

VerdantStack:Sliding-window failed-attempt limiter
CMSaasStarter:Not included

We include rate limiting; theirs does not

Database

VerdantStack:SQLite (better-sqlite3 + Drizzle ORM)
CMSaasStarter:PostgreSQL (via Supabase)

SQLite for zero-dependency; Supabase for managed infrastructure

Realtime

VerdantStack:Not included
CMSaasStarter:Supabase Realtime

Supabase has realtime built-in; we focus on the SaaS foundation

Tests

VerdantStack:357 tests (Vitest)
CMSaasStarter:Limited test coverage

We have comprehensive test coverage

Price

VerdantStack:$79 early-bird
CMSaasStarter:Free (MIT)

We charge for production-ready features; theirs is free

When to choose which

Choose VerdantStack if you need:

  • • Multi-tenancy with role-based access control
  • • Seat-based billing integration
  • • Audit logging for compliance
  • • Zero external dependencies (SQLite)
  • • Comprehensive test coverage
  • • Production-ready foundation, not just a demo

Choose CMSaasStarter if you need:

  • • Free, open-source starting point
  • • Supabase managed infrastructure
  • • Realtime features out of the box
  • • A simple per-user model, if you don't need orgs
  • • Quick prototype, not production deployment
  • • Supabase Auth integration

Architecture differences

VerdantStack uses a layered architecture: Routes → Services → RBAC/Billing → Database. Services are framework-free (no SvelteKit imports), making them testable with in-memory SQLite. The BillingAdapter seam lets you plug in any merchant-of-record (Lemon Squeezy, Paddle, Stripe) without changing domain logic.

CMSaasStarter uses Supabase as the backend: Auth, database, and realtime are all managed by Supabase. This simplifies infrastructure but couples you to Supabase's ecosystem. RLS policies scope data per user, though CMSaasStarter does not ship a tenants abstraction — that's yours to build.

Key difference: VerdantStack is a self-contained starter you can deploy anywhere Node runs (Vercel, your own server) — it needs a writable filesystem for its SQLite database. CMSaasStarter requires Supabase infrastructure.

The honest truth

  • CMSaasStarter is free — it's popular for a reason.
  • VerdantStack costs money because it includes features CMSaasStarter doesn't.
  • If you need RBAC, billing, and audit logging, you'll build them yourself on CMSaasStarter.
  • If you don't need those features, CMSaasStarter is a great starting point.
  • Both are SvelteKit. Both are TypeScript. On maintenance they differ, and the check is public: our releases are dated on the changelog, while CMSaasStarter's commit list last showed 21 March 2026 when this page was last checked (2026-10-02). Follow both links — that comparison is the whole point of publishing them.

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.

Related reading