Outrageous billing on a monorepo

need to share this because I wish someone had warned me earlier.

I’ve been running 6 Next.js frontend projects on Vercel Pro, all from the same mono-repo with different
configurations. The app is lightweight — 36K edge requests, 12K function invocations, 568 MB of data transfer per
month. Practically nothing.

My bill this cycle? $602.21.

Here’s the breakdown that should make every mono-repo team think twice:

  • Build Minutes: $601.52 (79 hours)
  • Function Invocations: $0.60
  • Edge Requests: $0.00
  • Data Transfer: $0.00
  • Everything else: $0.00
  • Pro subscription: $20.00

Read that again. 99.7% of my bill was build minutes. The actual hosting, compute, CDN, and functions combined cost
less than a dollar.

The problem? Every single git push triggered builds for all 6 projects — even when the commit only touched backend
files that had absolutely nothing to do with the frontend. Vercel offers ignoreCommand to filter unnecessary builds,
but by the time I discovered it, I’d already burned through hundreds of dollars in wasted builds.

There were no alerts. No warnings. No “hey, your build minutes are unusually high this month.” Just a bill that kept
climbing silently.

I migrated all 6 projects to Railway in a single afternoon. Same Next.js codebase, standalone builds, same
functionality. Total cost for frontend AND backend hosting for all projects: under $35/month. Builds included.
That’s 17x less.

Let me put that in perspective: what Vercel charged me for one day of build minutes would cover an entire month on
Railway.

I’m not saying Railway is perfect or that Vercel has no value. Vercel’s DX is great and the platform is polished.
But when your pricing model charges $600/month for a workload that costs $35 elsewhere — and offers zero visibility
into cost escalation — something is fundamentally broken.

To the Vercel team: mono-repos are not a niche pattern. They’re increasingly standard. Your pricing punishes teams
who use them. At minimum, you need:

  • Build minute alerts and spending caps
  • Smarter build triggers that don’t rebuild everything on every push
  • Transparent pricing that doesn’t hide a $600 surprise behind a $20/month Pro plan

To other developers: check your Vercel billing page right now. Go to Settings → Usage → look at Build Minutes. If
you’re running a mono-repo, you might be in for a shock.

I’ve already submitted a billing ticket requesting a refund. I’ll update this thread with their response.

Thank you for alerting us about this and sharing your feedback! Can you share your case number with us? I’d like to get this in front of our support team.

I recommend making sure that from now on you have Spend Management is switched on. This allows you to set spending alerts at different thresholds.

https://vercel.com/docs/spend-management

1 Like

I don’t have a case number yet — the AI support agent told me I need to wait for the final invoice before they can
review it, and couldn’t see my current spending either.

As for Spend Management — I wasn’t aware of it until now. A $600 surprise on a $20/month plan shouldn’t happen
without proactive alerts. I’ll share the case number once the invoice is generated.

Let me see what I can do internally to speed this up. I’m sorry again for the experience - I want to make this right for you.

It’s also worth configuring your ignoreCommand and add this to each project’s vercel.json.

This skips builds when that specific project hasn’t changed.

Since build minutes are the bulk of your bill so far, another thing that can help is changing the build machines setting. You can find that in Team Settings → Build and Deployment → Build Machines

Also make sure the skipping unaffected projects option is enabled. And I would definitely recommend turning on spend management to at least notify you of higher costs even if you don’t want it to automatically pause projects.

Very sorry to hear you’re in this situation. The support team is fantastic and I know they’ll do everything in their power to make it right

It looks like the support team was able to solve this for you last week, so I’ll mark this discussion as “solved”. But please let us know if you still have any trouble with it

Solution summary

To fix this, configure the ignoreCommand in vercel.json or the “Ignored Build Step” in Project Settings to ensure Vercel only builds projects with relevant file changes. Additionally, developers should enable Spend Management to receive proactive alerts and verify that Build Machine settings are set to the “Standard performance” tier to avoid higher per-minute costs associated with enhanced machines.