← Back to Blog

How Hanker Cut ~$90K a Year by Moving from Vercel to DigitalOcean

Admin·May 1, 2026

For a long time, it was exactly what Hanker needed.

Until it wasn’t.

When Our Hosting Bill Started Hurting

As we scaled past ~2 million monthly users, our Vercel bill started creeping up in a way that felt… unpredictable.

Then it wasn’t creeping anymore.

We hit a point where we were paying around $7,800 per month.

That number forced us to stop and ask a hard question:

Are we still paying for speed—or just paying too much?

Where the Costs Came From

A big chunk of our costs came from things that made Vercel great in the first place:

  • Serverless function invocations

  • Edge middleware running on nearly every request

  • Bandwidth overages

  • Built-in image optimization

Individually, they felt small. At scale, they stacked up fast.

And the worst part? The bill wasn’t very predictable.

Why We Chose DigitalOcean

We weren’t just looking for something cheaper—we wanted:

  • Predictable pricing

  • More control over how things run

  • Enough simplicity that we wouldn’t drown in DevOps

DigitalOcean felt like the right middle ground.

Not too abstract, not too low-level.

How We Migrated

We didn’t just copy-paste our setup—we rethought parts of our architecture.

Moving Away from Serverless Everything

We realized something important:

Most of our pages didn’t actually need to be rendered on every request.

So we leaned heavily into static generation:

  • Pre-rendered pages wherever possible

  • Simple cron-based revalidation instead of ISR

  • Reduced runtime logic significantly

Replacing Serverless Functions

We replaced dozens of serverless endpoints with a single Node.js service running on a Droplet.

  • $48/month

  • Nginx in front

  • PM2 managing processes

That one change alone cut a massive portion of our costs.

Handling Images Ourselves

Instead of relying on built-in optimization, we:

  • Switched to a CDN-backed image pipeline

  • Cached aggressively

  • Paid about $20/month instead of hundreds

Adding a CDN Layer

To keep performance strong globally:

  • We cached static assets at the edge

  • Reduced origin hits dramatically

  • Tuned cache headers carefully

What Our Costs Look Like Now

Here’s the before vs after:

CategoryBefore (Vercel)After (DigitalOcean)Hosting & Compute$4,200$120Serverless Functions$2,100$0Bandwidth & Edge Usage$1,200$80Image Optimization$300$20Total$7,800$220

We went from $7,800/month → ~$220/month.

That’s about $7,500 saved every month, or roughly $90K per year.

The Tradeoffs (Real Talk)

This wasn’t a free win.

We did take on more responsibility.

More DevOps

We now manage:

  • Deployments

  • Monitoring

  • Scaling decisions

But honestly? It’s been manageable.

Less “Magic”

We lost some of the automatic scaling and edge features.

But we realized we didn’t need as much of that as we thought.

Slight Performance Adjustments

Edge-first performance took a small hit—but with good caching, most users don’t notice.

What We Learned

Looking back, a few things stand out:

  • Convenience scales poorly in cost

  • Static rendering is wildly underrated

  • You probably don’t need serverless for everything

  • Predictability matters more than peak performance at scale

Should You Do This?

If you're early-stage, we’d still recommend Vercel without hesitation.

It helped us get here.

But if your bill is crossing into the thousands each month, it’s worth taking a step back and asking:

What are we actually paying for?

Final Thoughts

This wasn’t just about saving money.

It was about gaining control over how our system works—and making sure our infrastructure scales with us, not against us.

Saving ~$90K a year just made the decision feel a lot better