In January 2026 we started moving our own agency site and 14 client sites off Vercel and onto Cloudflare Pages + Workers. Here's the honest breakdown — why we did it, what broke, what got better, and whether you should consider the same move.

Why we were on Vercel in the first place

Vercel was our default from 2021 onwards. The developer experience is genuinely great — git push and you're deployed, preview URLs on every PR, image optimisation baked in, analytics that just work. For Next.js projects, nothing came close.

We built dozens of client sites on it. It worked. Until it didn't.

What pushed us to move

Three things stacked up over 2025:

1. Cold starts on Sydney/Melbourne traffic

Vercel's serverless functions were consistently returning first-request latencies of 800–1400ms for Australian visitors. Warm requests were fast, but any traffic below a few thousand requests per day hit cold starts constantly. For a marketing site with irregular traffic, that's brutal.

2. The billing surprises

One client site had a slow month, then went viral for two days. Their Vercel bill jumped from USD $20 to USD $840. The pricing model — bandwidth-based on the Pro tier, then execution-based for functions — meant we couldn't predict costs reliably. Clients asking "what will my hosting cost this month?" got shrugs.

3. The lock-in was creeping

We were using next/image, Vercel Analytics, Vercel Blob storage, edge middleware — all lovely APIs, all Vercel-specific. Moving off would mean rewriting integrations. That's exactly the vendor lock-in we tell clients to avoid.

What we moved to: Cloudflare Pages + Workers

Cloudflare Pages hosts the static bits (HTML, CSS, JS, images). Cloudflare Workers runs the dynamic bits (API routes, form handlers, edge logic). Everything runs from Cloudflare's edge network — 350+ cities globally, including Sydney, Melbourne, Auckland, Brisbane.

What that means in practice

What broke during migration

Not everything was smooth. Real issues we hit:

1. next/image optimisation

Vercel's image optimisation is genuinely the best in class. Cloudflare Images ($5/month for 100k images) is fine but requires reconfiguration and cache warming. For sites with heavy imagery, this took a week to tune.

2. Server actions and streaming

Next.js server actions run on Vercel's serverless. Cloudflare Workers doesn't support all of Next.js's edge features yet — specifically streaming responses and some middleware patterns. Two of our 14 sites required refactoring form submissions to use Workers directly.

3. Deployment tooling

Cloudflare's Wrangler CLI is fine but less polished than Vercel's. Preview environments work but need explicit config. Rollbacks are a manual multi-step process compared to Vercel's one-click.

What got better

What we'd tell you to do

Not every site should move. Consider Cloudflare Pages + Workers if:

Stay on Vercel (or move to it) if:

Cost comparison over 12 months

Real numbers from one of our mid-sized client sites (marketing site + booking flow, ~50k monthly visits):

That's a 12× reduction, on identical traffic, with better latency. For our own agency site, we went from USD $85/month to USD $0 — the free tier covers it.


Found this useful? Two new posts a month — back to all insights.