Cloudflare Pages
What it is
Cloudflare Pages is a hosting platform for websites — from plain static files to full-stack apps. You connect a (the online folder where your code's history lives), Pages runs your build command, and it serves the result from Cloudflare's CDN (Content Delivery Network — a worldwide set of servers that keep copies of your files near each visitor). Dynamic routes and APIs (Application Programming Interfaces — the endpoints other software calls to talk to your app) run as Pages Functions, which are Workers under the hood. So a single project can be both a static site and a .
Strengths
- Git-driven: every push builds and deploys, with a preview per .
- Static assets are served fast and free from the global CDN.
- Pages Functions add server-side logic with the same bindings (ready-made connections) as Workers — D1 (a ), R2 (file storage), KV (a key-value store, like a giant dictionary of label-to-value pairs).
- Generous free tier and unlimited bandwidth.
- Rollbacks are one click — every is preserved.
Trade-offs
- The build environment has time and resource limits; very large builds can be slow.
- Functions inherit the Workers runtime, so the same non-Node constraints apply.
- For purely dynamic, always-on backends, plain Workers may be a cleaner fit.
- Build configuration for less common frameworks sometimes needs manual tuning.
When to use it
Use Pages for marketing sites, docs, blogs, SPAs (single-page apps — sites that load once and update in place without full page reloads), and full-stack frameworks (Next.js, Astro, SvelteKit) where you want Git-based deploys, free static hosting, and optional server functions in one place.
Vibe coding fit
Pages suits vibe coding because the whole deploy is "connect a repo and push." An can set the build command, output directory, and environment variables, then deploy with Wrangler or trigger a Git build. Tip: tell the agent your and whether you need Functions, so it picks the right adapter and output directory. You can also deploy a prebuilt directory directly.
# wrangler.toml — Pages project config
name = "my-site"
pages_build_output_dir = "dist"
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "your-d1-id"
# Deploy a prebuilt output directory
npx wrangler pages deploy dist --project-name my-site