Free tier
Free: unlimited sites, seats, requests and bandwidth for static assets
- Unlimited sites, seats, requests and bandwidth (static assets)
- 500 builds/month, 1 build at a time, 20-minute build timeout
- Up to 20,000 files per site, 25 MiB max per file, 100 custom domains per project
- Server code (Pages Functions) counts against Workers Free: 100,000 requests/day
Paid
$5/mo: Workers Paid: $5/month minimum per account — 10M requests/month included, then $0.30 per extra million. Static asset requests stay free.
Catches
- If your project has no top-level 404.html, Pages treats it as a single-page app and serves / for unknown paths automatically.
Deploying to Cloudflare Pages
- Connect
- Dashboard → Workers & Pages → Create → Pages → Connect to Git, choose the repository, pick the framework preset.
- Build
- React (Vite) preset: build command
npm run build, build directorydist. - Env vars
- Workers & Pages → your project → Settings → Environment variables
- Domain
- Your project → Custom domains → Set up a custom domain. Easiest if the domain's DNS is on Cloudflare (Cloudflare Registrar sells domains at cost).
Single-page app fallback
# No config needed: if there is no top-level 404.html,
# Cloudflare Pages serves index.html for unknown routes.
# If you DO ship a 404.html, add public/_redirects with:
/* /index.html 200 Official docs (opens in a new tab)