Cloudflare Pages Review → Vercel Review →

Pricing

Feature
Cloudflare Pages
Vercel
Free Plan
Unlimited bandwidth, 500 builds/month, 1 build at a time, unlimited sites
100 GB bandwidth/month, 6,000 build minutes/month, unlimited sites, limited serverless invocations
Starting Price
$5/month (Workers Paid — unlocks higher limits for Pages Functions)
$20/user/month (Pro plan)
Mid-tier
$25/month (Workers Paid with additional usage on KV, R2, etc.)
$20/user/month Pro — 1 TB bandwidth, 24,000 build minutes, advanced analytics
Enterprise
Custom pricing — SLA guarantees, dedicated support, advanced analytics
Custom pricing — SLA, dedicated support engineer, spend-based commitments

Ease of Use

Feature
Cloudflare Pages
Vercel
User Interface
Functional but scattered — deployment settings live in one place, Workers settings in another. Dashboard has improved significantly since 2024 but still feels like two products duct-taped together.
Clean, opinionated, developer-focused. One of the best deployment dashboards in the industry. Deployment previews, branch tracking, and logs all feel cohesive.
Setup Complexity
Git connect → deploy takes about 3 minutes. Adding Workers Functions requires wrangler.toml config and some context-switching.
Git connect → deploy in under 2 minutes. Framework detection auto-configures build settings for 35+ frameworks with zero config.
Learning Curve
Moderate. Pages itself is simple, but once you need KV, R2, D1, or Durable Objects, you're learning the full Workers ecosystem.
Low for Next.js devs. Moderate for other frameworks. The platform abstracts most infra concerns, but Vercel-specific config (vercel.json, middleware edge runtime) requires docs.

Core Features

Feature
Cloudflare Pages
Vercel
Contact Management
N/A — edge hosting platform, not a CRM
N/A — edge hosting platform, not a CRM
Pipeline Management
N/A
N/A
Email Integration
Cloudflare Email Routing available as a separate product — can forward to Workers for processing
No native email service; integrates with third-party providers like Resend, SendGrid via serverless functions
Reporting
Basic Web Analytics (free, privacy-first), Workers Analytics Engine for custom metrics. Real-time logs on paid plans.
Built-in Web Analytics, Speed Insights (Core Web Vitals per-route), and Monitoring dashboard. Detailed function execution logs on Pro+.
Automation
CI/CD via Git integration or Direct Upload API. No built-in cron — use Workers Cron Triggers separately.
CI/CD via Git integration. Cron jobs supported natively via vercel.json. Preview deployments auto-generated per PR.

Advanced Capabilities

Feature
Cloudflare Pages
Vercel
AI Features
Workers AI gives access to open-source models (Llama, Whisper, Stable Diffusion) running directly on Cloudflare's edge GPUs. Vectorize for embeddings. AI Gateway for proxying/caching LLM calls.
Vercel AI SDK provides framework-agnostic streaming helpers for OpenAI, Anthropic, etc. No on-platform model hosting — you bring your own API keys. v0 for AI-generated UI components.
Customization
Deep — build output configuration, custom headers/redirects via _headers and _redirects files or wrangler.toml. Full Workers runtime customization.
Moderate — vercel.json for rewrites, headers, redirects. Middleware runs at the edge. Less raw control than Workers but covers 90% of use cases.
Integrations
Native: R2 (S3-compatible storage), D1 (SQLite), KV, Queues, Durable Objects, Hyperdrive (Postgres proxy), Turnstile (CAPTCHA). Marketplace growing.
Native: Vercel Postgres (Neon), Vercel KV (Upstash Redis), Vercel Blob (object storage), Vercel Edge Config. Large marketplace of third-party integrations (Supabase, PlanetScale, etc.).
API Access
Full REST API for deployments, DNS, and all Workers primitives. Wrangler CLI is mature and well-documented.
Full REST API for deployments, domains, environment variables. Vercel CLI is polished. SDK support for programmatic deployments.

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 og image generation uses Satori. This works on Cloudflare Workers but requires the nodejs_compat flag.
  • 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.json need 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 _headers and _redirects files need to be converted to vercel.json format.
  • 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.