vercel · pricing · tutorial

You Don't Need Vercel at All. Hosting Next.js Is Super Easy.

Vercel upgraded a plan mid-spike and billed $840: $795 transfer, $35 requests. Spend caps that hold plus the flat exit. Relief inside.

A grinning bill collector clutching a ledger, watercolor by Thomas Rowlandson, about 1790
A grinning bill collector clutching a ledger, watercolor by Thomas Rowlandson, about 1790 · Photo: Thomas Rowlandson, public domain, via Wikimedia Commons

The invoice that upgraded itself

March 2026, r/vercel: a startup founder posts an $840 bill they never approved — ~$795 in data-transfer overage, ~$35 in edge requests. During the spike, Vercel automatically upgraded the account to a bigger plan. Nobody clicked anything. The platform spent $840 on their behalf and sent the receipt.

July 2025, r/nextjs: $237 for six days — 311GB transfer ($78.54), 2.48 billion edge requests ($62.67), 158GB origin transfer ($37.62). A $1,200/month run rate on 25,000 visitors.

June 2026, r/vercel: "billing is shady… build minutes was a surprise bill… confusing and not user friendly" — plus a new Pro-credit system founders openly can't model.

Vercel pricing confusing isn't a complaint. It's a wound that reopens monthly.

How auto-spend actually works

Mechanism What happens Your control
Overage meters Transfer/requests bill past bundle None (always on)
Auto plan upgrade Spike triggers bigger plan Happens to you, not by you
Credit system (new Pro) Usage burns credits opaquely Model-proof (founders confirm)
Alerts Email at thresholds Often read after the spike
Refunds Request via support link Case-by-case, not policy

Three details make it bleed faster than expected:

  1. Edge requests scale with bots, not buyers. 2.48 billion requests in six days isn't popularity — it's scrapers, previews, and polling multiplied across the edge. Every bot byte bills like a customer byte. The meter can't tell worship from robbery.
  2. Transfer compounds per optimization gap. Uncached images, uncached API polling, uncompressed uploads — each multiplies gigabytes against $0.15. The $237 founder's 311GB came from ordinary pages served repeatedly, not a viral event. Ordinary is expensive at metered scale.
  3. Upgrades ratchet, never release. The plan that upgraded mid-spike doesn't downgrade mid-calm. Each incident permanently lifts the floor: last month's spike becomes this month's baseline. Ratchets only turn one direction, and it's never down.

The $900-post itemized the meters. This one stops the auto-spend machine.

Tourniquet today, cure this weekend

Ten minutes now (bleeding stops), one weekend later (disease gone).

Step 1 — Cap spend and wire alerts that wake you.

Vercel dashboard → Settings → Billing → Spend Management (do this NOW):
  1. hard cap at the number you'd pay while angry (not your hope — your limit)
  2. alerts at 50% + 80% to a HUMAN inbox (not a mailing list, not Slack-muted)
  3. named owner: one person who kills deploys when alert #1 fires

Caps convert infinite risk into a throttle decision made awake.

Step 2 — Starve the meters this week (70% off the bleed).

# images: AVIF-first, 3 widths, year TTLs (image-diet post: -80% on that line)
# edge: Cloudflare in front (absorbs bots + caches statics: -80% origin transfer)
# polling: stretch intervals 5s → 30s (dashboard users never notice, meters do)
# ISR: audit revalidate paths (the $70→$22 post: one ISR detail cost 20x)

Each cut attacks a meter directly. Combined typical result: same traffic, one-third the invoice.

Step 3 — Go flat when capped costs pass ~$100/mo.

# $5 VPS: app + SQLite + PM2, Cloudflare Tunnel (zero open ports), Tailscale (mesh admin)
# same 6TB spike that billed $750+: $0 extra, box at 30% CPU
# exit weekend: provision Friday, migrate Saturday, DNS Sunday (ditch guide)

Flat hardware ends every mechanism above simultaneously: no overages (no meters), no auto-upgrades (no plans), no credit opacity (no credits). The $1,800-exit post walked this weekend receipt by receipt. Threshold honesty holds: under ~$100/mo capped, the box hour costs more than meters — stay. Past it, every metered month is a donation.

That's the machine — invoices that can't surprise you.

Bleed, tourniquet, cure

Monthly shape Uncapped (bleeding) Capped + dieted Flat VPS
Normal 500GB month ~$237 pace ~$20 seat $5
Spike + auto-upgrade $840 (real receipt) Capped + alerted $5, sleeping
6TB viral + bots ~$750–1,800 ~$200 (bounded pain) $5
Next spike at 3am You wake to invoice You wake to alert You sleep

The downside, owned: caps can throttle legitimate viral moments (the site slows instead of billing — choose your pain), and flat means owning the pager (~1 hour monthly). BoringPush prices both against the $840 surprise: bounded pain beats unbounded invoices, and one owned hour beats one dreaded month-end. Painkillers first, vitamins later — this post is all painkiller.

FAQ

Does vercel pricing confusing ever get fixed by Vercel itself?

Partially and slowly: budget alerts and spend management exist now (use them), credit-system transparency improves under complaint pressure, and support does refund genuine surprises case-by-case. But meters plus auto-upgrade are the business model, not bugs — clarity will improve at the edges while the ratchet stays central. Protect yourself structurally (caps, then flat); treat platform improvements as windfalls, not plans.

Will spend caps break my site during a real launch?

Possibly — caps throttle or pause when hit, which is the documented tradeoff: bounded visibility instead of unbounded billing. Set the cap above launch budget with alerts well below it, and staff the alert (named human, kill-switch documented). A throttled launch you choose beats an $840 launch chosen for you. Caps are steering wheels, not walls — grip them.

How do I get a refund on a surprise bill?

Vercel's team reviews via the refund request path (mods on r/vercel also triage team IDs publicly). Document the spike cause, show caps now enabled, ask once politely — first-incident refunds land often, repeat incidents don't. Then fix the structure so there's no second ask: refunds are apologies, caps are policy, flat is immunity. One of each, in that order, then never again.

Is the auto-upgrade at least announced beforehand?

Notification timing is exactly the complaint across the threads: upgrades trigger during spikes when nobody's watching dashboards, and discovery happens at invoicing. Don't architect around notification promises — architect around impossibility (caps make overspend impossible; flat makes meters nonexistent). Trust systems that can't hurt you over notifications that might warn you.

What if my boss/client insists on staying on Vercel?

Then own the meters professionally: caps + alerts + quarterly bill reviews + per-launch transfer budgets, documented and signed. Staying rented is legitimate when someone else holds the pager and the margins absorb meters. Make the cost visible monthly (invoice review meeting, 15 minutes) so "confusing" never means "unnoticed." Managed risk, priced honestly, beats surprise risk at any discount.

When is leaving actually wrong — who should stay?

Enterprise compliance buyers (SOC 2 badges, vendor reviews, procurement checklists), teams whose deploy velocity genuinely needs preview-per-PR collaboration, and sub-$100/mo bills where the box hour costs more. Staying is a decision with criteria, not a default with inertia. Run the numbers quarterly; the answer changes as you grow, and "stay" stays valid as long as it's chosen.

Keep reading

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading