Vercel vs Cloudflare Pages for static sites
Deploy & ship · updated may 2026
For a genuinely static site, the two platforms are close enough that picking between them on performance alone is mostly noise. Both put you on a real edge network, both build fast, both have generous free tiers. The differences that actually matter show up once you look past “does it deploy my static site” into the specifics of your build, your traffic pattern, and what else you’re running alongside the site.
Cloudflare’s edge network has more points of presence globally than Vercel’s, and for a genuinely global audience that shows up as a real, if modest, latency improvement on first byte. If your traffic is concentrated in one or two regions, this difference mostly disappears and isn’t worth choosing a platform over.
Where I’ve actually seen a meaningful gap is pricing at scale, specifically around bandwidth and function invocations if the site has any dynamic pieces at all — API routes, on-demand image optimization, that kind of thing. Cloudflare’s free and paid tiers are notably more generous on bandwidth, because that’s their core business and they’re not trying to make margin on it the way Vercel is. If you’re running a project with unpredictable or high traffic spikes and thin margins, that difference compounds.
Vercel’s developer experience for Next.js specifically is still ahead, unsurprisingly, since they build the framework. For Astro it’s a level playing field, both have solid first-party adapters, both auto-detect the framework and configure the build without much input from you. I haven’t hit a build issue on either that was actually about the platform rather than my own config.
Preview deployments work well on both, but Vercel’s comment integration with GitHub PRs is a little more polished out of the box — the preview URL and a build status show up inline on the PR without extra setup, where Cloudflare’s GitHub integration gets you there but with slightly more manual wiring depending on which auth flow you’re on.
My actual default: Cloudflare Pages for anything genuinely static with an eye on cost, especially if I’m already using other Cloudflare products like Workers or R2 for the same project, since keeping it in one ecosystem simplifies DNS and billing. Vercel when the project is Next.js, or when a client’s team is going to be the one managing deploys and I want the smoothest possible experience for people who aren’t going to read documentation before clicking around.
builder, codelabs.com.au
Stay up to date with AI coding
New articles roughly every couple of weeks. No spam, unsubscribe any time.