Netlify just sent me a $104k bill for a simple static site
old.reddit.com
old.reddit.com
Our support team has reached out to the user from the thread to let them know they're not getting charged for this.
It's currently our policy to not shut down free sites during traffic spikes that doesn't match attack patterns, but instead forgiving any bills from legitimate mistakes after the fact.
Apologies that this didn't come through in the initial support reply.
1. Would Netlify forgive the bill if this didn't go viral?
2. How do you plan to address this issue so that it never happens again?
Everyone here knew someone from Netlify would come and say OP wouldn't have to pay. That was a given. Now we want to know the important answers.
2. While I've always favored erring towards keeping people's sites up we are currently working on changing the default behavior to never let free sites incur overages
This isn't what you said in your first post, you said:
> It's currently our policy to not shut down free sites during traffic spikes that doesn't match attack patterns, but instead forgiving any bills from legitimate mistakes after the fact.
So forgiving "lots and lots" doesn't move the needle. Do you or do you not forgive _all_ such cases where your DDOS protection doesn't take down the site? What was your employee referring to when saying that the usual discount is 20%? Are you saying that you _never_ discount 20% and instead always discount 100% i.e. "forgive"?
Solving this only for the free site use case doesn't address the core problem that people are bringing up about a lack of spending limit controls.
i.e. if I know I average $10 a day, I should be able to put in a "If it hits $50, email me and take it offline".
Of course the opposite problem is then people setting that limit too low but since the user defines the limit that's on them not you.
This is one of the reasons I still in 2024 rent physical boxes and run the modern stuff on top of them directly, yes it costs me more per month but the price is hard capped.
What Netlify is doing here is really the best approach for both parties. And typically speaking a $104k bill would be hard to get paid up regardless if the customer's typical transaction balance was $5/mo and their credit card limit wouldn't be that high.
Also, that's the benefits of credit cards - that you can still issue a charge back, and credit card companies very much favor the consumer rather than the merchant.
There would be many attorneys interested in collecting a $105k debt.
I mean I'm not familiar with every debt collection scenario under the sun but Internet randos seem to think this is a real thing where like a cloud/hosting company sends an army of lawyers to repo some guy's house and runs him into bankruptcy because of a traffic overage. I've never seen it work that way, what happens like with most business debts, is someone at the company negotiates with the debtor to try and get as much out of them as they can, and failing that, possibly refers it to a collections agency which does the same but plays a bit more hardball.
In the case here with Netlify even before it went viral they reduced the amount from $104K to $5K, no lawyers, collectors or repo men involved, and while I'd hate to be stuck with that $5K bill, I dunno, that does feel closer to the mark of something that maybe you should be on the hook for if you're responsible for 200 TB of bandwidth overage over 4 days? Is this so bad on the part of Netlify?
All that said I'll just add that I've never given my credit card to any sort of host/cloud who had terms where they could bill unlimited overage fees like this. Never will unless there's a cap. Not Netlify not AWS not nobody. That goes for my personal life as well as for the business I operate. The terms is the terms and the answer is to not use these services unless you can afford them imho.
The responsibility part is the tricky part of the equation.
If someone hits your site with a DDoS attack, are you responsible? There's literally nothing[0] you can do as a customer of a cloud provider here because anything you can do is limited to the servers and services you're given access to. For example even if I had access to billions of requests and built an anti-DDoS tool it would still need to run within the cloud provider's provisioned server which means I'd be on the hook for all traffic costs because it's something running in my account.
That doesn't seem reasonable to me as a customer. It means a cloud hosting provider can put an extreme financial burden on a customer and make a killing in profits because of the markup they charge on bandwidth. The incentives are terribly misaligned.
[0]: I mean you can sign up for DDoS protection through a 3rd party company but in this case I'm talking about taking actions within your hosting provider.
From personal experience as a customer of a cloud provider (not with Netlify btw), usually cloud providers who profit from bandwidth costs will write their TOS in such a way where almost nothing qualifies as a DDoS attack unless it's truly a distributed and targeted large scale attack specifically on your site.
A random person on the internet who spins up a few VPSs around the world and slams your site with looped curl requests won't count as a DDoS attack even though from your perspective that will result in a massive bill increase due to bandwidth costs.
In other words, I'm not surprised "didn't match attack patterns" was used. I'm guessing that will be the case most of the time.
Mostly false. Either transit is billed on a 95th%ile basis (so...more money for more traffic), or if it is flat/netted, you're still paying for the capex for the switch ports (fatter connection to support more traffic means more $$$ for the gear to support it).
You can say "the sum total of free-tier traffic requires X additional connections" but the sudden burst of DoS traffic did not raise marginal costs (besides an inconsequential usage of electricity).
So your suggestion is to issue a chargeback.. to get money back that should under the terms of whatever service you signed up for be owed?.
That seems like bordering on fraud tbh.
> Additionally, when you set that limit people then get upset because usually when they go over it for a good reason, like going viral, they aren't anticipating it, and just when their traffic is most valuable the site is down.
Legit concern and something I mentioned, I'm gonna guess there are broad two camps on that one - mine which is "I want a safety ripcord" and "whee, nice problem to have".
However since this entire conversation is around a guy who got a massive invoice because of a bill he wasn't expecting and couldn't have set such a limit I'm still gonna go with a "I want a way to constrain the financial downside - hell turn it off by default but give me the option".
Since broadly a lot of cloud stuff doesn't, I'll constrain it a different way.
Funny story... One of the big cloud providers actually has you do that on purpose as a remedy for an account you've lost access to.
If they're about to go over, shoot them a quick heads-up and give them 24 hours to sort things out or level up their package.
After that, if they haven't made any changes, temporarily pause their site access
By the way, your comment was flagged which seemed odd, so I looked at your profile and it seems like all of your comments are being (automatically?) flagged and don't appear on HN by default. You might want to talk to the HN staff about that.
2. To me, it's more likely they don't have one because there are edge cases to consider that make "hard limits" difficult to implement. What is AWS supposed to do when you hit the limit? Is it a hard limit? Ok, so when I hit my budget, all my s3 buckets get deleted and all my EBS drives get dropped? Do all my code deployments just get deleted? Do you "bless" certain services so that they continue to charge the user even after the hard limit? How is all of this communicated?
You can set an alarm in AWS today and the user can decide what to shut off. If you really need to, you can create a script that can hard nuke your account once a limit is reached; but I don't see why AWS should nuke your account for you.
If providing this bandwidth cost them $50k rather than $5, I would bet you my entire life savings that they would QUICKLY find a way to add hard limits to their service, no matter what technical challenges they're quoting now.
2. This is probably a 95/5 problem. The vast majority of these sorts of cases that I've seen and read about are caused by increased traffic, which hits the customer either with extortionate egress fees or unintended compute scaling behavior (FaaS/VMs).
Storage is trickier, but you could stop accepting writes or reads after passing some hard limit.
This leaves some edge cases, sure, but it should handle the vast majority of unexpected bills without any destructive actions.
> You can set an alarm in AWS today and the user can decide what to shut off.
That shifts responsibility back on the customer, which is exactly the problem to begin with. I need assurances that I won't be billed more than $X in any given day, or month and this solution doesn't provide that. Maybe their API down, maybe it's serving stale data, or maybe my automation fails for some reason.
> How is all of this communicated?
Hard monthly limits:
Egress: [ $ 10 ] - When exceeded, all outbound traffic is limited to [ 0 Mbps ].
Compute: [ $ 10 ] - When exceeded, scale all compute instances to [ 0 ]
Data Storage: [ 1 TB ] - When exceeded, all writes are rejected
Reads Ops: [ $ 1 ] - When exceeded, all reads ops are rejected
It's really not that hard. Offer these limits on a per-project, or even per-resource level, that would naturally allow you to limit the blast radius. A personal website that has gone viral would likely want to have different limits than an email server under the same account, for example.
No, I believe you are assuming that proving a "hard limit" feature is cheaper than just refunding people from time to time. If you consider the all the products AWS has to offer, all the different ways they are billed, then figuring out what do to for each product once that limit is reached, and potentially doing a destructive action, and then all the code and testing on top of that - it seems far easier to add a human in the loop to just refund people on a case by case basis. It's a ton of complexity for likely a rare issue, and if someone really needs it they can build one themselves and choose how to handle what needs to be done once the limit is reached.
Building all this out just so that some college kid isn't charged a bill they could obviously never pay likely isn't a good use of resources. It's not likely AWS has a reputation of being greedy either, if you explain the situation they refund you. If they are truly doing this to make money they have remarkably poor execution.
>It's really not that hard.
Storage pricing isn't done up front. You pay per gigabyte-month. If your "hard limit" kicks in, then what does Amazon do with the data you are no longer paying to store? Does Amazon drop your entire database once the credit limit is reached? There are plenty of Amazon services like this. Consider secret manager. You are charged 40 cents/month per secret. You have 100 secrets, so $40/mo, but you set your hard limit to $20. The middle of the month rolls around, what does Amazon do? Do they just drop all your encryption keys?
There are 100s of AWS services and many where you can't just apply a sensible rejection policy once you hit that hard limit without doing something the user cannot recover from. It's only not hard because you aren't actually thinking about the matrix of AWS products that exist and how they are billed.
I don't think you understand what a hard limit is. When I set a hard limit, that means that under no circumstance should I be billed more than this amount. From this you should be able to deduce that the platform needs to stop you from ever entering into a situation where they could end up having to decide between nuking your data, or overcharging you.
This means that for all data storage scenarios, they should apply limits to projected monthly usage rather than actual monthly usage.
If 1 GB of storage costs $1 per month, and my monthly limit is set to $10, then they should not allow me store more than 10GB of data, rejecting writes as needed. This design guarantees that my hard limit won't be exceeded and the data is never at risk.
Any service which doesn't persist data can apply limits based on actual usage, and safely shut them down when the limit is exceeded.
> Does Amazon drop your entire database once the credit limit is reached?
No, they should refuse further writes when your database reaches a size that would exceed $10 a month. That's a safe behavior.
> Consider secret manager. You are charged 40 cents/month per secret. You have 100 secrets, so $40/mo, but you set your hard limit to $20.
If you set your hard limit to $20, then Amazon should refuse to create more than 50 secrets. That's a safe behavior which limits your spend to at most $20.
> Building all this out just so that some college kid isn't charged a bill they could obviously never pay likely isn't a good use of resources. It's not likely AWS has a reputation of being greedy either, if you explain the situation they refund you. If they are truly doing this to make money they have remarkably poor execution.
This is just a bad faith argument, everyone from broke college students to medium sized businesses has complained about this at one point or another. Relying on the good will of a megacorporation to forgive a surprise $100k bill is nuts and if you scroll through these comments you'll find some that claim that AWS is no longer forgiving these bills like they used to.
I'm not claiming that this solution is perfect, or that it would cover every failure mode, but it sure beats the status quo and would solve the vast majority of surprise bills that result from unexpected traffic.
>No, they should refuse further writes when your database reaches a size that would exceed $10 a month. That's a safe behavior.
I think we have gotten to the point where we've lost the plot here. You previously stated "It's not that hard". We are doing projection forecasting! And the storage layer for these range of services (S3, MySQL, Postgres, MSSQL, Kafka, Keyspaces, DynamoDB, probably 20 more im missing.) must now either call out to some financial projections service and reject writes for billing reasons. On top of that if you have a hard limit you are locked out of dynamic scaling. Need to 100 nodes for an hour? Nope, you now must disable billing limits because Amazon assumes you will use every resource for the entire month. Surely someone wont disable billing limits for an hour and forget to re-enable them, right?
>but it sure beats the status quo
I'm not sure handicapping every service for some barely functional billing limit beats the status quo. It's certainly more expensive for amazon in terms of engineering load but with so many footguns I don't see how it ends up anyway other than Amazon having this feature and still having to do service refunds because billing limits were disabled due to awkward limitations.
>This is just a bad faith argument, everyone from broke college students to medium sized businesses has complained about this at one point or another. Relying on the good will of a megacorporation to forgive a surprise $100k bill is nuts and if you scroll through these comments you'll find some that claim that AWS is no longer forgiving these bills like they used to.
Medium sized businesses have had their bills forgiven for things like cryptomining for example. My point is billing limits don't really work for AWS, alerts is the best you will get because AWS doing destructive actions for you or assuming your usage patterns is worse. It's not an easy feature and to imply they keep the status quo solely because Bezos needs another yacht is reductive of the problem.
It's not a complex "forecast". It's simply the monthly rate as I've illustrated with numerous examples.
If my limit is $10, then don't let me occupy more storage than that. It's a 1:1 conversation between gigabytes and how much they cost on a monthly basis.
Do you have ties to cloud providers you'd like to disclose? It's a very simple concept that you're refusing to understand, which usually happens when your job depends on it.
I have 100 secrets and no hard limit. Now I set the hard limit to $20. What does AWS do?
Additionally, when you set that limit people then get upset because usually when they go over it for a good reason, like going viral, they aren't anticipating it, and just when their traffic is most valuable the site is down.
But that's on the user. The user shouldn't get upset in that scenario and has no right to. You're giving the control back to the user.The fact that most cloud operators don't have actual hard cutoffs to maintain financial responsibility is intentional. Azure does, but only for specific account types. If it's PAYG, you can't do it. The end result is if you do something "weird", or someone DDoS's you, you're liable.
With a hard limit, a DDoS just takes your site offline.
I agree. I also agree that when dealing with large numbers of people, there will be people who don't understand this and/or will actively try to social engineer their way out of their own decisions.
Setting customer expectations and meeting them successfully isn't easy.
Instead of forcing user to set a low cost limit and missing a viral opportunity or the platform writing off the massive bill the customer can't afford... just put the billing mode into a reduced price mode or have some more nuanced configurations. Sometimes is just asking the question the right way. Instead of "max spend limit" or similar "If your site goes viral, how many requests do you want to serve before going offline? 1M=$20, 10M=$100, etc" at this point, I feel like bandwidth consumption is a bad metric for billing; just use requests/visits/actions and price for those.
This is not prescriptive just illustrative. The point is make a better pricing formula to account for these massively unexpected events. Couple it with an aggressive notification policy when this traffic event gets triggered. The user should know the traffic pattern has changed and a high traffic event is happening. They can login and change the configs and decide if they want to keep it going or not.
Most users don't want to be banned from their hosting provider.
Of course. And that’s why any limit against a dynamic variable should also have alerts linked to it
Send an alert to the user when traffic starts spiking, especially if a simple projection shows it’s going to go over their limit
Then the user is aware, hopefully with enough time to lift the limit if needed
If your customer is aware enough to notice they are being hit with a DOS or legit traffic while it is happening, then great! They can respond, and if needed, engage proserve to get support for scaling or defense depending on needs.
If your customer is not alert enough, then their site is offline, and they won't hear about it until their customers are screaming at them, which will result in a P1 ticket to look at a vendor who won't turn them off during an unexpected peak.
It's a catch 22, and if you have to choose between: a) a PR hit because you have to go on a forum and post about waiving the fee, or b) a PR hit because someone posted a blog post about how you killed their site during a moment of critical growth
any reasonable business will choose A every time because A is far more supportive of customer growth and has drastically better optics. Anyone who thinks A is worse is probably too inexperienced to have an opinion.
I'd say the same about those who only think in absolutes.
That's a false dilemma. You can give your customers a choice in these matters with an optional hard limit, which I realize seems like a rather extreme idea these days.
Someone running a personal project will likely opt to have a low hard limit, say $10, while businesses will more likely opt in for alerts without, or with very high hard limits.
Hard limit: [$1000]/mth or [$500]/24hr period
Notify me if traffic exceeds thresholds: [$800+]/mth or [$400]/24 hr period
Notify me if the traffic forecast for the month looks like it will exceed my hard limit before the end of the month.
That has not been my experience. I've had to do a few chargebacks for services not rendered, and I've never won. I will submit my evidence, then the vendor will submit 100 pages of random emails, and then I will have my claim denied. Then I will appeal, will point out that they sent 100 random pages of email, and then they will reply with the same 100 pages of emails and I'll get denied again.
It seems that the vendors have found the hack for chargebacks -- just inundate the credit card company with so much data that they assume the vendor must be right.
It makes sense -- the vendors pay the credit card companies a lot more than I do. They'd rather keep them happy than me.
Plenty of morons just use the service and chargeback right before renewal so they got the service for free, some just chargeback instead of cancelling their plan or asking a refund. I get hit with 15$ bill plus I lose all the money even if I provided the service.
Whatever email / data from my system I send is ignored and the scammer / moron gets his money back.
I'm sure that's how it works if the vendor is large enough.
If you are a small fish you don't stand a chance, which is why for my next project (where I'm supposed to charge a lot and spend a lot on behalf of the user - and I'll be royally screwed if I start getting chargebacks on 500$ of which I've already spent 450$) I'll just accept crypto payments.
1) Thank you for allowing us to set the limit.
2) I understand your opinion that you prefer chargebacks but I disagree with it.
The very reason I stay with Hetzner is that I know in advance what my bills will be for the whole year. Heck, I even charge my account in advance so that I don't worry about any charges!
Like let them go over one month and then make them sign up for a paid plan for the next.
Sort of, but the approach to the approach isn't great. If you're going to void charges from DDOS traffic anyway, you might as well make that explicit policy, rather than doing it after the fact in a way that seems discretionary.
The Reddit thread is full of people who are saying that they intend to pull their static content off of Netlify and move it to Cloudflare Pages, which has no overages on the free tier in the first place. I can tell you that I personally chose Cloudflare Pages to set up a new static site a couple of weeks ago, and Netlify wasn't even in the running.
If Netlify's free tier is important to their customer acquisition strategy, then they really need to retool how they're offering it, or Cloudflare is going to eat their lunch.
Also: what's common? At the scale these companies so desire, small percentages are still thousands of users. Supporting them with what's ultimately a fairly trivial option shouldn't be seen as such a hassle.
I still prefer this too. Kinda funny how server resource limitations became a feature and not a bug when it was one of the problems the cloud sought to overcome
It's bizarre to me that more services don't support billing this way, since there are tons of situations where I would much rather have a site or service go down than be hit with a surprise bill and have to depend on social media and magnanimous corporate PR.
You can do stuff like "disallow any of these instances to be used in your env", so if you never use graphics cards, disallow the whole class.
You can also set limits like "no more than 20x m5.4xlarge".
But again, AWS is the worst about no actual hard limits, cause each system generates bills. Ive also seen the hell of "hidden system AWS Billing doesnt have is still submitting billing and we dont know what it is". Again, AWS enables basically infinite liability.
Ive also discussed with C levels that "every engineer and dev with AWS logins have an unlimited credit card to of which you're on the hook for". Lets just say that 'heartburn' doesnt even begin to describe the terror on their faces.
The big advantage to "cloud" was that you can provision more resources in seconds. Existing data centers had terrible non-VM and non-good VM management software that provisioning more CPU, RAM, storage was a weeks or months long trial.
And you can still get a 100k bill for hosting a SINGLE text file, cause DDoS and shitty hosting providers who demand unlimited credit is a thing.
That said, I still think there should be an easy way to set a daily limit. Should I use the Budget service to do that? Cost Explorer? Billing Alarms? Is it possible to have them shed whatever's spending all the money?...
Again, I see the whole can of worms here: what if your service is jamming tons of data into S3 because of a bug? Or you actually started something that got popular and you have a gigantic Dynamo table? Stopping an EC2 instance is maybe an easy call, but deleting data is iffy.
AWS just feels like a minefield because I'm occasionally worried with all the products, I'll check a box when creating an instance or SG or whatever, and that'll (e.g.) trigger CloudWatch to read all my logs, but I have some crappy debug config for some app which will vomit out dozens of logs a second accidentally, and instead of just trashing `/var/log/` I get billed for millions of log events or something.
They might even offer this as an insurance, so you pay a little more but can be sure you stay in budget.
How much is unlimited talk, text, data, hotspot with a watch data add-on where you are from?
edit: Actually I was wrong–it is $30, not $35.
I pay $20 for the phone plan, and $10 for the watch add-on. No fees or taxes Feels reasonable to me.
I could also get 50 MB data, 2h calls, unlimited texts for 2€.
I stopped ~all autopays when (Boost Mobile?) deduced 200 instead of 20usd from my debit account one month in college. They refunded the difference relatively quickly, but I racked up 5 or 6 overcharge fees before realizing; ended up being a pita for an already broke 18 y/o to figure out.
I was a broke and stupid kid. Never use a debit as an autopay. But since then I like to track where each penny goes as it goes.
But this is a good reminder why my gut feeling always made me avoid these overengineered solutions.
They do. But of course maximizing profit is the sole true prerogative of capitalist enterprises. And the market is not totally competitive. So yes your intuition was correct, to be cautious against over enginnered pricing to get y'a.
I mean those companies cater to hobbyist. Then ...
Render seems more fair-play. Until a change of mgt occurs of course.
>We normally discount these kinds of attacks to about 20% of the cost, which would make your new bill $20,900. I've currently reduced it to about 5%, which is $5,225.
20% and 5% are quite a bit higher than forgiven.
I wouldn't want to be CEO these days. A lot are trained and paid to do damage control.
With all that money they then can finance the free tier until they get too far and become platform locked-in.
Surge.sh Im not sure. But shows all the sign of some greedy acquisition, regular long outages , as if I have been sitting as a free tier for too long, quick nudge to pay. For barely accessed sites even behind CDNs, steep. I even worry they one day just wipe all my buckets (they did for a few already) and support would recommend me to be a "normal" paying user .
Nothing is free. And nothing too good to be true is true .
No offence, but this sounds like "trust me bro" billing and it is not good enough. Someone could literally get a heart attack from getting $100,000 bill - this amount of debt can literally ruin someone financially.
> 2. While I've always favored erring towards keeping people's sites up we are currently working on changing the default behavior to never let free sites incur overages
I hope you understand that chance someone who used to pay you $20 / month unlikely want to ever get $10,000 bill. Yeah people might dislike that their website went down due high traffic, but it's not gonna bring this much negative PR as incidents like this. There should be some sanity check at least.
Not a heart attack but there has literally been at least one suicide over an unexpected life-ruining bill like that:
https://www.forbes.com/sites/sergeiklebnikov/2020/06/17/20-y...
Hey I'm a taxi driver. Hailer fell asleep on the back, so I kept driving all night, once he woke up I dropped him to his place and asked for my monthly wage. I "forgive" many, but just a few are juicy income so I adopted the policy to never wake any customer up. If people ask I say it would be impolite, principles prime.
That’s the elephant in the room here. I understand an enterprise plan where you state billing is $xx per GB, but billing someone with a free site??
Give me a break.
Sequence of events doesn't support this answer:
1. User gets charged 100k
2. User complains to support
3. User receives discount to 20k, then 5k. Support states policy is normally 20k
4. User discloses to the world. Goes viral.
5. Invoice is forgiven
While you might forgive "lots and lots", fact is that you still presented the invoice to a free tier customer, and when they complained you gave them a discount, but still charge. Only when it went viral did you forgive it.
I'm a paranoid person by nature so "It's free... just... give us your card details" is always suspicious.
1. What are you doing to prevent DDoS's from hitting your network?
2. Why do customers have to allow an unlimited credit burden to use services?
3. Why arent there cost controls to "if $$ exceeds X, shut acct down"? Azure can do this.
Long story short, why are you by default (except for social media escalation) passing fraud costs to customers?
From what I see you could change this policy tomorrow unilaterally and we would have no recourse.
I wouldn't think it's a binding policy at all, because the billing procedure (automatic full bill, manually discounted bill, etc.) would follow it if it were. More of a procedure.
Honestly, this terrifies me---I run a bunch of different sites off netlify, and I would have never imagined that a site could jump from 0 to six figures of bills a month without something hitting a tripwire somewhere and cutting it off or at least communicating with the account owner. At least users should have the capacity to self-impose bandwidth caps to prevent this sort of thing.
It seems that significant bills appearing without warning or cut-offs is clearly intentional. I am embarrassed that I recommended Netlify before.
To bobfunk, the response needs more empathy and explanation around the obvious frustration around why there is no slider for cost limitation.
As it is, it feels like the minimum viable corpspeak apology and damage control.
With models like this and AWS people will get afraid of success
The average HNer seems to be recommending colocating your physical server :-)
Before the internet, these issues would be handled by local news journalism, and still sometimes do!
but instead forgiving any bills from legitimate mistakes after the fact
What are these legitimate mistakes?Well, giving the option to users to plan ahead would be best, no? Like a setting to choose whether they want a potentially unlimited bill versus downtime. Instead of that, you are choosing to stress and make people scared/anxious/homeless even (if they don't think of raising the issue on HN).
Seriously, this is not rocket science. This must have been discussed before in your company, and someone actually made this decision to stress people about such bills.
This is a serious matter. We are building a new site for our company with Netlify, but we can't open ourselves to this predatory practice. And even if you do not mean to be predatory, even the option of such is enough.
If not resolved with a clean, legally binding promise, our company (and probably quite a few others) must move our business to Cloudflare, Amazon, or some other competitor of yours.
Is that unreasonable?
edit: hey guess what, Netlify offers an enterprise plan, I'd bet they will be happy to offer you a "clean, legally binding promise": https://www.netlify.com/pricing/?category=enterprise
the fact that once it arrives to the limits does not display an error page.
At this point I honestly do not care about they changing their policy, they should have thought that a normal person receiving a 100000$ bill on a free tier shall not been at all on the table in any circumstance, even if they forgive the bill, nobody needs to stress out like that.
The only "fix" here is to act like Hetzner and null route upon DDoS, price cap the thing, or offer unlimited bandwidth on the free tier like e.g. Cloudflare Pages.
Uncapped but paid is a recipe for disaster and you'll always be subject to the will of the support staff when something happens. If they can grasp to a straw leading to suspicions that it's not in fact a DDoS attack, you can for example be sure they'll do just that. Just no.
https://www.hetzner.com/dedicated-rootserver/matrix-ax/
With a 48 core Epyc or 80 core arm server, one really shouldnt need much more for a middling project. There are enterprises who run entire services on such hardware.
If there was an option to cap billing, or at least some legally binding limit on liability, then I can countenance using netlify.
Until then, it's just not feasible nor worth the risk.
If your web site makes you money in proportion to the amount of views or bandwidth you use, by all means, go with a provider that increases your costs when your traffic rises. But if your web site does not make you money, why not host it somewhere for a flat rate?
I've been on a $25 instance for years for all my sites, which worked as well.
My only hesitation is the 20k file limit; one of our sites is a large Gatsby site that generates certain content programmatically, sometimes using a series of YAML files as the source. Pretty sure we’re over 20k pages by themselves. Been meaning to move this one to Next.js sometime but that’s not on our roadmap anytime soon.
I'm not sure about VueJS specifically, but I run everything I can off a $6/m digital ocean droplet (static sites, web apps, git repos, RDBMS, some other custom apps I've written) and it hasn't broken a sweat yet[1].
My understanding used to be that requests will be dropped if my virtual server can't handle it, and I'll have to transfer 10,000TB to get to a $100,000 bill.
In practice, my server will not physically handle the load to serve more than maybe $1000 of data a month; it will fall over before that.
In summary, using a VPS is sorta like an instant hard cap.
[1] Until I tried using Jenkins. Which crashed constantly because apparently 512GB of RAM is too little for what it does. I'm now in the process of writing my own little CD tool that isn't going to go over 30MB of RAM just to run my deployment scripts.
This is the big thing, but I also think that modern out-the-box OSes are pretty damn secure these days.
IOW, the amount of knowledge and time needed to maintain my single VPS is a lot less than the knowledge and time you will need to manage your costs using multiple hosted SaaS suppliers for static hosting, web-app hosting, database hosting, repo hosting, etc.
I did the same last night from my phone. My personal site and a project docs site are just going to not be online for a couple days. Easy choice.
The legitimate mistake sounds to be on _your_ side if anything. You failed to match the attack pattern after all.
> Apologies that this didn't come through in the initial support reply.
The support email said you normally discount the attacks to 20%, but in this case it would be discounted to 5%. Are you here publicly claiming that your policy is to in fact to forgive (i.e. discount 100%) these bills? Was the support reply totally incorrect in claiming that you normally discount the attacks to 20% or are you lying when saying that your policy is to forgive the bills? You might want to clarify your position here.
This is a static site. To reach that sort of bandwidth out of nowhere you'd need to publish the blueprint for a teleportation machine
That said, instead of depending on unreliable heuristics, they should just allow an option to change the behavior. The "current policy" to charge small sites on the free tier thousands of dollars instead of just throttling/shutting down the traffic is really predatory.
1 million downloads (= visits) is nothing for "going viral overnight"
I wager the vast majority of people in the free tier would gladly cap their traffic at the (generous!) bandwidth offered by Netlify. Even to the majority in paid tiers, 100k bills where there previously was none must be unwanted and unintended.
I mean, we all know dark patterns are a thing...
You can avoid this sort of bad press and disgruntled users and your support cost by just giving users the option to shut down the site once the bandwidth budget is up.
That doesn't square with the 5% fee on the original $104k that your company told the OP to then pay.
Do you forgive 100%, 95%, or 80% of the bill?
Is the 100% only available when a story about a bill goes viral?
Collect this from my corpse you scummy fucks.
Moving my sites off of netlify ASAP.
About this specific case: it set off the flamewar detector (a.k.a. the overheated discussion detector) and also got moderation downweights. We sometimes turn off that penalty, but I don't think we'd do so in a case like this, because HN gets so many posts of this nature. They flare up with Big Drama that is sensational for a while but not particularly interesting, and therefore not really what the site is for.
In fact HN gets so many posts of this type that it has become a joke, and not only that but a cliché, so much so that the top comment of the Reddit thread repeats it [1]. That's about as repetitive as anything gets. The basic idea of HN is to gratify intellectual curiosity [2] and avoid repetition [3].
[1] https://old.reddit.com/r/webdev/comments/1b14bty/netlify_jus...
[2] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...
[3] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...
I read this whole thread before the CEO posted and after, and neither time thought any of the comments were out of line or even that the general mood was any more heated than any other random HN thread. People are politely asking pertinent questions.
And I think once the CEO makes a statement which contradicts the company's support response, that becomes very interesting. Particularly to anybody that uses their service. I'm certainly not finding the conversation very repetetive or cliche.
I can tell you pretty much for certain though, that we'd hear many more complaints if a Reddit thread about a customer support shitstorm stayed on HN's front page for very long.
Btw, the Customer Support Fuckup category is one of several $X where HN has become known as the place for $X, but only because HN is not actually for $X. Another example is the Site Is Down category—people often come to HN to find out what's going on when some $Site or other is having an outage. But just as HN itself isn't a site monitoring platform, it's also not a customer-support-of-last-resort platform.
If the community feels like this customer support fuckup is altogether more interesting, I'd consider reversing the call, but again, my gut feeling is that we'd get even more complaints that way.
I learnt more about Netlify, Vercel etc and how they operate from this thread from the last 100 "customer service" threads combined. I learned about Cloudflare's offerings, and a bit about Hetzner. And it was all very interesting.
You said you sometimes turn off those penalties, I think this thread would be a good candidate.
"Let's pretend it isn't," said Rabbit, "and let's see what happens."
[1] https://tinyapps.org/blog/202402260700_netlify-to-cloudflare...
Something that makes me feel uneasy about the fact that the post gets hidden is that this strongly benefits Netlify. It seemed like lots of people moved off Netlify after reading the post.
I'm not suggesting that HN actively took an action in Netlify's favor, but the potential is there. Is the algorithm for flame war detection open source? Or do we essentially need to trust you that there was no interference from Netlify? (I do trust you but others might not).
I don't know how to get every user to trust us. All we can do is answer questions when asked. That seems to be enough to satisfy most of the community most of the time, and it's probably not possible to do a lot better than that, much as I would like to.
OP was ignorant, and got tossed a lifeline. Also “just make everything zero dollars bro” is a ridiculous proposition.
I have no control over how much traffic my public sites get. There is zero value in me signing up for a service which charges me based on traffic if I can’t control the maximum they’ll charge me. Would you sign up for an infinite bill?
This is a dumb analogy, but the point is there is very obviously a pattern in this payment process that is ripe for abuse. The question of whether or not you aim to be an abusive business, plucking every shady profit where you can put the onus on the customer to try to come get their money back is one that many companies are deciding, and many are erring in the direction of the dark pattern.
By not working to avoid this problem from the get go, there is an implication about how a company wants to make their profits.
If it has always been a "policy" to forgive bills, shouldn't it have been 100% forgiven immediately after OP contacted support in the first place? Why go through the trouble of playing the hero by offering "discounts".
After this the CEO comes along and says that the policy is actually not to bill for this kind of event... But the company actually tried to bill this user 3 times... soo it all stinks really.
“0$ to get started, then pay as you go” reads to me: “0$ to get started, and then you can order add-ons and extra features as you need them”, not “$0 to get started, but we may start charging you virtually unlimited amounts at any point without prior notice”.
When signing up for the “Starter” tier initially, I completely misunderstood this. I didn’t have to enter any credit card or invoice details, so I thought as long as you don’t have that info from me, you can’t and won’t bill anything.
I think I disagree with this, but maybe I'm misunderstanding you.
Pay as you go sounds strongly to me that you pay based on your actual usage, not that it's free except for add-ons. A pay as you go phone, for example, does not imply you need to buy a telephony add-on, an SMS add-on, etc.
PAYG phones, however, were always prepaid, so I think I would expect PAYG hosting to be similar. That said, if my site was publicly accessible without my prepayment, I think it would be clear that it works the way it apparently does.
It's potentially misleading, but I don't think it's intentionally dishonest.
That’s my interpretation as well.
The usage of the term “add-on” is not clear here in my opinion. On their main pricing page[1], Netlify currently lists “Additional bandwidth” as “Add-on”. To me, that sounds like “I can actively order additional bandwidth in case the included bandwidth isn’t enough.” Not: “Additional bandwidth is automatically allocated and charged for as it happens to occur.”
In addition to that, there is a big bold “$0” at the top of the “Starter” plan.
The disagreement is on what "usage" means. I wouldn't assume that "usage" includes things that don't take any action on my part.
If I don't use my phone, for example, I wouldn't get any "usage". A phone pay-as-you-go plan would probably trigger similar outrage if they charged you potentially unlimited amounts for phone calls that hit your voicemail overnight.
The "do you know how it works" is completely unnecessary and rude.
It's really the trade-off for using any cloud host. You are implicitly trusting the host, their monitoring tools, their billing system, and their customer support when things go wrong
Netlify still looks terrible here.
> "You've got room to grow!"
ohfuckohfuckohfuck
That's terrible for marketing.
I wont touch a fake free service if it requires a payment method. Want my money, give me a reason to pay you, dont trick me into paying you.
Temped to go fuzz your product and document other dark patterns...
Truly shameful.
I interpret this as "we always charge for traffic served, but we attempt to block illegitimate traffic" which means of course that the worse their traffic discriminator performs, the more money they make!
One question though, what is Netlify gonna do to ensure this doesn't happen again?
I understand it's a hairy question, but the general consensus seems to be some policy must be changed or at least some line should be drawn.
"Didn't come through" doesn't actually match the user's report of having support explicitly offering 20% and then 5% payment. It sounds like maybe you have a training problem? That seems like one of the important points to speak to.
This large bill doesn’t look like a legitimate mistake, it looks like everything worked as intended until things got escalated via Hacker News.
Your support was going to charge him 5% as a "sign of good fate". How kind.
If it hadn't gotten traction, you absolutely would have charged him.
How many other people have you strong armed into paying ridiculous bills?
The fact that you have no usage limits is clear indication that this is intentionally left open to abuse.
Extremely shady and downright criminal.
Sure, this instance was resolved, but it's also the top post of the last month. Who honestly things it would be the same outcome if not for going viral...
Not only should this stuff be capped rather than the dam allowed to flow, but your systems should have picked this up immediately and known it for its nature.
Thus must have been a nice little earner for you over the years.
I'm moving all my netlify sites elsewhere, bob.
I'm probably not the only one.
It may only move a few MB a month, but I just can't risk if I put anything more substantial there that I might get hit with a bill for $100k and you maybe will forgive it. And that this has apparently been policy for nearly a decade makes it even worse.
https://answers.netlify.com/t/limit-bandwidth-to-avoid-high-...
I only realized this after Contabo contacted me and said the traffic is so high that other clients service is also degraded and they will have to take my VPS down if its much longer (which was understandable). Gladly the ddos stopped soon.
But never was there any talk about any cost, they were very supportive
But hey - just think about how much you saved on Netlify! Composable!
“The cool thing is that we also provide a load balancer, and if our system has detected that our main load balancer is currently being hit by a large DDoS attack and is slow or unresponsive, we’ll simply route around that on the DNS level. Since we cache content at our edge nodes around the world, end users also experience extremely fast page load times because of this.”
1. Comfortable paying >$100,000 to prevent their site going down for a single day, and
2. Doesn't pay a dime for their hosting service on a day-to-day basis
I don't understand why they won't just raise a 503 if the traffic exceeds the spend limit, or at the very least provide that as an option.
Autoscaling is a feature!
The issue at hand is that people put small websites on hosting providers designed for megacorporation wealth, like Netlify. I highly doubt the average blog needs more than a $10 VPS located in one single country without automatic fallback to another data centre. You can probably even go with a $5 VPS if you don't care about the first wave of HN front page bots not being able to reach your site.
I mean, yeah - but that shouldn't be the default and it shouldn't be something that you can't opt out of if it is, which is what sounds like happened with Netlify.
Same goes for most of the other pay-as-you-go providers that turn HN into billing support every now and then; very rarely do I see "we suddenly got a $20k bill" posts about services that these extreme availability products make sense for.
You wouldn't believe the amount of times I've said this and the response was "but it costs me nothing right now"...
Adding more regulation makes the system slower.
I'm fine with their pricing structure right now, since you have PLENTY of providers to choose from - people can easily vote with their wallets and there's no problem that needs solving.
However, the unexpected spikes are a problem, and providers seemingly don't provide any way to solve them because they make more money by not solving them. A regulation to require all providers of post-billed services to provide spending limits would make a lot of sense.
Of course, customers should also have the option to opt out of the limit or set a very high limit.
This should apply to any service that's billed by usage calculated afterwards, not just web hosting, and not just technology.
(But I also would like to see this feature)
I just had a look at the billing screen and I can see notifications but not budgeting options (on the Pro plan). Ideally I'd like to monitor/configure spend per deployment as some of our sites have big sales which can = big fees. Is this possible?
So it would be trivial for me to poll their budget API for an alert, and immediatly trigger a shutdown of my Cloudfront service. Why can't they do that for me?
Something based on this could be definitely better than nothing, but might also give false impression of safety.
[1] https://docs.aws.amazon.com/cost-management/latest/userguide...
I'm imagining an alert to the on-call team, and a soft shutdown until the on-call team can figure out the next step.
If it can save a few thousand dollars, it's worth it. Each business must make their own estimate of course.
Nope. Not in real time, they don't.
You can significantly overspend before the warning comes in.
I've dealt with Netlify's support [1], and one of their CS heads was incredibly rude to me and blamed me for the problem they created.
If their advertising is targeted to small businesses and individuals who could never afford this type of service, they could be guilty of false advertising, at least morally guilty. I haven't seen their marketing so I wouldn't want to say.
https://docs.netlify.com/domains-https/custom-domains/config...
If they just reduce to 5% like that, it shows how disconnected this is from their real bandwidth cost. Really does feel like a scam.
In the Netlify case, though, insisting that this person still pay 5% is downright insulting. I’m sure they’re taking a hit already - just waive the whole thing.
I do feel your pain though. Managing AWS costs can be a full time job itself.
For smaller customers, the friendliness of customer support and the flexibility to help them if they make mistakes is much more likely to be a retention consideration. And who knows when a company spending 3 digits a month becomes a customer spending 6 digits a month? You want to be the provider of choice in case the company grows.
Except it doesn't cost them anything. The marginal cost of keeping your single instance running is $0 (unless they were 100% out of capacity and they could have sold that instance to someone else either at full price or spot price)
It's very low cost, especially if its on a VM from a host that otherwise runs other VMs, but it's not 0. And if it happens to be the last VM preventing a hardware server from completely powering off, then it's actually quite far from 0.
Your argument is like saying that a bus traveler costs the gas needed to power the bus, but it's never the case: the bus would be cruising no matter what. And symmetrically the VM host would be up no matter what you did with your instance.
It would be very bad for any cloud provider to leave hosts with only one VM running on it, and you can be pretty sure only very small minority of their park that end up in that situation where shutting down a single VM would lead to a shut-down of the entire host, because it means that the host was vastly under-used in the first place.
At least in AWS, they never supported this, and in fact may require you to reboot an instance occasionally in order for it to be moved to a new hardware host (typically when they are upgrading their hardware).
The way you easily deal with this issue is very simple and does not require moving VMs: you just allocate newly spawned VMs to existing hosts with available room! When you do so (and they obviously all do!) you end up with little unused hardware…
Now you have 19 VMs running, but need to keep all 3 hosts powered. If you don't have live VM moving, you are now forced to keep Host3 running only because 1 VM is running on it, even if that VM is idle. So, this one idle VM is responsible for all the energy consumption of host3, and will continue to be so until at least 3 more VMs get started (since you have room for 2 more VMs on host1).
If you did have live VM migration, or if the idle VM were powered down instead of running idle, you could close host3 completely, moving the VM to host 1, and only re-open host3 if needed for new VMs.
This is equivalent to the problem of memory fragmentation. Even though overall usage is low, if host usage is highly fragmented and you aren't allowed to move used memory around (compacting), you can end up consuming far more than actually needed.
Yes it is similar to memory fragmentation in some way, but your argument is like saying an integer stored on the heap costs a full memory page! You realize that it's nonsense. Sure in extreme edge cases it can, but that's not a good metric to know the memory footprint of an integer!
Being able to move VMs is nice as it allows more host use, but it's doesn't mean hosts end up with single idle VMs often!
[1]: let say 10W, which at $.2 per kWh[2], ends up costing $17.5 for an entire year!
[2]: electricity prices from [here](https://www.eia.gov/electricity/monthly/epm_table_grapher.ph...) $.2 per kWh is slightly above the rates in California and Rhode Island, which is the highest in the US for industrial use.
This is an admission that their UX sucks and makes it hard to know what state your account is in and what you're paying for. They waive the fees because a few high profile cases of people paying thousands due to the AWS console being awful would drive a lot of customers away.
It's a value added service, they don't trade bandwidth as a commodity. Therefore unfair characterisation.
Plus, if you dive deeper: Bandwidth doesn't cost anything because bandwidth is just about pulsing some light in some glass fiber and applying some minuscule voltage on some metal fiber.Okay, maybe it costs some amount of electricity but all this is just a business model for paying on capital expenditure through time share arrangements. People can have all kind of models for this, for example you can come together with others or pay it all by yourself to install the equipment and have free bandwidth for the lifetime of the equipment.
It's all just arrangements to cover the capital investment and earn something on top of it. That's not a scam. A scam would be if they didn't account correctly for the timeshare usage or induce usage to boost payments.
I really don't get your point. If you're a hosting provider, the very thing you're selling is bandwidth (and disk space). Everything else is a value added service.
So even a reduction to 0.2% would habe been possible. Honestly don't understand why anyone feels comfortable overpaying so much. Especially when there is no configurable spending limit.
Don't have a business model that charges customers for your mistakes.
This customers bandwidth usage jumped from free tier to $100k in very short time. To be honest, this shouldn't even be possible. Any "free" tier that allows for a surprise $100k bill is not a free tier.
This bandwidth usage is the result of a mistake on Netlify's part. That much seems clear.
To go and suggest that the customer is responsible for any portion of the bill is where things really went sour imo. Don't do this. Ever. Unless you want your company to go viral for all the wrong reasons.
If you want another good example of how badly this can backfire, look at what happened when Unity announced their new pricing scheme. Unity's new pricing scheme also allowed for unbounded bills. At first they didn't even deny this. Later they said it was a customer misunderstanding. I.e., they blamed the customer for their mistake.
Thankfully, the CEO of Unity was fired.
The lessons are very straightforward:
1) Don't implement predatory pricing schemes (this can even be done unintentionally, but the intent doesn't matter).
2) If you do implement predatory pricing, the worst thing you can do is put on your surprised pikachu face when the customer asks why their bill is bigger than their annual income.
A moment of silence for the people who got DDoS-ed, didn’t go viral and still had to pay $5k.
These kind of stories (alongside cancelled accounts) repeat over and over again and will soon become so not newsworthy that they will either not end up in front page, nor people will check on the eventual outcome which means these companies will get away with not moving a finger.
When I received a message from the bank saying my account was in the red I discovered that AWS had been billing me 1100 / month for 5 months before I even noticed. It was for something I'd set up one night while bored and then forgot about it. They drained my account :( Even had the nerve to say I had to pay for premium support only to get a "lol, pay" response.
1. Offer “free static website” with lots of templates and guides to help you build one
2. The first 100GB is free and beyond that it’s $0.01/MB. But no worries! Very few customers actually use up that free bandwidth and in case you need more you can purchase packages for $100/TB. Also we offer a free service that will help you get your site more visible by advertising it, it’s included by default.
3. After a month or so, randomly help a customer bump the website and make it popular by putting it in some list that is frequently crawled. Secretly hire someone else to crawl these websites and make lots of download requests
4. Once the customer suddenly gets 10TB of traffic, bill them for 9900GB which is $99000
5. As long as 1 out of 100 customers pay, you are profiting $990 per customer! For the rest of customers, offer a 5% discount so they only have to pay $1980. Threat taking them to collections if they refuse.
Become the next millionare by just selling free static websites to 1000 customers! Anyone join us?
Just suspend service on excessive overages...
meanwhile in size 72 font on the marketing page it says FREE STATIC SITE HOSTING!
that's why this thread is more or less condemning scammy business practices.
[edit] check out this forum explanation from render.com billing:
> Free Tier Services are suspended, no overage charges. Paid Tier Services are unaffected (Free Tier Services can be upgraded to a Paid Tier, this isn’t an overage because you are manually intervening.) Exceeding allotted Bandwidth does result in automatic overage charges. $30 for additional 100 GB blocks. Exceeding Pipeline Minutes results in deployments failing and no overage charges by default, you can configure whether you want to allow overage charges for additional blocks of Pipeline Minutes.
I still don't understand, free tiers are suspended so no overage charges, but then how can they exceed bandwidth of which we're liable? x_X
(In my case, I'm looking for somewhere I can easily deploy a set of ~5 Docker containers, they don't need to scale up, and it's a hobby project so I'd like to keep costs as low as possible.)
Seriously, if you just want to run docker, maintaining a debian VPS for that is basically enabling unattended-upgrades and doing a dist-upgrade every two years. If you can't be arsed to do that then maybe you deserve the 100k bill...
You should look into going old school and just renting a VPS with any VPS provider that's not AWS/GCP/Azure. I know the big three are super popular, as are all of these "serverless" cloud companies, but very few of them offer the most important service for a small project: shutting down before you owe them a fortune.
Depending on the guarantees you want, Oracle has a free tier with no time limit. It provides 4 ARM cores with something crazy like up to 6GB of RAM for free. You may have a few days if downtime during maintenance, but once you've allocated the resources, you'll eventually get your services back from what I can tell. Best part is, if you only use their free tier, you need to manually upgrade your account to even be able to buy anything extra. Just make sure you have backups in case Oracle pulls an Oracle.
Or you could get a VPS from a budget hoster like Contabo, which isn't free but will fit most hobby projects I know just fine. They may shut you down if they're suffering from a DDoS because of you, but you won't get a $100k bill.
These things are scams because they prey on the fact that they're the only one shitty enough to do something so shitty and are counting on you not realising just how shitty they are.
With hosting - be it cloud or virtual or real hardware - the problem has always been that bandwidth use is completely outside your control. It was the first thing to check in the early 2000s and still is today, to an even greater extend.
So yes, sorry, as the other reply says, I might come across uncharitable or even condescending, but as tech people developing tech stuff how can one not be at least a little careful when there's a big "free candy" sign slapped onto something?
Two of the largest video content distribution platforms on the Internet, YouTube and Twitch. Free!* (just watch these ads). Store your data on the cloud with Dropbox, Google Drive, or OneDrive! Free!* (just let us harvest data about what you put in there) Hell, 25 years ago, you want to get on the internet? Use NetZero! Free!* (just look at these popups) And this pattern continues to be pervasive. And the real killer here is that we keep getting things for free*, so people that weren't around during the introduction of these tactics have grown accustom to it as if it's how things should be.
So, I agree, we really have a problem here in messaging and in using misleading psychology to bury dark patterns like the true cost of Free in services we use. We probably should be teaching more folks to beware of the true cost of things, that if it's free, you're the product, not the user, so on and so forth.
What I did not expect: to cancel one month of subscription you must pay 6 months of subscription as a cancellation fee. Maybe you expect that, but I have seen that anywhere else and did not expect it.
>So yes, sorry, as the other reply says, I might come across uncharitable or even condescending, but as tech people developing tech stuff how can one not be at least a little careful when there's a big "free candy" sign slapped onto something?
It wasn't free candy in my case, I was paying.
As I recall, you have to actively sign up for the paid plan (Blaze) to get pay-as-you-go billing. Otherwise, you get free quota, and if it's up, it's up.
I think it also integrates into all of Google Cloud's billing management stuff, but I've never had to bother with that.
#1. If you think there's any chance of getting DDoSd, you should already be on a business plan instead of a starter tier.
#2. If you think there's any chance of your site going viral, you're going to want to pay the cost anyway to let all those people visit.
I agree that's ridiculous and that the lack of any option of capping costs would mean I'd never sign up for the service. But that's the official response, for what its worth.
[0] https://answers.netlify.com/t/limit-bandwidth-to-avoid-high-...
If you go to a restaurant someone at your table orders 5,000 plates of mozzarella sticks, the fact that your credit card only covers $5 doesn't mean you are magically absolved from the rest of the bill.
For $100k, a debt collection firm would be more than happy to get a judgement against you. Credit card or no.
Like all of the big clouds with free tiers and nuke it from orbit level footguns lying about everywhere?
There was no awareness on the part of the customer service people how ridiculous that was. It would be physically impossible for my service pipe to deliver that volume of water even if it had been running full open for the entire month. I kept escalating until I reached someone who agreed, and they sent someone out to re-read the meter. And my bill was reduced to about $35.00, the normal amount.
Front line customer support isn't always very in tune with what is sensible for a given customer's account.
Not always - but a lot of the times, especially for lower quality companies.
> Towards the end of 2023, the DWM seemingly corrected the issue. Revive received an email stating: “The prior balance on the account reflected water leakage that was the result of Department of Watershed actions. Once the leak was addressed and the account properly adjusted, the corrected balance for the property is $219.24.” However, DWM soon backtracked and claimed that the $219.24 quote was made in error and that the nearly $30,000 balance still applied.
https://lawblog.legalmatch.com/2024/02/26/empty-atlanta-lot-...
Vercel seems like the perfect solution, and I love how it supports the development community.
I am moving all my current and future hobby projects away from Vercel due to concerns raised in this discussion. https://news.ycombinator.com/item?id=39520776
Although I am a very small customer of Vercel, I have been advising larger organizations on IT and data infrastructure for the last decade or so.
I can say with very high certainty that spending limits are a critical discussion point in every large organization when making IT decisions. I've observed multiple instances where a potentially better solution was not selected due to the risk of overspending.
Even though I've been actively looking for this, I couldn't find it.
However, this solution ONLY provides notifications; it doesn't address the underlying problem. I could be sick for five days and not check my phone.
What I need—and, in my experience, what all larger companies require—is a method to halt consumption entirely, similar to Snowflake."
For me it seems a little overkill to build an automated system that can handle webhook that can pauses a project
Hmm .. to maybe I'm overthinking it .. could you describe the architecture needed to setup a system like this?
I would consider extremely difficult to setup a reliable system that could listen to webhooks and pause projects.
My main concerns are .. how can you test it and how can you be sure that it is working in all future.
..
Are you able to find the twitter post you mentioned?
Here is a link to the twitter post where someone got a 23k bill. In the thread you can find people confused about how this could have happened and why there are not hard limits to prevent situations like this. https://twitter.com/michaelaubry/status/1757539928534315322?...
Here is a comment in the thread from their VP of product explaining how to set hard limits via a web hook. They said they would improve the documentation for it but some people replied saying they shouldn't need a web hook to set usage limits. https://twitter.com/leeerob/status/1757960730865696892?t=mCD...
Just went through Vercel's docs:
---
"Vercel helps to mitigate against L3 and L4 DDoS attacks at the platform level. Usage will be incurred for requests that are successfully served prior to us automatically mitigating the event. Mitigation usually takes place within one minute.
Usage will be incurred for requests that are not recognized as a DDoS event, such as bot and crawler traffic.
You should monitor your usage and utilize Edge Middleware to protect against undesired traffic based on its IP, User-Agent header value, or other identifiers."
---
That doesn't help me sleep well.
I feel that by now, these hosting providers should simply adopt best ddos protection practices and take responsibility for failure to protect.
"You should monitor your usage and utilize Edge Middleware to protect against undesired traffic based on its IP" - there should be some really good defaults for this right?
Clearly it's possible - Cloudflare's ddos protection is worded more strongly.
I'm willing to pay more for the service for peace of mind. Like, even $10/mo more to insure against getting smacked out of nowhere.
I would even imagine Netlify's target market is small to mid size businesses who really don't need ridiculous burstable scaling capacity at all. Seems like a bit of a trap door for that customer base.
I agree though, I wouldn't host on them as a small business due to that risk, but I am also happy running my own server so I might be an edge case.
This seems to mostly hold true to developers also, GitHub manages to survive just fine after all.
For most internet consumers we’re accustomed to poor service so if a page doesn’t load we’ll assume it’s a local problem and try again 20 seconds later, same with buffering, it’s just something that happens occasionally. This is increasing the case for phone calls too. Legacy live tv and radio going silent though is still a major issue, especially on live events.
When users expressed concerns for a similar scenario that the OP experienced on their community forum, Netlify's staff responded with "how likely is this, really?" Only has to happen once to put someone in significant financial harm.
Yeah, we got hammered once with over 10TB/mo and noped out of Netlify as fast as we could: https://twitter.com/rethinkdns/status/1370342245841342466 Had to pay the bill in full.
Cloudflare's free tier is ridiculous: We do over 30TB+ of genuine traffic for $0. Makes it hard to move to any other platform. As a small tech shop, this is my Hotel California I'm happy to never leave.
As a business for Cloudflare?
Cloudflare in 2014 blogged about how they work relentlessly to bring down bandwidth costs by peering aggressively where possible [2] (which apparently means $0 for unlimited bandwidth [3]). And where they can't / don't [4], egress is 5x (est) the ingress (one pays for the higher among the two), but this creates an opportunity for an arbitrage and give away DDoS protection for free.
This is pretty similar to Amazon's free-shipping offer for Prime customers despite it being one of the biggest loss makers to their retail business. Prime basically has since forced Amazon to bring down costs through building expensive and vast distribution & logistics network that spawns the globe. Doing so was a considerable drain on the resources in the short-run, but in the long run, it has become an unbreachable moat around its largest business.
Analysts like Ben Thompson (stratechery.com) and Matthew Eash (hhhypergrowth.com) have written in detail about Cloudflare's modus operandii over the years, with both agreeing that Cloudflare's model is so brilliantly disruptive that even Clayton Christensen would be proud of it.
https://news.ycombinator.com/item?id=33337183(from 2014, so it might be super outdated)
They’ve written about it before: https://blog.cloudflare.com/aws-egregious-egress
For larger providers, bandwidth cost drops tremendously, especially if you’re well connected as transit is much cheaper and if you are really large or a network provider you may even be routing between your own facilities or in some cases from one customer to another and every large scale isp is going to want a “direct link” to your facility (a peering relationship). Those costs are astronomically small at scale for bandwidth.
The ISP or similar then turns around and sells a sustained network throughout as GB transferred, which isn’t how wholesale bandwidth is sold at all. So the get to charge for the data the pipe moves while they only pay for the connection itself — the markup added to this process is considerable.
For someone operated a global CDN, which is basically what they do, they have racks of storage and computer collocated all over the world and optimize the living crap out of their network to reduce their costs and make it run on as many peering relationships as possible. It’s an expensive and complex business to set up, but once it’s set up you get a fairly good and consistent return out of it.
The reason for this article is related to the nature of that business: it’s the issue of liability.
When you have policies where you protect your clients from downsides and excessive use on the network, you suddenly have to assume the role of paying attention to what’s on the network and policing it’s contents. That’s not possible with a massive system like this generally, so they push the liability down to the customer and discount the mistakes that come up. That’s why things are set up like this… this kind of stuff isn’t their business at all really. They are looking for the customers that convert and pay, which is very profitable, and the free tier is often thought of as a sustainable cost if you are large enough scale, as it substitutes for the rather massive expense of marketing and sales which is one of the largest expenses in a bandwidth focused business. CAC is the free tier.
There also competitors, but the benefits of scale are tremendous in terms of cost efficiency. A large provider might be paying just a very small fraction of a penny or less (even “free”) compared to what a small provider is paying. So that’s why you end up with fewer competitors because it truly is a business that benefits from economies of scale.
There are other smarter people on here who can correct any mistakes I’ve made or provide better pricing or whatever, but that’s the more in depth answer.
Those big providers have pretty much normalized high fees and convinced people that's what it costs, the reality is any normal provider like Hetzner for example gives you tons of bandwidth for essentially zero cost included with your servers.
The invisible hand of the free market has come to fix that, *but you have to opt into the hand by shopping around.* If you don't, you don't get its benefits! You have to willingly take the choice to move to cheaper providers instead of overpriced ones.
Hetzner Cloud: $1/TB (20TB free) Digital Ocean: $10/TB (few TB free depending on server size) AWS: $90/TB (0.1TB free, used to be 0.001TB free) Netlify: $550/TB (0.1TB or 1TB free)
If you move up from $5/month VPSes, to real dedicated servers, you are now spending a lot more money and therefore you get more free perks. A huge number of providers exist that will give you unlimited or unlimited† bandwidth depending on how much you spend. Renting a powerful server with unlimited 1Gbps should cost a few hundred to several hundred dollars per month, and a powerful server with unlimited 10Gbps (i.e. 3000TB/month) should cost a few thousand dollars per month. You can even get some with 100Gbps (for tens of thousands).
Also consider asking your local ISPs and datacenters. If you live in a central area, you can probably get a comparable connection to a nearby datacenter if not straight to your office, for a comparable price. Data center connections are their bread and butter and they should be able to give you a quote quite rapidly; to your office will be a more custom thing.
Recently I got a quote for AMS-IX peering in Berlin, i.e. a peering in Amsterdam plus a link from Amsterdam to Berlin, about a 600km distance. That would cost 950 euros per month. If 1Gbps, it would cost 300 euros per month. Even though it's not really got anything to do with internet access (transit), I include this number to give some indication of the "true" cost of "raw" bandwidth.
"your margin is my opportunity"
Here's how it works:
1) I have a big network and I exchange traffic with another big network. Think of "eyeball" networks like last-mile ISPs (Comcast, mobile providers, etc) where a substantial portion of end-user traffic is going to handfuls of well known networks - Cloudflare, AWS, Netflix, etc.
2) Comcast and Cloudflare say "Hey, I send you X TB/PB/etc and you send me X TB/PB/etc. We both currently pay another provider to route that traffic between us. Let's not do that."
3) In locations where it makes sense they basically throw a cable across datacenters, POPs, internet exchanges, etc. The cost for this is typically extremely low - it's basically a port on a switch/router on each side and MAYBE a "cross connect fee" from the facility. This is usually billed in the tens of dollars/mo if at all. It takes very little time/effort to configure this but of course the details are more complex - multiple ports, multiple facilities, etc.
4) Both sides start routing traffic between their networks over their new shiny direct cables and extremely high speed ports. Faster throughput, lower latency, improved reliability, frees up bandwidth to the transit provider they were using previously, and most importantly the cost of bandwidth between the two networks goes to zero.
This is all well known and publicly available because it's visible in the global routing table(s). Cloudflare, for example[0].
All of the large providers do this and AWS, etc charging in bandwidth per GB (especially at their rates) is more-or-less pure profit.
I have a theory that AWS, etc capitalize on people not really understanding this anymore. AWS is 20 years old - that's an entire generation of CTO/CIOs on down that are completely unfamiliar with these details and think $0.10/GB or whatever is "just what bandwidth costs". It is not.
At OpenTofu[0] we’re using CloudFlare R2 to host the providers and modules registry[1]. Bandwidth is free, you only pay for requests.
This already would be great, but there’s more - you only pay for requests that actually hit R2. So with an almost 100% cache hit ratio, we barely register any billable requests.
Recently someone decided to load test us and generated ~1TB of traffic over 1-3 days. All but a few of these requests were cached, so the whole situation probably cost us less than a cent.
[0]: https://opentofu.org
We front our distribution service with Cloudflare Workers fronting R2 fronting S3 / Lightsail Object Store (https://blog.cloudflare.com/cloudflare-r2-super-slurper/). That brought our costs down from $500 to $2 serving the same amount of traffic.
It's not really ridiculous if you think about what you're giving them.
You are massively benefiting their platform by providing them data which they use to train their services and then sell those services to other customers.
I'd make a case that the data they collect is the most important part of their business and the free tier is a major component of this.
Yeah that's how Cloudflare can reach total control over the Internet. With thunderous applause by people that should know better.
I know that my position is outright blasphemous in this day and age, where even self-hosting a static site has become black magic and we need a third party to do it for us.
What would the Cloudflare going evil phase even look like? Is it anything like Netlify charging me 100k because they don't provide ANY DDoS protection? I don't see any FOSS tools preventing this problem.
Of course there is a benefit to selling your soul to the devil, what's the bloody point otherwise? I do not need to hear all the good things the devil got you, I am telling you that it is silly that "go Cloudflare" is the default advice is any situation because we have become lazy and complacent and we do not really care that we give the keys to the internet to one company.
The Internet gets shittier because people are lazy, and I need better arguments to being complicit to this than "I need DDoS protection for my 100-visitor a month blog."
Yes? That's what this story is about. A random small website incurred a 100k charge because someone had the boredom to DDOS them today. Do you think you're not at risk?
> The Internet gets shittier because people are lazy, and I need better arguments to being complicit to this than "I need DDoS protection for my 100-visitor a month blog."
Gonna need you to explain the mechanism here. Because my argument is that Cloudflare is not the devil no matter how much you say it, and that using their service doesn't give them any keys.
What exactly are people lazy about and what are you doing alternatively that makes you different? Just not using Cloudflare? Because that's like not using condoms because you don't want to support a condom monopoly.
This is an emotionally-manipulative, anti-intellectual comment that certainly does not belong on HN. There's no intellectual curiosity or value in this comment - just scoffing, predictions of doom, manipulative statements like "I know that my position is outright blasphemous in this day and age", and other drivel that belongs on Reddit, not here.
I put in far less resources and maintenance after I had the system running. Especially if you need to manage the software running anyway.
For most of the new web projects, setting up your brand new server is pretty well documented process and should not take more than couple of hours.
It get complicated when you grow and add more servers or components. But at that point, you should be able to afford a part-time consultant to handle complicated tasks or just use Cloud then.
Now, who in the would would be thinking of having ddos protection for their hobby project? This is just absurd thinking.
When I rent a car in person, I am often given a contract. And this contract is filled with tiny print, and pages of it.
There are often people behind you, waiting, and bored/annoyed people behind the counter, waiting. This is beyond unreasonable.
A point of sale contract should be short, in readable text, and understandable. For example, renting a car? Under a page, easily parseable, and if the person behind the counter cannot explain it, it is null and void.
From a legal side, you can do this. And you can explain legal terms. Of course this means you are describing intent, which limits one in court, oh boo hoo Mr Lawyer. Cry me a river.
Well the same should be true of any retail contract. Sign up for a service? One page with costs listed.
At least then, there is hope of an end-user sort of understanding. And as one could claim that a DoS was actually targetting the provider, and not the website, that should be described too.
So back to the topic at hand. I would write a demand letter, insistong Netify explain the charges, and ask them if they and their IP ranges were DoS, and if so that the charges be reversed.
Because you shpuld not be paying, if someone attacks Netify.
This letter should also be sent by mail, sig required, to the corporate address too.
As someone who reads the agreements I sign, one thing that has become prevalent is that they're so used to people not paying attention to what they're signing that they're sometimes not even giving you an accurate copy to review. For example, you read the thing and think, "Okay, I can work within these parameters," then you sign, and later get an email containing your "agreement", but it turns out what's in the email is a different set of terms with a bunch of stuff that wasn't in the terms you actually agreed to when you signed. Or someone hands you a pad with an "I agree to the terms" box checked beside the signature line, and when you ask to see the terms you're agreeing to, they're caught off guard (being totally unequipped to let you do that), which turns into being flummoxed with how to proceed, which turns into getting angry with you for asking.
I have seen people understanding, but with a "oh, you're one of those people" looks on their face. That too is entirely uncouth. But people should start recording these interactions, not obtrusively as the purpose is not to intimidate, but instead just make a record of what transpires.
I think legislation that makes it completely legal and admissible in court, any recorded retail interaction, might be an interesting change.
Because if you are presented with a contract and "JUST SIGN THE DAMN THING!", or "It just means $x", or "People are waiting, just sign it!" and so on, that would likely go a long way indicate compulsion, or even (by describing intent) change the entire contract itself.
If this happens, it may be cheaper to just have sane contracts, and do non-dumb things, then try to train every employee that has public contact.
Unfortunately, in today's world, DDoS protection is the equivalent of basic hygiene, foid and road safety. It's just a travesty that the hosting providers don't feel like it's their responsibility to address it.
There are many provider who don't tho.
I think being offline is a lesser headache than a large bill, especially for those who are inclined to a free tier to begin with.
This includes some of the TPTB, too. Occasionally, though, someone'll say the quiet part out loud. E.g. re fly.io:
> putting work into features specifically to minimize how much people spend seems like a good way to fail a company
Under the free tier:
> Unlimited bandwidth
Does anyone else experience this as well?
Oh, and the ability to put some authentication in front of it was a big feature for me.
[^1]: https://developers.cloudflare.com/pages/platform/limits/
Once you're receiving more traffic than you network cards can handle, it does not matter if you'll drop the packets with iptables or not.
I was the target of attacks that caused Hetzner to terminate my contract. I was leasing physical servers there, so I assume the attacks were overwhelming their infrastructure.
[0] https://blog.cloudflare.com/mitigating-a-754-million-pps-ddo...
I saw millions and started to feel my heart race a little
1. You can make mistakes in your code.
2. Some junior developer can by mistake change the code and make it ineffective.
3. Webhook is not instant so you can get billed more than the limit.
4. There is no information which project hit the limit, so you need to Fetch all of your project ID's and then disable all of them. You need to basically disable all the projects assigned to your team/organization.
5. Vercel doesn't guarantee in any way that you won't get billed more, they are just sending an information to you (with a delay).
Hard limit should be a deal between user and company that the user won't ever get billed more than X$
An interesting story that expands on the above concept but a different vector entitled, "Illegal Life Pro Tip: Want to ruin your competitors business?" : https://news.ycombinator.com/item?id=36566634
Even if the DDoS wasn't caught by Cloudflare, the total cost for 192TB bandwidth on Hetzner would be €172. Although even after 10 years on Hetzner I've never paid for any bandwidth, always well within their generous 20TB free bandwidth.
They also likely drop any charges if you escalate via support in case it was actually DDOS. E.g if you normally have 100GB / month and now you magically have 50TB / day.
What Netlify does is a scam.
I prefer to keep my App's stateless and running in Docker containers which means storing all uploaded files and generated assets in R2 managed storage - which is also used for Litestream backups of our SQLite databases.
Blowouts are minimized when using low cost services, e.g. we had a rogue process that ended up causing 1.5M writes to R2, which only ended up costing us $4.50 in that month.
So we're using Github Pages for static hosting and a $5 box from OVH now. Unmetered bandwidth, plenty resources for our purposes. Cheap enough, and we will never, EVER, have to worry about an attack like this. Well worth it imo.
Imo, serverless is great for internal jobs where you can control spending. For public facing things, you have to be a lot more careful.
https://docs.github.com/en/pages/getting-started-with-github...
Arguably a non-profit (unless it was selling stuff from the site, which is unlikely) would be exempt from their list of prohibitions.
Sure there is no such thing as "free unlimited" bandwidth but I much prefer unlimited with a fixed cost until they decide it's not worth it and shut me down vs unlimited risk with no ability to cap it.
The lack of cap is the worst part and it's 100% a business decision. Every provider who tracks bandwidth could add a cap but they just choose not to because it's too profitable and the risk is mostly* on the customer anyways.
*there is of course a tiny chance they the customer goes bankrupt and they get almost notning, but usually they just need to pretend to be nice and forgive all or most of it
But in the vast majority of cases you could just take a $5 VM, apt-get install nginx and be absolutely fine. A tiny bit more effort and you can make sure it's always up to date and very secure. Plus you get a VM you can use for other things when needed.
Hetzner's plans start at 1,76€/month with a domain name included and unlimited traffic. OVH is slightly cheaper.
I'm probably too old (?) to understand the appeal of Netlify or other similar services, but I really don't understand why they get used.
By the way, Netlify says "100 GB bandwidth" is included with the free plan which I thought mirrored Hetzner's number of "30 TBit total bandwidth", but you have to click the details to see that it's 100 GB per month. So not bandwidth at all, but traffic.
[0] https://docs.hetzner.com/cloud/billing/faq/#how-do-you-bill-...
You need to manually upgrade.
Unless you need more than the Free-Tier Vercel should be fine.
"Should be fine" is exactly what is not the case here. Better check your Vercel terms again.
From every Vercel document that I can read though is that when you exceed the limits of free tier they are just locked for 30 days unless you upgrade to Pro.
So unless I am mistaken this cannot happen on Vercel.
They removed this call in the meantime [0].
What they should have is monitoring per user and a default that 503s the site with no overages that has to be proactively disabled by the user. Instead they’re just letting it ride and trying their luck by negotiating down the overage charge to what they think the user can stomach.
The Netlify team must think: we waive the fees, because in this instance we noticed the negative press and want to avoid this from blowing up. When this happens to other users, we don’t care, as long as it does not go viral.
Such a pity, Netlify has great UX and I was so happy hosting static pages on their service. But without spending limits, this is not an option for me any more. I could not sleep well when there is a possibility of a $10.000 invoice reaching my inbox.
What I didn't appreciate is static assets are completely free: https://developers.cloudflare.com/pages/functions/pricing/#s...
So therefore I assume static cloudflare pages are free.
Incidentally Vercel does seem to have an (annoyingly indirect) way of halting usage based on spending: https://vercel.com/docs/accounts/spend-management
Has anyone implemented this, are there any problems with it?
- Enable spend management (https://vercel.com/team_name/~/settings/billing).
- Set webhook to pause the project: https://vercel.com/docs/rest-api/endpoints/projects#pause-a-...
When the amount hits the targeted value, Vercel will call the webhook that pauses the project.
If anyone has a solid bash one liner to stress test a website, so that I can test whether my cloud billing cap will work correctly if I accidentally try to egress 100 MB of data or something, I would seriously appreciate it. There was one on a blog post here like a year back, using apache iirc, but I forgot to bookmark it.
the binary should be easy to install with your package manager, you may have it installed already
example:
They seem to have dropped that plan now.
I was starting to move back to traditional hosting as these platforms are convenient, but you do lose control and get hammered for their addon services and simple things like static ips are beyond them, even if you offer to pay.
Also, if their cdn is naughty listed, corporate networks may block your site as you are sharing pro and business plans with free sites that maybe serving malware etc.
Hearing this story has pushed me to move.
I hope they sort that for you, they really should have the ability to protect a site and let you choose what to do if you are exceeding your limits.
Why do not more technically inclined people self-host? Is it force of habit from how things are done at work?
I would much rather run the "risk" of some occasional dowtime, than keeping the lights on at all costs under a DDoS-attack.
I would much rather run the chance of some occasional downtime in exchange of being in control of the infrastructure and owning my own data. I really like the idea of a inter-connected net that is kinda spread all over, not super concentrated to a handful of data hubs.
Companies should be legally required to allow their customers to set a ceiling to their monthly spending.
Also, being at the mercy of a CEO and their understanding is a no go, whether you're a company or an individual. We want to be 100% sure we're not going to get bankrupt when using a service. "Don't worry, our policy is to usually erase the debt" is not an appropriate answer.
They should definitely be able to accomodate and account for what should be a very common issue (does).
This should not be tolerated. Full stop.
At first I thought it might've been https://hanhngiox.net/ , but that one appears to have simply expired.
used to use s3 for the longest time, but aside from costing a nominal fee, it's so unnecessarily complicated in this day and age.
edit: refreshing that they highlight baked in ddos protection right up front on their marketing site: https://docs.render.com/ddos-protection
https://community.render.com/t/confused-about-the-free-tier/...
> Exceeding allotted Bandwidth does result in automatic overage charges. $30 for additional 100 GB blocks.
So the same shady pracrice as on Netlify.
its like 10 minutes of setup tops to host on s3
Creating an s3 bucket is easy enough. but you need to add the policy Json config to allow public access, and it has various versions across time and space. the one that works for me is like 15 years old iono. object resource "//*" something or other.
ok so now you have an s3-east-mybucket.com/index.html, ok custom domain that's route 53 yet more configuration vooodoo to point an s3 website enabled bucket blah blah.
wait! need SSL? oops actually that's cloudfront. need a cloudfront config voodo to point to an s3 config voodoo to your hopefully correctly configured route 53.
are you kidding me, 10 mins? You're a wizard. Now i do git push origin main and my sites up on render.com
I run my sites [0] on Hugo and copy the generated sites (Makefile) to BunnyCDN with their command line tool.
It's a plain CDN, but does include DNS hosting for easy SSL certificates and has scriptable DNS [1] where you can run Javascript for dynamic DNS.
I went with them b/c they are in the EU, but I've stayed because I love them.
[0] e.g. https://www.amazingcto.com/
Does their ddos protection work differently than Netlify and could Bunny ever pull the same stunt with billing?
I think the main difference to me is
Netlify $550/TB [0]
BunnyCDN $10/TB [1]
You preload your account:"In order to keep your service online, you are required to keep a positive account credit balance. Our system will automatically send multiple warning emails if your account balance drops beyond a certain point. If you fail to recharge your account, the system will automatically suspend your account"
"Monthly Bandwidth Limit (GB) - Limits the allowed bandwidth used in a month. If the limit is reached the zone will be disabled. Set to 0 for unlimited."
I was thinking they never charge for anything unless you explicitly allowed it.
You'll get a call on any of their plans if your bandwidth usage exceeds certain thresholds, I am assuming your median usage is relatively tame.
Disclosure: Cloudflare enterprise customer, no other affiliation. I don't get anything for saying nice things.
- Cloudflare Pages: https://pages.cloudflare.com/
- Cloudflare R2: https://developers.cloudflare.com/r2/
Seriously, maybe I'm just old, but I look at the pricing of these hip and modern SaaS products for dead simple software and I cannot believe my eyes. The "old fashioned way" works just fine (and has always worked just fine) and is orders of magnitude cheaper.
How am I protected against extra charges for traffic?
Whether that includes your wife or not is up to you ;)
The best of both worlds is to host on AWS EC2 or a similar product from your web service provider of choice.
If it’s been a while since you did any server work: https://www.dannyvankooten.com/blog/2024/static-site-hosting...
most people wouldn't be able to pay a $100k bill
Are they also transparent about the fact that they
1. Won't do anything about a DDoS, and
2. In case there's a DDoS (or some other unusual traffic spike), you'll only get notified waaaaay after the fact when you get the $100K bill, instead of getting a timely alert that would allow you to shut your site down to prevent getting extreme charges?
No and no.
It's a scam.
they could ask the user for their budget when they are setting up their account as a basic guardrail, or they could give you a call
Not too mention: if the primary purpose of these services is to allow a DDoS and then charge the user for it — then, yup, you're guessing it right: it's a scam.
When their business model makes DDoS attacks profitable for them... They're not in the hosting business, they're in DDoS/extortion business.
Upon review, it does not look like this is the case. I have several very low traffic projects on which would have never been anywhere close to the free limit. However, if I get involved in a random spam attack, it seems I could be on the hook for several thousand dollars.
This is incredibly dangerous. Netlify is often used as a beginner friendly free tier for static hosting. Not as something that is cheap, but as something that is free. This is just an overall dangerous position to put people in.
Who controls the DDOS bots? Are they truly a separate entity? There is no direct evidence to link them together, but you would think that an honest company would be more proactive in preventing problems like this for their customers.
According to the linked reddit story, this is a known issue with Netlify and their response to past incidents is basically to pound sand. It all adds up to them purposefully trying to find ways to generate a high bill for their customers and hoping a small amount will pay for it.
Not to mention the strong conflict of interest for netlify, who stands to gain from their customers being attacked. Netlify is getting paid for something criminal in nature having occurred.
It's like who is responsible for credit card fraud? If customers are responsible for credit card fraud, and it's their responsibility not to get scammed, then who implements fraud prevention measures and what effect would that have on the volume of fraud?
I don't really get why people put their tiny static sites on hosts designed to never fall over no matter the traffic generated, no matter the situation. You're running a blog, not a government service. You don't need AWS or Netlify.
The ability to withstand almost any DDoS attack for a high price is a valuable service. It's not a scam. The people who get these huge bills just picked a hosting service that doesn't fit their requirements. I can promise you that the $3 shared hosting providers won't charge you $5k, five minutes after the DDoS starts your site just goes down.
Budget hosters will either cut you off completely (shut down your VPS) or throttle your network. For instance, Contabo doesn't charge extra, but it does reduce your network speed to 100mbps if you're exceeding an average connection speed of 100mbps over a timespan of 10 days. Leaseweb offers you the choice to power down a VPS when exceeding the bandwidth cap (though this is disabled by default).
If you need more bandwidth, Hetzner is popular, and charges around €1 per TB of bandwidth if you exceed their free bandwidth (+VAT, the $104k bill would be €40 under Hetzner, as 20TB is included for free) and provides configurable automated traffic email notifications before you hit that. Personally, I would add a warning after the very first terabyte, because I don't know what personal project even uses that much bandwidth.
Their dedicated servers don't seem to have a bandwidth limit, though there seems to be a fair use policy (there's this thread: https://lowendtalk.com/discussion/180504/hetzner-traffic-use... where a user complains about Hetzner threatening to end the contract after exceeding 250TB of traffic).
Many VPS providers and shared hosters won't send you these huge bills, but you should always read up on their policies when renting servers of any kind. These hosters don't come with free tiers (which I assume is the reason people consider services like Netlify in the first place) but they will usually tell you how they deal with bandwidth issues in their FAQs.
The core product is already enterprise-grade. Netlify's pricing page basically turns into a "contact sales" button when you select "enterprise", probably for businesses that did their math and are trying to get a discount. Everything about their website seems to target medium to large businesses or hopeful startups.
You're assuming Netlify is paying for bandwidth in $/GB, when in reality they're probably paying $/gbps and thus have no costs to cover when a customer temporarily bursts their bandwidth.
In your example, a DDoS sucking down bandwidth would cost more than a DDoS would had it been about total transfer volume. Their servers can only produce a set amount of network traffic at a time and on one single day, this one customer sucked up 5½gbps continuously, based on the 60TB figure provided in the reddit post.
This kind of extremely bursty traffic takes capacity that would otherwise be usable for tens or hundreds of customers, but to meet their guarantees, they must scale out massively to catch these bursts. I think it makes sense that making them dip into their bandwidth reserves should cost more than the average cost of a network transfer.
I don't know the actual costs Netlify has, and I'm sure the support rep saying they can drop this down to 20% or even 5% shows that there's a buffer here, but the 5 grand OP was asked to pay seems to come awful close to what you would pay on other high-reliability providers, such as Amazon. The max fee is probably to push their expensive customers into special deals (or to their competitors), but I find their 5% offer quite reasonable.
There's also the question of whether Netlify is even accurately tracking this bandwidth...
I think you could argue that Netlify is guilty of racketeering in OP's case.
1. They admit illegal activity happened (a DDoS attack).
2. They demand money to be reimbursed for the illegal activity. However, the reimbursement they ask is several hundred times higher than the actual damages incurred.
The price of cdn bandwidth is about 0.01/gb on low volume (cloudflare, aws, azure…) so op should be billed around $500 with 40TB. Netlify probably buys this for way less. He was presented a bill at $104k, « generously » reduced to $5k, still a x10 margin. Vercel and Netlify are outrageously expensive for what they do.
> they probably should have a giant warning page for new users who don't know that this is how this kind of service works
Pick one
What I think Netlify needs on their Plans page is to include "DDoS attacks is included in your traffic" as well as their 20%/5% charge system.
> and can see why the lack of limits would make it a bad option for plenty of people
Just out of curiosity, can you see any scenario where it WOULD be a decent option to use a free tier where you may be hit by a $20,000 or $5,000 bill out of the blue and outside of your control? You say "plenty" so I assume you consider this a reasonable system to some?
If you need a nice front end, spin up a Wordpress instance with a provider like digital ocean or vultr or any other number of places. It’s like $5-10/ month and has terabyte bandwidth without issue typically.
Then put the site behind cloudflare or at least configure a plugin for ddos protection.
The funny thing is - such platforms "scale" easily with the underlying assumption that scale equals profits, enough to justify increased cost. Needless to say, inaccurate assumption.
I would think (as a former lawyer with only passing familiarity with class actions) that 'typicality' would be the key question.
> to determine typicality the courts consider to what extent plaintiffs’ claims are markedly different or are generally the same (for instance arising from the same event or pattern) as those of other class members with respect to the relevant legal theory and factual circumstances of the case. [1]
The defendant would probably claim that each plaintiff's issues are quite unique. However, this prong is apparently not based on the typicality of the specific facts giving rise to the lawsuit, but rather the typicality of the nature of the claim or defense. And it's apparently hard to 'win' (defeat a class action) via this prong. [2]
1: https://www.bonalaw.com/insights/legal-resources/what-are-th...
2: https://california-business-lawyer-corporate-lawyer.com/clas...
I would not like to pay for something which was advertised as free (don't have a nervous for paying without hard limit for home project, I can host it even on rasberry pi + pay just for address). That's why I find it is better to not use your real name as long you don't want to make real business :(
I’ll remove all my websites from Netlify and moving to Cloudflare. Auf Wiedersehen.
For example if my personal blog exceeds $1/day, I am ok if it goes down. Having no limit is insane.
from https://www.netlify.com/blog/2017/03/28/why-you-dont-need-cl...
"...Top to bottom, our infrastructure redundancies make sure we keep traffic flowing, so there's no need to add more redundancy with Cloudflare. ...
You don't need Cloudflare when you use Netlify
As you can see, we already offer what Cloudflare does, and more. If your site is not on Netlify, perhaps consider us for your one stop solution for hosting, SSL, DDoS protection, DNS load balancing, and continuous deployments. ..."
The request is very simple: max budget per month. Shut it down if it exceeds it. Implement it already and stop with the excuses.
I'm usually pretty chill, and can't help but feel like I'm overreacting - but the risk of being sent an unexpected bill of even a few hundred dollars for something outside my control is unacceptable. Trusting that Netlify will do right by me and forgive the debt in a similar situation is not an acceptable strategy for managing that risk, so epiccoleman.com now lives at a provider without this risk.
This is the beauty of static sites, btw - switching to a new host is the work of mere minutes.
I don’t think you are overreacting. I had Netlify in pro mode at work and their pricing tactics are predatory. It was really hard to figure out why I got charged a seat, even though nobody had rights etc. And I couldn’t then remove these seats, I had to wait a month and hope I figured out where those contributors came from.
Static: Github Actions to build and deploy to BunnyCDN
Non-static: selfhosted Dokku on Hetzner
Neither is free, if you're looking for free, Github Pages or Cloudflare for static sites. Free non-static, I'm not sure there are solutions that don't have the same problem Netlify has.
I'm using the free tier and have no billing info set. According to this https://github.com/netlify/ask-netlify/issues/6#issuecomment... > if you have an event that puts you over the free-tier limits, Netlify will ask you to update your billing information and add a CC
Although worryingly > We just had this happen and our site didn't stop working.
Is there any way to ensure if you hit the limit sites just stop working and you don't get billed?
It is beyond ridiculous that serverless providers don't offer a way to cap spending. The idea that it might cause your site to go offline is a complete non-argument. That what I _want_ to happen. I want to be able to say sure, I'm happy to sustain 10x traffic for a few hours, and maybe 3x sustained over days, but after that take it offline. I don't want infinitely scaling infra precisely because of the infinitely scaling costs.
Which, if it remains the only consequence, seems like a blessing now.
This is not something you would assume from the pricing page. On the pricing page, they show you:
Add-ons:
Additional bandwidth
Additional build minutes
Additional teams
In my understanding, an Add-on is something I need to enable, not something THEY enable for me if they see fit. When I am logged into Netlify, they tell me: No currently enabled site add-ons with fees
Which apparently means nothing, as they will just automatically enable the add-on for me!!!I have seven static sites on there, deleted 3 of them right now, will migrate the other 4 soon. Unbelievable bullshit.
Now I get that this is their 'product'—selling hosting to high traffic customers, and I don't particularly begrudge them charging whatever margins they think are suitable for their product and let people make their decision.
But no mechanism to cap maximum spend is completely ridiculous. Even if you require a minimum cap of say $5/$10 dollars, as long as it's clear and transparent, I think that would be reasonable.
Anyway, this has scared me into never trusting Netlify with anything any more.
They consistently missed someone that doesn't get more than 10GB traffic a month now maxing out a 5Gbps line (60TB/day stated in TFA) for several days in a row.
And consistently missed someone with a tiny bill's now racking up 10s of thousands of dollars per day. Even if they do run a mainframe and batch process at the end of each day, that still went a few days. If extending lines of credit of tens of thousands of dollars is legal, that's very generous.
What further consistency is available at Netlify?
Competitors could rinse and repeat this strategy to put netlify in the dirt for good.
I had a couple of small businesses hosted there, but this always worried me, so I moved them to a local provider, who provides what they need for a flat fee.
I have some websites with milions + autogenerated webpages and it's flooded by bot activity that I don't particularly care about.
I've blocked some through cloudflare but some look exactly like he describes: old machines with old versions of some OS and browser scattered around the globe that seem to be scanning my entire website, maybe for AI training purpose ?
The point is, I can't block them at all.
see this thread here : https://www.reddit.com/r/webdev/comments/1azv0fs/is_this_tra...
I pay 10 euro / month for 3 python apps (inluding the one with the bot traffic around 22 Gb per month).
For static websites anything more would be insane
That's approximately one month of transit through a gigabit connection, which indeed could be pretty expensive. Even at IP transit prices it would be something like $300/mo for a 1GB connection via HE but you would need something bigger to handle this traffic. I pay about $2k at bulk for that amount of bandwidth. Any way you cut it, you're getting some sort of bill (or kicked off) for that without some sort of ddos forgiveness.
That said, $104k feels excessive to me for static hosting ($0.57/gb, did I do that right?).
https://gist.github.com/princefishthrower/4517ff44a9f4c5b2d2...
For now it's still a workaround... looks like I'll be migrating to Hetzner soon...
I understand it can be difficult to stop spending exactly at a certain amount to the cent or event to the dollar or, hey, tens of dollars if traffic is really crazy. But hundreds? Thousands? Tens of thousands? Your system should be able to measure that and stop it in time.
In addition to all of that, the real moral of the story is to not use anything with dynamic billing for personal projects, even if there is a free tier. Always ensure that the free tier does not automatically turn into a paid tier.
That said, I've never used Netlify, so I don't know how they present this service at the time of signing up.
GitHub Pages is great for static sites, and included Jekyll build support is a bonus.
There are no surprises! :)
Additionally, they own ( or co-own) their DC, while Netlify and Vercel doesn't. So they can fix any billing issues at their end.
Is this something I need to worry about? Does cloudflare provide a service that is cheap that can prevent something like this for my GitHub pages site?
I assume Docker + something is most popular, but what something? Does terraform work sanely for cheap virtual hosting? Ansible? I don't want to manually install any more stuff than the minimum I can get away with!
I don't use docker for my projects, as I deploy on RHEL like systems which I'm intimately familiar how to configure (and have snippets I mix and match).
I use Terraform to spin up the infra (vm, storage, firewalls, load balancers, DNS, etc) that the cloud services offer. Then when the VM is up I either run Ansible via local-exec Terraform provisioner, or after the fact via separate invocations.
I use Ansible to install, configure and deploy software on Linux VMs exclusively. For client projects, or those that need fast scalability on-demand, I will also use Packer+Ansible to build preconfigured VM images which I can then spin up via Terraform separately.
Hetzner and DigitalOcean providers are first party (partenered with HashiCorp) so you have assurance that what's in the docs works. This is true for most mid/large cloud providers.
(Prepaid is also superior from a cash flow perspective too.)
Is it just that no one would pay for it? I'm well aware of how terrible a customer developers make, but has to be nearly a non-issue with Hetzner in the USA now, with how much free traffic they give you (or any other provider, DO, etc). There's even Cloudflare R2 nowadays.
Your blog probably doesn't actually need sub 100ms serve times.
Caprover (https://caprover.com/)
Dokku (https://github.com/dokku/dokku)
But people still choose Netlify and Vercel for ease of use I think.
Maybe we need something that's just Netlify. The closest I've seen to the "right" UX is Ness:
Though of course it's a tui so some people will get turned off of that (especially people who are willing to spend).
Normally it should just stop serving the bandwidth once the limit hits, just like when you max out your credit card, it just gets declined, they don’t charge you forever just because someone else is abusing it..
This line scares me so much, the fact that we have to rely on an external forum to sort things out. What if my HN post doesn’t gain any attention? Is that it for me?
I understand that someone would pull all their strings in hope for solution but still, companies should be available directly.
I've seen in the thread that bobfunk (netlify CEO) and raiyu (cofounder at digital ocean) say the bill forgiveness is the right strategy. It got me curious on the above question though.
>I thought you could cap(limit) your spending e.g. "if I reach $1000 in costs, abort/pause operations"[0].
You can get a 10gbps connection, per month, for under $4K a month to a datacenter. For full usage for one month, not one day. If buying at the scale of a much larger bandwidth user, the price is much less.
The internet and www are obviously marvelous technologies with many people to praise, webtorrent is nice but in a way a hack replicating things we already had.
We can do better
I know during heavy DDoS attacks they might be too late, but also cache?
Posted only 3 hours ago and 800+ votes but it's suddenly dropped from top 3 (on page 1) to 38th (on page 2).
Is it worth noting that Netlify bought two Y Combinator startups or is that a crazy conspiracy theory?
> On May 19, 2021, Netlify announced the acquisition of FeaturePeek, a Y Combinator and Matrix Partners backed startup that enables developer teams to preview frontend content.
> On November 17, 2021, Netlify acquired Y Combinator and SignalFire-backed OneGraph to allow for the composition of apps with APIs and services using GraphQL.
Bloody scam.
Btw -- I don't really use these. Usually spin up my own VPS
The site was not live.
If anyone figures out what your Netlify subdomain is, it's my understanding that they can DDoS you and there's nothing you can do about it.
It's a design limitation of Netlify that might cost you $100,000 some day.
I can't read it because I block reddit, but I assume it's a DDOS? With a bill that large, it would actually make business sense for them to team up with DDOSers.
1: https://vercel.com/blog/introducing-spend-management-realtim...
- $104k at ($55 / 100 GB) = 189 TB of traffic
- It means the popular ~3.5 MB media file was downloaded ~54M times
- Which sound like a lot, but if you get popular in a country with 1.4B people, it's not (~3% accessed).
What if it happens at AWS Cloudfront? At $.1/GB it sums up to ~$18k. In the light of these, Netlify's offer of ~$5k seems generous.
There is no reason to question whether it was a ddos or not because, allegedly, both parties in this dispute already agree it was a ddos.
Billing amounts should go through quotas requests, so you can explicitly ask to be migrated to the upper level, but by default have an active safety net.
I’m surprised Netlify has no ddos protection.
>Since Netlify charges 55$/100GB for the exceeding bandwidth
Absolutely absurd fees, there is no basis in reality for that. Sounds like a very scummy company.
Which is crucial Netlify is called out for this. Hiding behind the "fine print" is pathetic, not a way to do business.