Cloudflare Pages vs Vercel 2026
Choose Cloudflare Pages if you want the most generous free tier and raw edge performance; choose Vercel if you're building with Next.js and want the tightest framework integration.
Pricing
Ease of Use
Core Features
Advanced Capabilities
Cloudflare Pages and Vercel are the two platforms that keep coming up whenever someone asks “where should I deploy my frontend in 2026?” They both run your code at the edge, both connect to your Git repo, and both have generous free tiers. But they’re built on fundamentally different philosophies — Cloudflare wants to be your entire infrastructure layer, while Vercel wants to be the best possible deployment target for frontend frameworks (especially the one they created).
This comparison is based on deploying real production projects on both platforms throughout 2025 and into 2026, not marketing pages.
Quick Verdict
Choose Cloudflare Pages if you want unlimited free bandwidth, are building on multiple frameworks (Astro, SvelteKit, Remix, Nuxt), or plan to use Cloudflare’s broader ecosystem (R2, D1, Workers AI). Choose Vercel if you’re running Next.js, want the smoothest developer experience from push to production, and need per-route observability out of the box.
For a team of 5 developers shipping a Next.js app, Vercel will cost you $100/month and give you less friction. For a solo developer running 6 static sites with occasional dynamic needs, Cloudflare Pages’ free tier is hard to beat.
Pricing Compared
Pricing is where these two platforms diverge sharply, and it’s also where Vercel has historically caught teams off guard.
Cloudflare Pages offers an absurdly generous free tier: unlimited bandwidth, unlimited requests, 500 builds per month. You can run a site getting 10 million hits a month and pay $0 as long as it’s mostly static. The $5/month Workers Paid plan unlocks higher limits on Pages Functions (10 million requests/month included), plus access to KV, R2, and D1 with reasonable included usage. You essentially pay for compute, not eyeballs.
Vercel’s free tier is solid for hobby projects — 100 GB bandwidth, 100 GB-hours of serverless function execution, and 6,000 build minutes per month. That’s enough for a portfolio or a low-traffic SaaS landing page. The Pro plan is $20/user/month, which means a team of 5 is already at $100/month before you touch any add-ons.
Here’s where the math gets uncomfortable with Vercel: bandwidth overages on Pro are $40/100 GB. Serverless Function execution overages are $40/100 GB-hours. Edge Function invocations beyond the included limit cost $2 per million. If your marketing team launches a campaign that drives a traffic spike, you might open your next invoice and find an unexpected $200 charge. I’ve seen this happen to three different clients.
Cloudflare’s model is more predictable. Bandwidth is always unlimited. Workers invocations beyond the included 10 million on the paid plan cost $0.30 per million — an order of magnitude cheaper than comparable Vercel functions. CPU time is metered (10ms per invocation on free, 30ms on paid), which does constrain heavy computation, but for typical API routes and server-rendered pages it’s more than enough.
Total cost of ownership for a mid-traffic SaaS app (50k MAU, SSR, API routes):
- Cloudflare Pages + Workers Paid: ~$5–15/month
- Vercel Pro (2 developers): ~$40–80/month
For a high-traffic marketing site (500k monthly visitors, ISR, image optimization):
- Cloudflare Pages: ~$5/month (the bandwidth is free)
- Vercel Pro: ~$60–150/month depending on function usage and image optimization consumption
Vercel’s image optimization specifically deserves a callout. The free tier includes 1,000 source images. Pro includes 5,000. After that, it’s $5 per 1,000. If you have a content-heavy site with thousands of product images, this adds up fast. Cloudflare Images is a separate product ($5/month for 100k variants), but if you’re just serving optimized images from R2 with Cloudflare’s built-in Polish or Workers-based transformation, you can stay much cheaper.
My tier recommendation:
- Solo dev or small side project: Cloudflare Pages Free
- Small team (2-5 devs), Next.js-heavy: Vercel Pro
- Startup prioritizing cost control: Cloudflare Pages + Workers Paid ($5/month)
- Large team needing compliance/SLA: Either Enterprise, but start the Cloudflare conversation first — they tend to be more flexible on pricing
Where Cloudflare Pages Wins
1. Unlimited Bandwidth on Free Tier — Actually Unlimited
This isn’t a footnote feature. If you run a documentation site, open-source project page, or content-heavy blog, you’ll never think about bandwidth again. I migrated a client’s developer docs site (2M page views/month) from Vercel Pro to Cloudflare Pages and the monthly bill dropped from ~$45 to $0. The site loaded the same speed or faster.
2. The Broader Cloudflare Ecosystem
Cloudflare Pages doesn’t exist in isolation. Once you’re on the platform, you get native bindings to R2 (object storage at S3 pricing without egress fees), D1 (serverless SQLite — surprisingly useful for read-heavy apps), KV (key-value store), Durable Objects (stateful edge compute), Queues, and Workers AI.
This matters because you can build a complete application stack without leaving Cloudflare’s network. I built a full SaaS prototype — auth, database, file uploads, AI features — entirely on Cloudflare’s primitives. Total cost for development and staging: $5/month. Trying that on Vercel means stitching together Vercel KV (Upstash), Vercel Postgres (Neon), Vercel Blob, and third-party AI providers, each with their own billing.
3. Edge Performance for Global Audiences
Cloudflare operates ~330 data centers globally. Pages Functions and Workers run on all of them. Vercel’s Edge Functions also run globally, but their Serverless Functions (which is what most Next.js API routes use by default) run in a single region unless you explicitly configure otherwise.
For a real estate client with customers in Southeast Asia, the Middle East, and Europe, Cloudflare Pages with Workers consistently delivered sub-100ms TTFB globally. The same app on Vercel’s Serverless Functions from iad1 (US East) showed 250-400ms TTFB for Singapore and Dubai users. Yes, you can use Vercel Edge Functions to close this gap, but that requires rewriting your functions to use the Edge Runtime, which doesn’t support all Node.js APIs.
4. No Per-Seat Pricing
Cloudflare Pages doesn’t charge per developer. Your whole team can push to the same project on the free tier. Vercel’s Pro plan is $20/user/month, which creates awkward conversations about whether your contractor or part-time designer “really needs” a Vercel account.
Where Vercel Wins
1. Next.js Integration Is Unmatched (Because They Made Next.js)
This is the elephant in the room. Vercel builds Next.js. When Next.js 15 shipped with Partial Prerendering, Vercel supported it on day one because they built it. Cloudflare Pages got support weeks later, and some edge cases around dynamic rendering still required workarounds.
If you’re running Next.js, Vercel handles ISR (Incremental Static Regeneration), Server Actions, React Server Components, middleware, image optimization, and the App Router’s full feature set without any config. On Cloudflare Pages, you’ll use @opennextjs/cloudflare (the community adapter), which has gotten much better in 2026 but still lags slightly behind on bleeding-edge Next.js features.
For teams heavily invested in Next.js, this isn’t a minor thing — it’s the entire developer experience.
2. Preview Deployments and Collaboration
Vercel’s preview deployment system is the best in the industry. Every pull request gets a unique URL. Comments can be pinned to specific parts of the preview. The integration with GitHub’s PR flow is tight — build logs, performance metrics, and screenshot comparisons show up right in the PR.
Cloudflare Pages has preview deployments too, and they work fine. But they lack the commenting system, the screenshot diffs, and the per-commit analytics that make Vercel’s preview flow so smooth for teams with designers and product managers reviewing changes.
3. Observability and Speed Insights
Vercel’s Speed Insights product gives you Core Web Vitals data broken down by route, device type, and geography. It’s Real User Monitoring (RUM) baked into the platform. You can see that /pricing has an LCP of 1.8s on mobile in Brazil and drill into why.
Cloudflare’s Web Analytics is privacy-first and free, which is great, but it doesn’t give you the per-route CWV breakdown that helps you actually optimize performance. You’d need to bolt on a third-party RUM tool to get comparable data.
4. Serverless Functions with Full Node.js Support
Vercel’s Serverless Functions run on AWS Lambda under the hood and support the full Node.js runtime — every npm package, every native module (via layers), long-running functions up to 300 seconds on Pro. Cloudflare Workers use the V8 isolate model, which is faster to cold-start but limits you to Web APIs. Many Node.js packages work via polyfills in 2026, but some still don’t.
If your API routes depend on sharp, puppeteer, @aws-sdk, or other packages that assume a full Node.js environment, Vercel handles them without any extra config. On Cloudflare, you’ll need to check compatibility or find alternative packages.
Feature-by-Feature Breakdown
Build and Deploy
Both platforms connect to GitHub, GitLab, and Bitbucket. Vercel’s framework detection is slightly smarter — it correctly identified and configured an Astro + Starlight project with zero input from me. Cloudflare Pages needed me to specify the build command and output directory manually for the same project, though it did auto-detect standard Next.js and Remix setups.
Build times are comparable for most projects. Cloudflare Pages builds tend to be 10-30 seconds faster on average because they don’t run the same post-build optimization steps (image optimization, ISR pre-generation) that Vercel does. Whether that tradeoff is worth it depends on your project.
Edge Compute
Cloudflare Pages Functions are Workers under the hood. They cold-start in under 5ms (often 0ms due to V8 isolate reuse). The execution model is request-in, response-out with a CPU time limit (10ms free, 30ms paid — but wall clock time can be much higher while waiting on I/O).
Vercel Edge Functions use the same V8 isolate model and deliver similar cold-start times. But they’re limited to 128 KB of code size on the free tier (1 MB on Pro) and have a 30-second execution time limit. Cloudflare Workers have a 1 MB limit on the free tier (10 MB on paid) and allow up to 30 seconds of CPU time on paid plans.
For Serverless Functions (full Node.js), only Vercel offers them natively. Cloudflare’s answer is “use Workers,” but if you genuinely need Node.js, you’ll need to route those requests to an external Node.js service or use Cloudflare’s nodejs_compat compatibility flag, which covers a lot of ground but not everything.
Storage and Data
Cloudflare’s advantage here is clear. R2 gives you S3-compatible object storage with zero egress fees. D1 gives you serverless SQLite. KV gives you globally distributed key-value storage. Queues and Durable Objects handle async jobs and stateful logic. All of these bind directly to your Pages Functions with near-zero latency.
Vercel’s storage options are rebranded third-party services: Vercel Postgres is Neon, Vercel KV is Upstash Redis, Vercel Blob uses Cloudflare R2 under the hood (yes, really). They work well, and the DX of provisioning them from Vercel’s dashboard is nice, but you’re paying Vercel’s markup. Vercel KV’s pricing is roughly 2x what you’d pay going directly to Upstash.
Custom Domains and DNS
Cloudflare owns one of the world’s largest DNS networks. Adding a custom domain to Cloudflare Pages means using Cloudflare’s nameservers, which gives you their DDoS protection, WAF rules, and caching layer for free. SSL provisioning is instant.
Vercel handles custom domains well and provides DDoS protection via their partnership with Cloudflare (ironic). SSL is automatic. But you don’t get the same level of DNS management, WAF configuration, or bot management that you get natively with Cloudflare.
AI and Machine Learning
Cloudflare Workers AI lets you run inference on open-source models directly at the edge — no external API calls. You can run Llama 3, Whisper, SDXL, and others. For AI-powered features that need low latency and data locality (e.g., EU data staying in EU), this is a meaningful differentiator. The free tier includes 10,000 neurons/day.
Vercel’s AI SDK is a great developer tool for building AI-powered UIs. It handles streaming responses, tool calling, and multi-model routing elegantly. But it’s a client library, not an inference platform. You still need OpenAI, Anthropic, or another provider’s API key and you pay their prices.
If you want to run models yourself: Cloudflare. If you want to build AI UIs that call external providers: Vercel’s SDK is more polished.
Migration Considerations
Moving from Vercel to Cloudflare Pages
The straightforward parts: Static sites and simple SSR apps migrate easily. Connect your repo, configure the build settings, and you’re live. DNS migration to Cloudflare’s nameservers takes 24-48 hours.
The gotchas:
- Next.js projects need
@opennextjs/cloudflare. Test your entire app — especially ISR, Server Actions, and image optimization. Some App Router patterns behave differently. - Vercel’s
ogimage generation uses Satori. This works on Cloudflare Workers but requires thenodejs_compatflag. - Environment variables stored in Vercel need to be recreated in Cloudflare’s dashboard or wrangler.toml. There’s no export feature.
- If you’re using Vercel KV, Postgres, or Blob, you’ll need to migrate to Cloudflare’s equivalents (KV, D1/Hyperdrive, R2) or connect directly to the underlying services (Upstash, Neon).
- Cron jobs defined in
vercel.jsonneed to be reimplemented as Workers Cron Triggers.
Timeline: Budget 1-2 days for a simple site, 1-2 weeks for a complex Next.js app with data storage and cron jobs.
Moving from Cloudflare Pages to Vercel
The straightforward parts: Most frameworks deploy to Vercel with zero config. Connect your repo, and Vercel’s build system handles the rest.
The gotchas:
- If your Pages Functions use Cloudflare-specific APIs (KV bindings, R2 bindings, D1 queries, Durable Objects), you’ll need to refactor every single one. This is the biggest migration cost.
- Workers AI calls need to be replaced with external AI provider APIs.
- If you’ve been enjoying unlimited bandwidth on Cloudflare’s free tier, prepare for Vercel’s 100 GB limit (free) or 1 TB (Pro).
- Custom
_headersand_redirectsfiles need to be converted tovercel.jsonformat. - Your DNS will move away from Cloudflare’s nameservers (unless you keep Cloudflare as a proxy and point to Vercel).
Timeline: 1 day for static sites. 2-4 weeks for apps deeply integrated with Cloudflare’s runtime APIs.
The migration asymmetry tells you something: it’s easier to move to Cloudflare’s ecosystem than away from it, because their runtime APIs are proprietary. Vercel’s lock-in is mostly around Next.js optimization features, which still work elsewhere — just not as well.
Our Recommendation
For Next.js teams who want to ship fast and don’t mind paying for convenience: Vercel is the right call. The framework integration is unbeatable, the preview deployment workflow saves real time, and the observability tools help you catch performance regressions before users do. At $20/user/month, it’s reasonable for a funded startup or established business.
For cost-conscious developers and teams using Astro, SvelteKit, Remix, or Nuxt: Cloudflare Pages is the stronger choice. The free tier alone can handle serious traffic, the Workers ecosystem gives you a complete backend, and the global edge performance is genuinely best-in-class. The DX isn’t as polished as Vercel’s, but the gap has narrowed considerably in 2026.
For agencies managing multiple client sites: Cloudflare Pages’ lack of per-seat pricing and unlimited projects make it the obvious choice. You can run 20 client sites on the free tier without worrying about bandwidth spikes.
For side projects and experiments: Cloudflare Pages free tier, no contest. Zero bandwidth limits, unlimited sites, and you can bolt on Workers AI for your AI experiments at no cost.
The honest truth is that both platforms are excellent. The decision usually comes down to: are you building on Next.js (Vercel) or are you optimizing for cost and infrastructure flexibility (Cloudflare)?
Read our full Cloudflare Pages review | See Cloudflare Pages alternatives
Read our full Vercel review | See Vercel alternatives
Disclosure: Some links on this page are affiliate links. We may earn a commission if you make a purchase, at no extra cost to you. This helps us keep the site running and produce quality content.