← All decisions

Public sites deploy to Cloudflare Pages, one project per tenant

accepted

0005 — Public sites deploy to Cloudflare Pages, one project per tenant

Context

Each tenant has a public-facing static site rendered by Astro. Tenants need their own domain and isolated build pipeline (an Actualize build failure shouldn’t block a different tenant’s site).

Decision

One Cloudflare Pages project per tenant. The build command is the same (pnpm --filter @ark/site build with tenant-specific env vars). The domain is per-tenant. Free tier covers many tenants.

Cloudflare specifically because: actualize-v2 already proves this works, the free tier is genuinely generous, edge-deployed static hosting is what we want, and the CMS rebuild webhook flow (Cloudflare hook URL stored per-org in organizations.deploy_hook_url) is a clean integration point.

Consequences

Easier:

Harder:

Alternatives considered