Write, send and chase your invoices in one place, and know at a glance what is owed.
Your product, at /app: Northwind's invoicing here — the only part a buyer writes.
Account, at /account: billing, the team, settings. Done.
Admin, at /admin: revenue, sign-ups, workspaces, support. Done.
Every row below is one answer to npm run setup. Your copy runs on what you choose; nothing else in the code changes.
This demo: Northwind's invoicing, an example
Your copy: Start from a blank page — your product goes there
This demo: In memory: a copy of its own for each visitor
Your copy: SQLite — a file, Turso or D1
.env asks for: DATABASE_URL — file:./data.db | libsql://<db>.turso.io?authToken=… | d1://<BINDING>
This demo: The demo's: any password signs in
Your copy: Real accounts — Better Auth
.env asks for: BETTER_AUTH_SECRET, BETTER_AUTH_URL
This demo: Nothing: email and password only
Your copy: Google
.env asks for: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
This demo: The outbox: Settings → Outbox
Your copy: Resend
.env asks for: RESEND_API_KEY
This demo: The demo's checkout: no card
Your copy: Stripe
.env asks for: STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_AUTOMATIC_TAX