All pages

Setup

Follow the pages in order. Start with your machine, continue through the provider integrations you need, and finish with deployment.

Nothing here is a gate. Each service is optional except the database and Clerk. An unconfigured API integration answers 501 not_configured when reached, while an omitted PostHog token disables analytics at build time. You can skip Stripe and still have a running app with a checkout button that says what is missing.

SETUP.md at the repository root is the executable guide for a coding agent. The agent inventories each selected provider account, provisions through a CLI, API, MCP server, or authenticated browser, and writes values to the ignored environment files. You handle account login, MFA, consent, required approvals, and choices between plausible accounts or resources. The agent hands those steps to you as pnpm setup:wizard groups, so a secret goes from the dashboard to the environment file without passing through the agent.

These pages explain what the agent configures and provide the handoff path when a suitable tool is unavailable. Provider command surfaces change, so the agent checks current help or visible controls before it writes.

The full list of variables, with which app reads each one, is Environment variables.

  1. 01Install and runClone the repo, install with pnpm, and hand the in-repo setup to an agent through SETUP.md.
  2. 02ClerkCreate a Clerk application, turn on email codes and the Google and GitHub providers, turn passwords off, copy the two keys the apps read, and point the user webhook at the api.
  3. 03StripeCreate the products and prices the catalog expects, register the webhook endpoint, and copy its signing secret.
  4. 04NeonCreate a Neon project, copy the pooled connection string, and run the first migration.
  5. 05ResendVerify a sending domain in Resend and copy the API key the api uses to send mail.
  6. 06PostHogCreate an optional PostHog project and configure browser product analytics through the built-in proxy.
  7. 07DeployPut the web app on Vercel or Railway and the api on Railway, with the environment variables and webhook URLs each one needs.

Updated