Comparison
SvelteKit + Postgres vs SvelteKit + Supabase
Two SvelteKit paths to Postgres: connect to your own Postgres with Drizzle, or let Supabase manage auth, database, realtime, storage, and RLS for you. Both are valid — here is the honest tradeoff, with the VerdantStack Postgres starter and Supabase starter as concrete implementations.
Feature comparison
Database
Same database engine. Ours is provider-neutral; Supabase bundles and manages it.
Authentication
Supabase wires faster; ours keeps auth fully under your control with no external service.
Row-level security
Both reach database-level RLS; Supabase is turnkey, ours is a documented defense-in-depth layer you enable.
Connection pooling
Supabase ships pooling; ours ships the config plus docs to set it up on any provider.
Realtime
Clear Supabase win if your product needs live updates.
Storage
Supabase wins for bundled file storage.
Dashboard & tooling
Supabase gives you a GUI; ours keeps you in your own tooling.
Provider lock-in
This is the crux: neutrality and control vs managed convenience.
Cost at scale
Direct Postgres is generally cheaper as you grow; Supabase charges for managed extras.
Multi-tenant foundation
Same SaaS seams and hardening; the tenancy boundary differs (service layer vs RLS-first).
Price & license
Same value proposition; the Postgres kit is priced a little lower.
The tradeoffs
Managed convenience (Supabase)
Auth, realtime, storage, a dashboard, and RLS with a real per-request identity come out of the box. The tradeoff is that you now operate inside Supabase ecosystem, its feature set, its pricing, and its upgrade path. Migration away means moving auth, RLS policies, and storage, not just a connection string.
Control and neutrality (Postgres direct)
A connection string is the whole dependency. You can use any provider, switch providers, or self-host. You keep full Postgres power — read replicas, JSONB, full-text search, extensions — which the starter documents as add-yourself patterns. The cost is that auth and tooling are yours: the starter ships custom scrypt auth and 194 tests so you are not starting from zero.
What both share
Both VerdantStack kits run the identical SvelteKit service layer for orgs, invites, RBAC, seat billing, and the append-only audit log. Choosing between them is mostly choosing your tenancy boundary and your infrastructure appetite — which is exactly why both starters exist.
When to choose which
Choose SvelteKit + Postgres (this starter) if you need:
- • No provider lock-in — any Postgres, switchable at will
- • Full Postgres control: read replicas, JSONB, full-text search, extensions
- • Custom auth in your codebase, not a managed service
- • Lower cost at scale: $0–$7/mo direct Postgres [ESTIMATE]
- • A tested tenancy layer: 194 tests, RBAC, invites, billing, audit
Choose SvelteKit + Supabase (the other starter) if you need:
- • Managed auth (OAuth, magic links) without building it
- • Realtime and storage without standing up services
- • A dashboard for day-to-day database work
- • RLS as the default tenancy model with per-request identity
- • Least infrastructure to think about at launch
Bottom line
There is no wrong answer — the same SvelteKit service layer powers both. Supabase trades a little control for a lot of convenience: turnkey auth, realtime, storage, and RLS. Direct Postgres trades that convenience for provider neutrality, full database control, and a lower cost trajectory. If your product is live-data-heavy or you want the cheapest path to scale, Postgres direct wins. If you want to move fastest with managed batteries included, Supabase wins. Neither choice locks your architecture in permanently — the driver is the only thing that changed between the two kits.
Related reading
- SvelteKit + Postgres Starter — product + guides
- Multi-tenant SvelteKit Starter — SQLite option
- SvelteKit + Supabase Starter — managed option
- All documentation — guides, deep dives, evaluations
Get in touch
Questions about the product, team licenses, or anything else? We'll respond within 48 hours.