SvelteSaaSStarter

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-09-30View source

What stands out

A quick read of the recorded project description.

01

Integrates Supabase Auth and Postgres, including protected routes and a user dashboard

02

Supports Stripe subscriptions and one-time purchases, with checkout hardening, tax, terms acceptance, and promo codes

03

Includes a working admin dashboard covering user management, subscription viewing, email sending, audit logs, and revenue metrics

04

Provides a secure link delivery model for digital downloads, plus entitlement checks and bundling logic

05

Optional Key Commander licensing backend for license-driven entitlement unlocking and email-based entitlement assignment

06

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.

SvelteSaaSStarter

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. 1

    Requires Node.js 18+, Git, a Supabase account, a Stripe account, and the Supabase CLI via npx

  2. 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. 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. 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. 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

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

Bot protection note: “Basic Bot Fight Mode” (Cloudflare or Vercel) can break server-to-server calls between this site and Key Commander.

Original README
https://github.com/Signal-Lynx/sveltekit-saas-starter/blob/main/LICENSEhttps://github.com/Signal-Lynx/sveltekit-saas-starter/blob/main/README.md

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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

CMSaasStarter

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

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

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

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

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

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