Skip to content
Open source · MIT · Deno 2 + Postgres

The groundwork of your SaaS, already built.

Seed is a free, MIT-licensed SaaS starter with sign-in and two-factor authentication (2FA), teams with roles, per-seat Stripe billing, realtime, an offline app and an admin area. You deploy it to one Linux server you rent with Docker Compose.

The demo is the app you get on day one, with sample data in your new account. Seed is a work in progress, built in public: see what works today.

$ gh repo create my-product --template spy4x/seed --private --clone $ cd my-product $ cp infra/envs/.env.example infra/envs/.env $ deno task vapid-key:create $ deno task proxy:start $ deno task dev
Before proxy:start, fill in the secrets in infra/envs/.env.
The notes screen of the Seed web app: a list of a team's notes with their tags and when each changed, and a button to add one.
browser test suites and test files run in CI
34 · 232
pull requests merged since January 2026, each through review
208
licence: no account, no paywall
MIT

What you get

Everything before your first feature

Each part below works today and is tested in CI. Google and GitHub sign-in and Stripe billing need your own keys, so they are off in the demo.

Sign-in that is done

Email and password with verification codes, password reset, Google and GitHub sign-in, and 2FA with an authenticator app. Sessions you can see and end.

Learn more
The security page of a profile: the sign-in methods, two-factor authentication (2FA) and the open sessions.

Per-seat billing

Stripe subscriptions per team: a free plan with limits, a paid plan per seat, trials, a grace period when a card fails. The owner confirms the price before each invite.

Learn more
A sample team's plan in the demo app, at the demo's example prices: Pro, active, €36.00 a month with its renewal date, a button to manage billing, and a note that 4 members pay €9.00 each a month, the owner included.

Realtime and offline

Changes reach every open tab over a WebSocket. The app installs, opens without a network, queues writes and shows a conflict instead of overwriting someone's work.

Learn more
The note editor of the Seed app, with the title being changed; every other open window shows the new title after Save.

Teams from day one

Every account gets a team at sign-up. Invite people, give them roles from viewer to owner, hand ownership over, restore a deleted team for 30 days.

Learn more
The members of a team, each with their role, a button to invite people, and one member's menu open: Make Viewer, Make Admin, Remove from group.

An admin area

Operators find a person, manage teams, refund a payment and check the system's health. On its own host, with every action confirmed and logged.

Learn more

A public website

This site: server-rendered, works with JavaScript turned off, with pricing from your plan catalog, legal pages and a double opt-in newsletter.

Learn more
All features, with screenshots and status

Runs on one server you rent

One server, one docker compose, no surprise bills.

Seed runs on any Linux server you rent. Compose starts the API, the worker, the web app, Postgres, Valkey and Traefik with automatic certificates. Metrics and logs go to VictoriaMetrics and VictoriaLogs with Grafana on top, and a backup container saves an encrypted copy of the database every day. Several products can share one server. Nothing bills you per request, so a traffic spike costs you nothing extra.

Skip Seed if you want serverless functions or Vercel: it is built for a server you control.

Web appPreactWebsiteFreshAPIHono on DenoPostgresevery changeWorkerthe slow workMail, pushand clean-upAll on one server, behind Traefik,with Valkey and Grafana

Quick start

Running locally in six commands

You need Deno 2, Docker and the GitHub CLI.

Fill in the secrets in infra/envs/.env after the copy, then open http://app.localhost. The README lists every secret and how to deploy.

$ gh repo create my-product --template spy4x/seed --private --clone $ cd my-product $ cp infra/envs/.env.example infra/envs/.env $ deno task vapid-key:create $ deno task proxy:start $ deno task dev

Honest status

Where it stands today

Seed is a work in progress. Here is exactly what works and what does not.

Works today

Ready
  • Sign-up, sign-in, email verification, password reset, Google and GitHub sign-in, 2FA with an authenticator app
  • Teams with members, roles, invitations and ownership transfer
  • Per-seat billing with trials, through Stripe
  • The list of signed-in devices, and account deletion with a 7‑day undo
  • Personal API tokens
  • Realtime, the offline app and web push
  • The admin area
  • The outbox worker, the newsletter and this website

Not built yet

WIP
  • Passkeys and magic links
  • Translations: the app is English only
  • File uploads: no file store is bundled yet
  • Downloading an account's data
Follow progress on GitHub

Not a developer? I'll build your product on Seed.

I'm Anton, the person who builds Seed. Founders hire me to turn an idea into a live product that people can sign up for and pay for. Because sign-up, teams and payments already exist, your budget goes to what makes your product different.

See how it works and what it costs

Who builds Seed

Built by one engineer, for real client work

I'm Anton Shubin, a senior full-stack engineer and tech lead, freelancing since 2013. Seed is the groundwork I kept rebuilding for clients, pulled into one repository. I use it for paid MVPs, so it gets fixed when it breaks. If something is missing for your product, open an issue or write to me.

Questions

Before you start

Is Seed really free?

Yes. It is MIT-licensed: use it for any number of products, commercial or not, publish your fork, no account needed. You pay only for one server you rent and for services you turn on, such as Stripe or an email provider.

Why Deno and Preact instead of Next.js?

They run on web standards (fetch, Request, Web Crypto, ES modules), start fast and need few dependencies, so there is less to update and less that breaks. If your team lives in the Next.js ecosystem, a Next.js starter will suit you better; the comparison names good ones.

Can I use it for client work?

Yes. MIT allows it, and that is how I use it. Your client needs no licence of their own.

Is it production-ready?

The parts listed under "Works today" have tests in CI: every pull request runs the sign-in, profile, notes and teams tests, and the full suite runs after each merge. Seed as a whole is still a work in progress; read the status list before you rely on a part.

See it working in a minute

The demo is the app you get on day one. Sign up and start in teams full of sample notes.