Site

Accounts you need to create

For Simple init, prepare the selected database and Auth inputs first. Payment, AI and email-delivery accounts can be configured after the local foundation. Better Auth runs in your application; it does not require a separate hosted Auth account. Supabase Auth requires a Supabase project even when PostgreSQL is hosted on Neon.

ServiceWhat you needWhen needed
Supabase or NeonEmpty PostgreSQL database with matching direct and pooled owner URLsBefore init
Supabase Auth or Better AuthSupabase project/API keys, or a same-origin Better Auth URL and signing secret; init provisions its isolated authn credentialDuring init
Object storageSupabase API keys, or operator-provisioned Neon/AWS buckets and credentialsWhen storage is enabled; Simple defaults to Supabase Storage with Supabase Auth, otherwise disabled
Stripe, Lemon Squeezy, or PaddleTest/sandbox credentials and catalogue bindings for the installation-wide providerBefore billing tests; Simple defaults to Stripe test mode without keys
OpenRouter or direct OpenAI / Anthropic / Google AICredentials for the configured chat and embedding transportBefore AI/RAG tests
Brevo or MailjetProvider keys and a verified senderBefore inbox sign-in and transactional email tests; Simple uses non-delivering noop
Cloudflare TurnstileBot-protection keys for the configured originWhen enabling protected public forms
Upstash RedisREST URL and token for shared rate limitsFor shared production counters; the wizard also offers constrained single-process memory limits or development-only setup

Local tooling

Make sure these are installed:

  • Node.js 24.18.1 LTS with Corepack — verify with node --version; the repository selects pnpm 11.20.0
  • Activate .nvmrc before installation: nvm install then nvm use on macOS/Linux; nvm install 24.18.1 then nvm use 24.18.1 with nvm-windows. Run corepack enable and check pnpm --version in the repository.
  • git — to clone the repository
  • A code editor — VS Code works great, the project ships with reasonable defaults
  • Your selected payment provider's webhook tooling or dashboard; the Stripe CLI is useful only when Stripe is selected
  • Docker with its engine running for pnpm run qa:local:gate and other disposable local database profiles; it is not required to initialize a hosted database

Information to prepare ahead of time

The init wizard will ask you for these. Decide them now so the install does not stall:

  • An app name and a short description (one sentence)
  • Your production URL (you can change it later — for now http://localhost:3777 is fine if you do not have one)
  • An admin email — the address that should get super-admin access to /admin-dashboard
  • A contact email and a support email (can be the same)
  • A choice of business model: B2C (individuals) or B2B (workspaces with teams). Choose for the intended product; changing the flag later does not migrate existing Accounts.
  • A choice of billing model: subscription, one_time (licenses), or hybrid.
  • One database provider (Supabase or Neon), one Auth provider (Supabase Auth or Better Auth), and one payment provider (Stripe, Lemon Squeezy, or Paddle). These choices are deployment-wide; do not plan a per-customer selector or an in-place provider switch.
You are ready when…
  • You have the direct and pooled owner URLs for one fresh database, plus the selected Auth/Storage inputs
  • node --version prints v24.18.1
  • pnpm --version prints 11.20.0 in the repository after enabling Corepack
  • You know your admin email and the business model you want to start with