Integrates Supabase Auth and Postgres, including protected routes and a user dashboard
sveltekit-saas-starter — Svelte SaaS Template
By Signal-Lynx
A SvelteKit-based SaaS starter template integrating Supabase authentication and database, Stripe subscriptions and one-time purchases, entitlement checks, an admin dashboard, and digital download delivery, with optional Key Commander licensing backend.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Supports Stripe subscriptions and one-time purchases, with checkout hardening, tax, terms acceptance, and promo codes
Includes a working admin dashboard covering user management, subscription viewing, email sending, audit logs, and revenue metrics
Provides a secure link delivery model for digital downloads, plus entitlement checks and bundling logic
Optional Key Commander licensing backend for license-driven entitlement unlocking and email-based entitlement assignment
Uses a split-domain deployment security pattern with a main domain and admin subdomain, making it easy to apply Cloudflare proxy and WAF to the admin panel
Template Details
This is a starter template cleaned up and generalized from a real production SaaS implementation, using the fictional brand Paradox Innovations to demonstrate real workflows. Core components include Supabase Auth with protected routes, Stripe subscriptions and one-time purchases, product definitions and entitlement checks, secure link delivery for digital downloads, and self-service user profile configuration. Account lifecycle features are wired up, covering password reset and change, email change, and account deletion. The admin dashboard provides user and settings management, subscription status viewing, sending emails to users, audit logs, and basic revenue metrics snapshots. The template also includes branding and theme replacement, SEO defaults, checkout hardening (tax, terms acceptance, promo codes), checkout gating when the entitlement backend is unavailable, Turnstile support, secure download helpers, sitemap exclusion, a working contact form, and legal boilerplate pages for privacy, terms, and DMCA.
Deployment uses a split-domain pattern with a main domain and an admin subdomain: the main domain hosts the public marketing site and user dashboard, while the admin subdomain hosts the admin panel, making it easier to keep the main domain compatible with hosts like Vercel while applying Cloudflare proxy, Zero Trust, WAF, and IP locking to the admin panel. Both domains need to be added to the hosting project, and PUBLIC_WEBSITE_BASE_URL must be set.
Key Commander is an optional self-hosted licensing backend; when integrated, the site becomes license-aware, enabling license-based entitlement unlocking, email-based entitlement assignment, and self-service flows such as controlled downloads and activation/machine resets. Without Key Commander, you need to implement licensing and Stripe reconciliation paths yourself. The template is MIT licensed, but third-party assets such as demo images, fonts, and icons require separate license verification, and external services like domains, hosting, databases, and payments may incur additional costs.
Is it right for your project?
Use Cases
- Building a SaaS product frontend with subscription billing and a user dashboard quickly
- Operating users, subscriptions, and email notifications with a real working admin dashboard
- Planning to sell digital products and needing controlled downloads and entitlement verification flows
- Wanting a self-hosted licensing backend and license-controlled dashboard feature unlocking
- Needing to separate the public marketing site and internal admin panel across domains and access controls
Suitable For
- Developers familiar with SvelteKit who want to start from existing SaaS workflows
- Indie developers or small teams needing Supabase authentication and Stripe billing infrastructure
- SaaS projects preparing to integrate or build their own licensing and entitlement system
- Users willing to configure Supabase, Stripe, and a hosting platform themselves
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 18+, Git, a Supabase account, a Stripe account, and the Supabase CLI via npx
- 2
After cloning the repository, run npm install, then use npx supabase login, link, and db push to connect and push the database schema
- 3
Copy .env.example to .env, fill in Supabase's public URL, anon key, private URL, and service role key, then add Stripe keys and webhook secret
- 4
Stripe subscription status depends on a configured webhook endpoint receiving events; when integrating Key Commander, set PRIVATE_LICENSE_MANAGER_URL and PRIVATE_LICENSE_MANAGER_API_KEY, and ensure product IDs match the Key Commander configuration
- 5
During deployment, add both the main domain and admin subdomain to the hosting project and set PUBLIC_WEBSITE_BASE_URL; if using bot protection, note that Basic Bot Fight Mode may block server-to-server calls between the site and Key Commander
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version in the public repository under the MIT license; the free scope applies to that version's code, not to external services or third-party assets.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and liability limitations are governed by the original license and applicable law.
Additional costs & items to verify
- The template can be used independently for free, but if you choose not to integrate Key Commander, you must implement licensing and Stripe reconciliation logic yourself; this functionality is not included in the template.
- License keys and license-based entitlement unlocking depend on the optional Key Commander backend, requiring you to configure environment variables such as PRIVATE_LICENSE_MANAGER_URL and PRIVATE_LICENSE_MANAGER_API_KEY.
- Billing flows require you to provide Stripe keys and webhook secret; additional features like Turnstile, R2, email, and analytics also require configuring the corresponding external services yourself.
- Using the template requires registering Supabase and Stripe accounts yourself, and related external services may incur costs.
- If Cloudflare or Vercel's basic Bot Fight Mode is enabled, it may block server-to-server calls between the site and Key Commander; use a protection tier that supports allowlisting or disable the feature.
- Demo images, fonts, icons, and other third-party assets must be verified under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional costs.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Community note: You can absolutely run this template without Key Commander. We’re releasing it free because we want builders to ship faster. If you go standalone, you’ll implement your own licensing and Stripe reconciliation path.
Original README
If you want license keys and license-based entitlements in the user dashboard using Key Commander, add these to your `.env`:
Original README
Then add your Stripe keys and webhook secret for billing flows, plus any extras (Turnstile, R2, email, analytics).
Original README
Supabase account Stripe account
Original README
https://github.com/Signal-Lynx/sveltekit-saas-starter/blob/main/LICENSEhttps://github.com/Signal-Lynx/sveltekit-saas-starter/blob/main/README.mdBot protection note: “Basic Bot Fight Mode” (Cloudflare or Vercel) can break server-to-server calls between this site and Key Commander.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 88 / 100
- Technologies
- Svelte
- Website type
- SaaS · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-26
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Svelte as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 14c8385a2f87f684657618d110ab882721507801c28e3376f85008dc38639d41
2026-10-01T15:06:47.498Z
Source file / repository# SvelteKit SaaS Starter (Key Commander-ready)
A production-ready SvelteKit SaaS starter with Supabase Auth + Postgres, Stripe billing, entitlement-based access, an admin suite you can actually run, and secure delivery workflows for free and paid assets
The template ships with a fictional brand (“Paradox Innovations”) so you can see real flows, and better understand this website template. Allowing you to quickly “de-Paradox” the template, and make it your own.
Links
• Template repo: https://github.com/Signal-Lynx/sveltekit-saas-starter
• Signal Lynx: https://signallynx.com
• Key Commander: https://www.signallynx.com/key-commander
• Key Commander ReadMe (PDF): https://www.signallynx.com/docs
---
## Why we built this template
This template is meant to be your launchpad. A real, working foundation for the Night Shift Nation. Building after hours (while highly caffeinated) and needing something complete and reliable. With this template (and optional Key Commander integration), a viable storefront and dashboard can be stood up in a weekend. The backend mechanics are already here. Bring your product, voice, and branding.
---
## Template Origin
This template is derived from a production SaaS implementation. It’s a cleaned, generalized version of real flows that were built to run under load, handle billing state correctly, and support real customer ops.
---
## What you get
### Core product flows
1. Supabase Auth, protected routes, dashboards
2. Stripe subscriptions and one-time purchases
3. Product definitions, entitlement checks, and bundling logic
4. Digital-download delivery pattern (secure link approach)
5. User profile self-configuration
### Account lifecycle (working)
Password reset and change, email change, and account deletion flows are wired and working.
### Admin suite (working)
Admin pages are included so you can operate without duct tape:
1. Manage users and user settings
2. Review and manage subscription state
3. Send emails to users from the admin suite
4. Admin audit log for accountability
5. Basic revenue metrics (MRR/ARR style snapshots)
### Production extras
This template includes the boring but critical stuff so you don’t ship a fragile demo.
1. Branding and theme templating (easy color swaps)
2. SEO-ready defaults (metadata patterns, crawl controls)
3. Checkout hardening (tax handling, Terms acceptance, promo codes)
4. Fail-safe checkout gating when the entitlement backend is down
5. Turnstile support, secure download helpers, sitemap exclusions, and a working contact form
6. Legal boilerplate pages (Privacy, Terms, DMCA, and more) with crawl safeguards
---
## Key Commander integration (recommended)
If you want the plug and play path, pair this template with Signal Lynx Key Commander.
Key Commander is the self-hosted backend engine that keeps your business state correct. Stripe events, paid status, trials, entitlements, license issuance, delivery, and ongoing reconciliation are handled by a single system you control. This template becomes the storefront and dashboard on top.
### What Key Commander gives you (beyond this website)
1. Revenue Ops (“Robotic Accountant”)
Subscriptions, trials, one-time sales, and reconciliation to keep billing state accurate.
2. Application Intel (“Comms Relay”)
Targeted announcements plus detailed audit logs so your stack is not a black box.
3. System Armor
Backups, integrity checks, and anti-piracy tooling designed to run on autopilot.
4. Flight Recorder
Website and client apps can send logs to your server so you can diagnose issues fast.
### What pairing Key Commander with this template adds
When Key Commander is connected, this site becomes license aware:
1. License-backed entitlements so dashboards unlock based on live license and billing status
2. Email-based entitlement assignment for promo and dev workflows
Assign a license to an email in Key Commander, and the site auto-entitles that user on signup or next login.
3. Customer self-service patterns for gated downloads and activation or machine reset workflows (where enabled)
### Key Commander connection (env)
If you want license keys and license-based entitlements in the user dashboard using Key Commander, add these to your `.env`:
```env
PRIVATE_LICENSE_MANAGER_URL="YOUR_LICENSE_MANAGER_URL"
PRIVATE_LICENSE_MANAGER_API_KEY="YOUR_LICENSE_MANAGER_API_KEY"
# Optional: If your Key Commander backend is protected by Cloudflare Access
PRIVATE_CF_ACCESS_CLIENT_ID="your-cf-access-client-id"
PRIVATE_CF_ACCESS_CLIENT_SECRET="your-cf-access-client-secret"
```
Then ensure your product IDs in `src/lib/data/products.ts` match the product IDs configured for your Key Commander Alias, and your custom/shipable software.
### Security templates included
Key Commander includes deployment guardrails and templates so you don’t wing it:
1. Cloudflare Tunnel configuration templates with explicit hostname and path routing
2. Default-deny edge posture with allowlisted routes
3. Practical WAF and rate-limit recipes for sensitive endpoints
Bot protection note: “Basic Bot Fight Mode” (Cloudflare or Vercel) can break server-to-server calls between this site and Key Commander. If you want bot protection, use a tier that supports allowlists, or leave bot fight off and rely on WAF rules, rate limits, and Turnstile.
Community note: You can absolutely run this template without Key Commander. We’re releasing it free because we want builders to ship faster. If you go standalone, you’ll implement your own licensing and Stripe reconciliation path. Either way, we’ll help where we can. We want to see what the Night Shift Nation builds.
---
## Tech stack
Framework: SvelteKit 5
Styling: Tailwind CSS + DaisyUI
Auth + DB: Supabase (Postgres + Auth)
Payments: Stripe
Licensing backend (optional): Signal Lynx Key Commander
Testing: Vitest + Playwright
Deploy: Cloudflare Pages, Vercel, or any Node.js host
---
## Deployment Architecture (Important)
This template uses a **Domain Split** security pattern in production:
1. **Main Domain** (`www.yourdomain.com`): Hosting the public marketing site and user dashboard.
2. **Admin Domain** (`admin.yourdomain.com`): Hosting the internal admin panel.
**Why?**
This allows you to keep your main domain compatible with hosts like Vercel (which prefer "DNS Only" / Grey Cloud), while routing your sensitive Admin panel through Cloudflare's Proxy (Orange Cloud) to enable Zero Trust, strict WAF rules, and IP locking without breaking your public site.
**Configuration Requirements:**
1. **Hosting:** Add **both** `www.yourdomain.com` and `admin.yourdomain.com` as custom domains in your hosting project (Vercel/Netlify/Cloudflare Pages).
2. **DNS:**
- `www`: DNS Only (Grey Cloud) recommended for Vercel.
- `admin`: Proxied (Orange Cloud) recommended for security.
3. **Environment:** Set `PUBLIC_WEBSITE_BASE_URL` to your main URL (e.g., `https://www.yourdomain.com`). The app will automatically derive the admin domain (`admin.yourdomain.com`) from this.
---
## Quick start (local dev)
### Prereqs
Node.js 18+
Git
Supabase account
Stripe account
Supabase CLI (via npx)
### 1) Clone and install
```bash
git clone https://github.com/Signal-Lynx/sveltekit-saas-starter.git
cd sveltekit-saas-starter
npm install
```
### 2) Link Supabase and push schema
```bash
npx supabase login
npx supabase link
npx supabase db push
```
### 3) Configure environment
```bash
cp .env.example .env
```
Minimum required Supabase values (Supabase Dashboard → Project Settings → API):
```env
PUBLIC_SUPABASE_URL="YOUR_SUPABASE_PROJECT_URL"
PUBLIC_SUPABASE_ANON_KEY="YOUR_SUPABASE_ANON_KEY"
PRIVATE_SUPABASE_URL="YOUR_SUPABASE_PROJECT_URL"
PRIVATE_SUPABASE_SERVICE_ROLE="YOUR_SUPABASE_SERVICE_ROLE_KEY"
```
Then add your Stripe keys and webhook secret for billing flows, plus any extras (Turnstile, R2, email, analytics).
Stripe note: subscription state only stays accurate if your Stripe webhook endpoint is configured and receiving events.
### 4) Run dev server
```bash
npm run dev -- --open
```
---
## Customization
### Rename your company
Edit `src/config.ts` and update your site name, legal name, and contact emails.
### Change theme colors
Edit `src/lib/theme.ts` and update the primary and secondary hex values. DaisyUI updates the UI system-wide.
### Define your products
Edit `src/lib/data/products.ts`:
1. Remove the example products
2. Add your real products
3. Update Stripe price IDs to match your Stripe setup
### Update marketing content
Edit:
• Home page: `src/routes/(marketing)/+page.svelte`
• FAQs: `src/lib/data/faqData.ts`
• Features: `src/lib/data/homepageFeatures.ts`
For deeper guidance, see `CUSTOMIZATION.md`.
---
## Scripts
```bash
npm run dev # Start the local dev server
npm run build # Build for production
npm run preview # Preview production build
npm run check # Svelte type-check
npm run lint # Lint
npm run format # Prettier format
npm run test # Vitest watch mode
npm run test:run # Vitest once
npm run test:e2e # Playwright e2e
./checks.sh # Format + lint + check + tests
```
---
## Documentation (extras)
Email setup: `email_docs.md`
Analytics setup: `analytics_docs.md`
---
## License
MIT. See `LICENSE`.
---
## Maintained by
Signal Lynx, builders of self-hosted automation and licensing tools.
Company site: https://www.signallynx.com
---
## Search terms (for discoverability)
SvelteKit SaaS starter, Supabase Auth, Stripe subscriptions, Stripe webhooks, one-time purchases, entitlements, admin dashboard, Cloudflare Turnstile, Cloudflare R2 downloads, Cloudflare Pages deploy, SaaS template, boilerplate, Signal Lynx, SignalLynx, Signal-Lynx, KeyCommander, Key Commander, Key-Commander, NightShiftNation.
Explore similar templates
Compare previews and descriptions within the same stack and category.

CMSaasStarter
CMSaasStarter is an MIT-licensed SaaS starter template built with SvelteKit, TailwindCSS, DaisyUI, and Supabase, with Stripe Checkout and Stripe Portal for payments.
Svelte · Admin dashboard

sveltekit-electron
A minimal SvelteKit + Electron starter template for cross-platform desktop applications. It provides clone, install, development, and build commands, with build targets adjustable in package.json and defaulting to Mac, Windows, and Linux.
Svelte · Starter

tauri-sveltekit
A minimal Tauri 2 and SvelteKit desktop starter template that builds the frontend as a static SPA via @sveltejs/adapter-static and loads it in Tauri's WebView.
Svelte · Starter

modernstack-saas
A SaaS starter template built with SvelteKit, Convex, Better Auth, and shadcn-svelte. It includes subscription billing via Autumn/Stripe, user and admin dashboards, user settings, organization multi-tenancy with roles and invitations, and a waitlist mode that can disable public registration.
Svelte · Admin dashboard

sveltekit-mdsvex-blog-template
A SvelteKit and MDsveX blog starter for Markdown writing with embedded Svelte components, Tailwind CSS typography, tags, dark mode, SEO metadata, and Cloudflare Workers deployment configuration. Requires Node.js 22.12+ and pnpm 11.17.0; third-party demo assets need separate license verification.
Svelte · Portfolio

sveltekit-shadcn-blog-starter
A SvelteKit blog starter that combines shadcn-svelte, Tailwind CSS, MDsveX, and TypeScript, offering multi-author support, tag archives, built-in search, light/dark themes, and automatic sitemap and RSS generation.
Svelte · Blog
