type: architecture
status: active
timestamp: 2026-06-20
tags: [architecture, hosting, cloudflare, layer-1]
status: active
timestamp: 2026-06-20
tags: [architecture, hosting, cloudflare, layer-1]
Layer 1 — static hosting on Cloudflare Pages
Cloudflare Pages free primary host for all sites and extensions catalog. Unlimited bandwidth, no card required, fails-closed at quota.
Layer 1 — static hosting on Cloudflare Pages
Concept
Cloudflare Pages free is the foundation host for every public surface in the family. All 11 sites plus the future extensions catalog deploy to Pages. The choice is dictated by the unlimited-bandwidth + no-card combination — no other free tier matches both.
How it works
- One Pages project per site, named
oriz-<site>(e.g.oriz-home) - Each site ships a
wrangler.tomlwithcompatibility_dateand[assets] directory = "./dist" - Deploy command:
pnpm wrangler pages deploy dist - Custom domains map
*.oriz.insubdomains to their Pages projects - The matrix workflow at
chirag127/oriz/.github/workflows/deploy.ymlfans out the deploy across every site - Free-tier numbers we live within:
- Unlimited bandwidth + unlimited static-asset requests
- 100 projects per account (we use ~12)
- 100 custom domains per project
- 500 builds/month (well under usage at normal cadence)
Why this shape
Cloudflare Pages is the only free static host with truly unlimited bandwidth AND no-card-required onboarding. GitHub Pages has bandwidth caps; Vercel and Netlify free have bandwidth caps and edge-function metering; Render and Surge limit project count. Pages also fails-closed at quota with a clean HTTP 1027 — no surprise bill, no card to charge.
Cross-refs
- Survival fallback when Pages dies ? layer-2-survival-fallback.md
- The reason this choice is locked ?
../rules/no-card-on-file.md - Where each site lives ?