Deployment
React Starter Kit deploys as three Cloudflare Workers backed by a Neon PostgreSQL database. Infrastructure is managed with Terraform.
What Gets Deployed
| Component | Target | Description |
|---|---|---|
| Web Worker | Cloudflare Workers | Edge router – receives all traffic, routes to app/api via service bindings |
| App Worker | Cloudflare Workers | Serves the React SPA and static assets |
| API Worker | Cloudflare Workers | Hono + tRPC server, authentication, database access |
| Database | Neon PostgreSQL | Managed Postgres with Hyperdrive connection pooling |
| Infrastructure | Terraform | Hyperdrive configurations, optional R2 storage |
See Architecture Overview for how these components connect.
Prerequisites
- Cloudflare account with Workers enabled
- Neon account for PostgreSQL hosting (sign up)
- Terraform installed (
brew install terraformor download) - Domain added to Cloudflare DNS (optional for initial setup)
Environments
| Environment | Intended trigger | URL pattern | Purpose |
|---|---|---|---|
| Development | bun dev | localhost:5173 | Local development |
| Staging | Push to main | staging.example.com | Pre-production validation |
| Production | Manual dispatch | example.com | Live environment |
Staging and production each have their own Wrangler configuration, Hyperdrive bindings, and Terraform workspace. Development is local and provisions no cloud resources. See CI/CD for deployment triggers. The checked-in deployment step is disabled until Cloudflare credentials are configured.
Deployment Checklist
- Provision infrastructure – run Terraform to create the Hyperdrive configurations. Workers, routes and the custom domain's DNS come from Wrangler at deploy time (ADR-002)
- Set secrets – configure
BETTER_AUTH_SECRETandRESEND_API_KEY, plus secrets for any optional integrations you enable, via Wrangler. See Cloudflare Workers for the full list - Run migrations – apply schema to your production database. See Production Database
- Build and deploy – push code to workers. See CI/CD or deploy manually:
bash
bun run build # Build all deployable workspaces
bun api:deploy --env="" # Deploy production API worker
bun app:deploy --env="" # Deploy production App worker
bun web:deploy --env="" # Deploy production Web workerSection Pages
- Cloudflare Workers – Wrangler config, secrets, build and deploy
- Production Database – Neon setup, Hyperdrive, running migrations
- CI/CD – GitHub Actions pipelines, verifying pull requests
- Monitoring – Logs, analytics, rollbacks, troubleshooting