Why We Migrated from Vercel to Cloudflare
May 1, 2025
Announcements
Announcement

Why We Migrated from Vercel to Cloudflare

We’ve just completed a full migration of our infrastructure from Vercel to Cloudflare.

Why We Migrated from Vercel to CloudFlare

We have officially completed a full migration of our infrastructure from Vercel to Cloudflare. ⛅

In the spirit of transparency, here is a look at why we made this decision, how the transition went, and what it means for the future of our platform. 👇

First, Credit Where It's Due

Let's start with some appreciation: Vercel is an outstanding platform.

It is arguably one of the best choices for rapidly deploying web applications, especially for teams working with Next.js. Their clean interface, Git-based workflows, and developer experience are top-notch. That said, no platform is without trade-offs and for our specific use case, those trade-offs started to stack up.

Where the Issues Began

Things got complicated when Vercel support requested that we remove our Cloudflare proxy.

🔗 Read their guide on this

Unfortunately, removing the proxy would have meant giving up a layer of control, security, and flexibility that we were not willing to lose. We rely on Cloudflare for traffic, firewalling, and Zero Trust.

Pricing & Usage Limits

Another major factor was cost predictability. Vercel's pricing model is fair at the lower tiers, but it quickly becomes unpredictable and prohibitively expensive at scale.

Our monthly costs were increasingly difficult to justify as our usage grew.

Firewall Limitations

Vercel's firewall simply did not meet our needs. During periods of elevated traffic, including targeted DDoS attacks, a significant volume of malicious requests still reached our app. This not only affected performance but also our usage.

Billing for Malicious Traffic

We were at risk of being charged for malicious traffic that should have been blocked. While Vercel support was responsive in most cases, we had to frequently contact them to dispute charges and get usage adjusted.

This was not sustainable, we weren't constantly monitoring the dashboard in real time, which made usage tracking unreliable.

Lack of Firewall Analytics

No DDoS protection is perfect, we get that. But we expect better visibility when incidents do happen. Vercel only offered 1-day lookback analytics for firewall activity, making it nearly impossible to track patterns, investigate anomalies, or harden our configurations based on actual threat data.

Locked Features

On top of that, many core features: including advanced analytics, custom caching, or team access control... are locked behind add-on pricing, even on their higher-tier plans. This created a fragmented, upgrade-heavy experience where critical tools felt just out of reach unless we kept increasing our spend.

Full Migration to Cloudflare

We've now fully transitioned to Cloudflare:

From Cloudflare Workers to KV storage, we're hosting our entire Next.js app on their infrastructure.

The Pricing Difference

Cloudflare's pricing is dramatically cheaper than Vercel's. Their rates are incredibly competitive, especially at scale. This has been a game-changer for us in terms of cost efficiency. 💸

More Tools, More Control

We now have full access to Cloudflare's powerful suite of tools, including:

  • Advanced caching options
  • Traffic analytics
  • Firewall protection
  • Zero-Trust security
  • DNS management
  • And more...
  • Migration Process

    The migration took some time, but we went back to a clean slate.

    We used the opportunity to fix all lingering bugs on our platform. 🛠️

    Wrapping Up

    That's it!

    We hope this post sheds some light on what we've been working on, our reasoning, and the changes we made.

    Thanks for reading, we're excited for what's next! 🚀

    🔗 Deploying Next.js on Cloudflare Workers – Official Guide

    Update

    Following our migration, we adopted OpenNext, a community-driven initiative designed to make self-hosting Next.js on multiple platforms (like Cloudflare, AWS, Netlify) both possible and sustainable.

    Unlike other modern frameworks like Remix or Astro, Next.js was originally built with Vercel in mind, making platform-agnostic deployments difficult. OpenNext changes that.

    Recent improvements have made the Cloudflare adapter even more stable and feature-complete, giving us confidence to rely on it in a production environment.

    Thanks to OpenNext, we can now run our Next.js app natively on Cloudflare Workers with no compromise on features.

    Related posts

    View all

    Explore more from Osintly

    Osintly

    Start your first investigation today.

    900+ OSINT modules. AI analyst built-in. Real-time data. Everything you need in one place.