Oct 7, 2025 3 min read

Vercel vs Cloudflare Pages — My Real Migration Experience (Dynamic to Static Edge)

Vercel vs Cloudflare Pages — My Real Migration Experience (Dynamic to Static Edge)

🚀 Why I Switched from Vercel to Cloudflare Pages##

I’ve been using Vercel for a long time to host my Next.js dynamic projects. It’s a powerful platform with excellent developer tools, easy integration, and fast deployment.

But here’s the catch — serverless costs can grow unexpectedly, and the free plan limits are tighter when your traffic scales.

Recently, I migrated my projects from Vercel to Cloudflare Pages, mainly for cost-effectiveness, performance, and simplicity. If you mostly serve static or semi-dynamic content, Cloudflare’s ecosystem just makes sense.

💡 The Core Reason: Serverless Without Credit Card Anxiety##

In the serverless world, you never know how your bill might grow — edge functions, bandwidth, cold starts… all add up.

But Cloudflare Pages changes that.

  • ✅ Unlimited bandwidth
  • ✅ Unlimited visits
  • ✅ Built-in CDN edge caching (worldwide)
  • ✅ Free D1 database (SQLite-based)
  • ✅ Automatic SSL + Cache + Firewall

Basically, it gives you the global power of a CDN + serverless edge — with no surprise billing.

That’s what I needed — edge hosting without worrying about unexpected credit card charges.

🧠 My Tech Stack Comparison##

  Feature
  Vercel
  Cloudflare Pages




  **Framework Used**
  Next.js
  Hugo


  **Database**
  SQLite (Vercel + D1 test)
  D1 (Cloudflare SQLite)


  **Server Type**
  Serverless Functions
  Edge Functions


  **Language/Runtime**
  Node.js
  Workers Runtime


  **Deployment Tool**
  Vercel CLI / Git
  Wrangler CLI


  **Cost**
  Free tier limited, scales fast
  Practically free for static + D1


  **Performance**
  Fast, but depends on function cold starts
  Global CDN edge cache, super fast


  **Build Speed**
  Moderate (Next.js heavy builds)
  Extremely fast (Hugo static builds)


  **Bandwidth Limit**
  Limited
  Unlimited

🧩 My Workflow Migration##

When I decided to move from Vercel → Cloudflare Pages, here’s what I did technically:

  • Extracted SQL DataFrom my D1 SQLite database on Cloudflare (previously Next.js API).
  • Converted SQL → MarkdownUsing a custom Node.js script, I converted my data into .md files compatible with Hugo.
  • Rebuilt Site with HugoHugo is insanely fast — it builds static files in seconds. This means no runtime cost, no cold starts, no API load.
  • Deployed with Wrangler CLIwrangler pages deploy ./public — done. My Hugo-generated static site was live instantly on Cloudflare’s global edge network.

🌍 The Result##

olimiah.pages.dev → lightning fast, fully static, globally cached olimiah.vercel.app → still dynamic, but slower under load and limited in free usage

Performance-wise, Cloudflare Pages wins for my kind of projects.
And financially, it’s unbeatable — no hidden costs, no billing surprises, no bandwidth limits.

⚖️ Final Verdict##

If your site:

  • doesn’t require heavy real-time dynamic content
  • can be statically pre-rendered or cached at the edge
  • and you want freedom from surprise bills

👉 Then Cloudflare Pages is the smarter choice in 2025.

But if you’re running complex React SSR apps or APIs that need dynamic rendering — Vercel still holds the edge (pun intended).

  • 🌐 My Sites:

    • olimiah.pages.dev
    • olimiah.vercel.app
  • 🧰 Tools I Used:

    • Cloudflare Wrangler CLI
    • Hugo Static Site Generator
    • Next.js
    • Cloudflare D1

💬 My Takeaway##

Cloudflare Pages is not just a “free alternative” — it’s a powerful edge-first platform that makes static and hybrid sites incredibly efficient.

And for solo devs, students, or freelancers like me who care about speed, simplicity, and zero-cost scaling — it’s absolutely worth it.