Set a spend cap, now that the account can be billed
Pro bills for usage where Hobby just stops. One setting turns that from a surprise into a decision.
Settings → Billing → Spend Management. Set an amount, choose what happens when usage reaches it.
Why this is worth ten minutes
The account is on Pro, which was assumed to be Hobby for most of a day and never checked. The difference is the whole ticket: on Hobby, exceeding an allowance stops the feature and waits thirty days. On Pro it bills.
Nothing here is expensive today. The point is that the failure mode changed from an outage to an invoice, and an invoice is the one that arrives without being noticed first.
What can actually move, and what cannot
The firewall rule cannot. It counts only requests matching
/api/holocron, and blocked requests are free — so the attack it exists to
stop is the cheap case. Five allowed requests at $0.50 per million is not a
number worth thinking about.
The drop can, in one specific way: file size multiplied by downloads. A private store cannot be served from the CDN, so every download goes store → Function → browser and is billed on both legs. Vercel's own guidance is not to serve anything over 100 MB through a private store unless traffic is low, which is exactly why the drop caps a file at that.
For reference, Pro's included amounts and the rates past them:
| | Included | Then | | --- | --- | --- | | Storage | 5 GB | $0.023 / GB-month | | Data transfer | 100 GB | $0.05 / GB | | Fast Origin Transfer | 100 GB | $0.06 / GB | | Advanced operations | 10,000 | $5.00 / M | | Simple operations | 100,000 | $0.40 / M |
Documents and screenshots will never approach that. Moving video would: a dozen 2 GB files fetched twice each is most of the transfer allowance in an afternoon.
Not verified: the Fast Data Transfer rate for the Function-to-browser leg. The figures above are the floor rather than the total.
The decision inside this
Spend Management can notify, or it can act — including pausing projects. Pausing protects the card by taking scofti.com offline, which for a site with no revenue and no customers may well be the right trade, but it is a trade and should be made deliberately rather than by accepting a default.
A sensible shape: notify at something low enough to be surprising, act at something high enough that reaching it means something is genuinely wrong.
Habits that keep it at zero
- Delete from the drop after pickup.
del()is free and storage is billed per GB-month, so a file that lives an hour costs nothing to keep. - Nothing large through the drop. Big media belongs in a public store the CDN can serve directly, not streamed through a Function.