Bun · SvelteKit · Hono · Postgres
The part of your SaaS that is the same every time, already built.
Authentication, organizations, billing, an admin surface, internationalisation, a PWA, desktop and mobile shells, and a self-hosting story that fits on one small server. One codebase, one typed API, one command to make it yours.
One payment. Not a subscription, not per-seat, not per-project. The free edition is permanent and not a trial — build and sell with it too.
- Bun
- TypeScript
- SvelteKit 2
- Svelte 5
- Hono
- oRPC
- Postgres
- Drizzle
- Better Auth
- Tailwind 4
- Astro
- Starlight
- Tauri 2
- Docker
- Caddy
From clone to running, in four commands
The rename is one command and covers the package scope, the Compose project name, the Tauri bundle identifier and every string a user sees. Do it first — it is far cheaper before the database volume exists.
git clone https://github.com/starterdough/starterdough.git my-product
cd my-product && bun install
bun run rename --name Acme --slug acme --identifier com.acme.desktop --scope @acme --write
bun run db:up && bun run db:migrate && bun run dev:app
What’s inside
Both editions come out of one source tree, so the free edition is not an older or a weaker
build — it is the same code with the multi-tenancy layer and everything that depends on it
removed. The line is drawn where the schema draws it: at
organization.
| Capability | Free | Full · $99 |
|---|---|---|
| Authentication Email and password with verification, password reset, change email confirmed from the old address, delete account. GitHub and Google switch on when their credentials are set. | Included | Included |
| Two-factor and passkeys TOTP with backup codes, WebAuthn passkeys, and a session list the user can revoke from. | Included | Included |
| Admin surface Users, feature flags and a system page, behind a role the API enforces. | Included | Included |
| One typed API Hono and oRPC over Postgres and Drizzle. The contract is the source of truth; the client is generated from it. | Included | Included |
| Internationalisation English and German, compiled per-message, with the locale in the URL. | Included | Included |
| PWA and offline Installable, with a service worker and an offline fallback. | Included | Included |
| Desktop and mobile shells Tauri 2 projects wrapping the same static build. Bearer tokens, not cookies. | Included | Included |
| Marketing site and docs An Astro landing site and a Starlight documentation site, both static. | Included | Included |
| Self-hosting Docker Compose for the whole stack, Caddy for TLS and subdomains, and verified backup and restore scripts. | Included | Included |
| Organizations, teams, workspaces The organization is the tenant. Teams group its members, workspaces are the product container, and every query is scoped by a foreign key rather than by a filter someone might forget. | Not included | Included |
| Roles and invitations Owner, admin and member defined in one file and enforced in the API. Invitations are emailed as links that expire. | Not included | Included |
| Audit log Who did what, per organization, readable by owners and admins. | Not included | Included |
| Billing Stripe subscriptions per organization, per-seat, with plan limits enforced server-side and a customer portal. | Not included | Included |
| Documents and storage Presigned S3 uploads, per-organization storage quotas, and a document model scoped to a workspace. | Not included | Included |
| Background jobs A Postgres-backed queue and a worker process. Scoped to the organization, which is why it is not in the free edition. | Not included | Included |
| AI service A FastAPI service managed with uv: pgvector semantic search, OCR, and a usage ledger the API meters against. | Not included | Included |
9 capabilities in the free edition, 16 in the full one. The 7 it adds are the ones that take weeks to build and are painful to retrofit.
Free edition
$0
Auth starter.
- Everything a single-tenant product needs, with no organizations and no payments.
- A public repository. No key to enter, no trial, nothing that expires.
- The same source as the full edition, with the tenancy layer removed.
- Its own licence: build and sell products with it, closed-source, no attribution.
Full edition
$99 one-time
- Everything in the free edition, plus multi-tenancy, billing, documents and jobs.
- Access to the private repository, for you and any number of your developers.
- Every future version, for as long as the repository exists.
- Unlimited products, commercial, closed-source, no attribution.
All sales are final. Refunds are at our discretion, and where the law requires them. Sold through Polar, the merchant of record — fulfilment is an invitation to the private repository. Read the licence before you buy.
Questions
- What exactly am I buying?
- Access to the private repository holding the full edition, and a licence to use it. You clone it, rename it to your product with one command, and it is yours — there is no runtime, no hosted service and nothing to call home to.
- Can I sell what I build with it?
- Yes. Unlimited products, commercial or not, for yourself or for clients, deployed publicly and charged for, closed-source, with no attribution required and no revenue share. What the licence forbids is passing on the kit rather than a product: republishing it, reselling it as a starter or template, or handing the source to a client who has not bought their own licence.
- How many developers does it cover?
- Any number, as long as they work for you — the licence is per legal entity, not per seat, and it is not shared between separate companies (including a parent or a subsidiary). Access ends for a person when they stop working for you.
- Is the free edition crippled?
- No. It is a smaller product, not a demo: real authentication, real admin, real self-hosting, no time limit, no key to enter, and nothing in it stops working. It is generated from the same source by deleting the multi-tenancy layer and everything that depends on it.
- Do I get updates?
- Every future version, with no renewal and no window. They arrive as commits in the repository you already have access to; UPGRADING.md explains how to merge them without losing your own changes. You also keep what you have forever, at the version you received, whatever happens to us.
- Is this a subscription?
- No. One payment of $99. There is no renewal, no seat count and no second invoice.
- What does it run on?
- One Postgres database and one container host. It is designed to self-host on a single small VPS, and it also builds to static assets for a CDN with the API anywhere else.
- What is not included?
- Anything specific to your product, and any third-party account it talks to — Stripe, an S3 bucket, an email provider, OAuth apps. The integration code is written; the accounts are yours to open.
Something not answered here? hello@starterdough.dev .