status: active
timestamp: 2026-06-20
tags: [hosting, cloudflare, firebase, pages]
Cloudflare Pages hosts every website and app; no other host
All sites to Cloudflare Pages free. GH Pages backup only
Cloudflare Pages hosts every website and app; no other host
Decision
Every website and every app in the family deploys to Cloudflare Pages free. No exceptions. This covers content sites (repos/oriz/own/prod/apps/content/*), tool apps (repos/oriz/own/prod/apps/tools/*), hub apps (repos/oriz/own/prod/apps/hub/*), personal apps (repos/oriz/own/prod/apps/personal/*), the extensions catalog, and every per-extension subdomain. Firebase Hosting, Vercel, Netlify, Render, Fly, and GitHub Pages-as-primary are all REJECTED. GitHub Pages remains only as the per-site survival mirror per github-pages-mirror-per-site.
Why
Cloudflare Pages free has unlimited bandwidth, unlimited static-asset requests, 100 repos/account (soft cap), 100 custom domains/project, 500 builds/month — well above the family’s needs indefinitely. It fails closed with HTTP 1027 at quota, no card required ever. Firebase Hosting offered no advantage over this and came tied to the same Firebase project we’re keeping on Spark — running both was needless surface area.
Implications
- Every site gets a
wrangler.tomlwithname = "oriz-<site>",compatibility_date, and[assets] directory = "./dist". - Deploy command:
pnpm wrangler pages deploy dist. - Master matrix workflow at
chirag127/oriz/.github/workflows/deploy.ymlruns deploys (one job per site) on master pointer-bump commits. - Each site also builds a static GitHub Pages mirror per github-pages-mirror-per-site for survival fallback.
- Firebase project usage is now exclusively Auth + Firestore + App Check + (future) Storage — never Hosting.
- DNS:
*.oriz.insubdomains resolve to Cloudflare Pages projects via Cloudflare DNS free.
Cross-refs
- Firebase Spark forever
- No subscriptions anywhere
- GitHub Pages mirror per site
- Cloudflare Pages service entry
- Layer 1 — Static hosting architecture