Deployment
Vercel projects
Import each repository in the Vercel dashboard (Add New → Project → Import Git Repository).
| Vercel project | Repository | Root directory | Domain |
|---|---|---|---|
coipe-web | fuisl/coipe | apps/web | coipe.app, *.coipe.app (later) |
coipe-docs | fuisl/coipe-docs | . | docs.coipe.app |
ceo-of-little-people | fuisl/ceo-of-little-people | . | ceooflittlepeople.com, www.ceooflittlepeople.com |
Framework preset Next.js, install command pnpm install --frozen-lockfile, Node 24. Each repo's vercel.json sets region sin1. For coipe-web, set API_ORIGIN to the cluster's API origin once it exists, so /api/* is rewritten to it.
DNS
Both domains are registered at Spaceship. The plan (ADR-003):
- Add
coipe.appandceooflittlepeople.comto Cloudflare (Free plan). - Change the nameservers at Spaceship to the two Cloudflare gives you. If DNSSEC is on at Spaceship, turn it off first and re-enable it from Cloudflare afterwards.
- Point Vercel-hosted names at Vercel with DNS-only (grey cloud) records: apex
A 76.76.21.21or flattenedCNAME cname.vercel-dns.com, subdomainsCNAME cname.vercel-dns.com. Check the exact values Vercel shows for each domain. - Cluster-hosted names are created by the Cloudflare Tunnel configuration in
fuisl/coipe-infra.
coipe.app is on the HSTS preload list (all .app domains are), so it only works over HTTPS.
API
Merges to main in fuisl/coipe that touch apps/api or packages/ build ghcr.io/fuisl/coipe-api:main-<timestamp>-<sha>. Flux image automation in fuisl/coipe-infra picks it up and commits the bump. Roll back with git revert in coipe-infra.