Skip to content

Open source & self-hosting

The architecture is designed so that anyone can run their own instance on their own AWS account — the same reason nothing is hardcoded.

What a self-host needs

  1. This repository + Node 20 + pnpm.
  2. One AWS account (no multi-account requirement — a single account with one environment works).
  3. A domain you control.

Steps

  1. Edit infra/config/accounts.json (your account ID) and infra/config/environments.json (your domains; you can delete the unused environments).

  2. cdk bootstrap aws://<your-account>/us-east-1

  3. Create the hosted zone delegation for your domain.

  4. Deploy:

    Terminal window
    cd infra
    npx cdk -a 'npx ts-node bin/app.ts' deploy -c env=dev --all
  5. Optionally deploy the pipeline with your GitHub connection for CI/CD.

Cost profile

Everything scales to zero. Typical idle cost for a personal instance: Route 53 + KMS + CloudTrail + Config ≈ a few dollars per month; usage adds pennies (DynamoDB on-demand, Lambda per request, S3 per GB). A monthly budget alarm is included by default.

Customization points

  • infra/config/*.json — accounts, domains, features.
  • apps/app/public/config.json — local dev defaults.
  • Security contacts / budget thresholds — CDK context values.
  • Everything else is product code; keep it in sync with upstream.