Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I can't understand their argument that a text file 'isn't a web content'; seems like a bullshit excuse.


This doesn’t sound like bullshit to me. Serving a static text file that is primarily used by applications is not in line with their terms of service.

Cloudflare provides a significant service to the free and open web by subsidizing the hosting costs of static content for websites. They give that away for free under what appears to be reasonable terms.


But it is web content, really. A txt file renders fine in every browser.

Many websites also push text through HTML as part of AJAXy stuff. If they actually enforced this for all sites, their service would no longer be usable.


Movies will render in browsers just fine too, doesn’t mean that cloudflare will allow you to cache them.



Sadly, despite my arguments in the same direction, Cloudflare refuses to host a base64 encoding of the new Flubber.


I can think of few things more static than a .txt file.


You're missing the point. The service cloudflare donates isn't free. That is the whole point of EasyList’s post. There are plenty of comments on this submission doing back of napkin math to find a reasonable monthly cost for hosting that text file. If you want to donate that bandwidth - go for it.

But the comments here about Cloudflare’s ToS read a lot like folks feeling entitled to getting bandwidth for for free. Cloudflare is providing a very specific service for free, and it does a lot of good.

It would be great if Cloudflare decided to donate. But I’d re-evaluate your stance if you’re feeling entitled to their resources.


> You're missing the point.

You're missing the point. If Cloudflare's issue is with bandwidth, then they should say so and leave it at that, not conjure up this pathetic excuse about .txt files somehow not being "web content". Does wrapping that data in <html><body><pre> </pre></body></html> magically fix the bandwidth issues?


Even just plain text file without any tags is a valid HTML 5 file. You don't need any tags. <html> and <body> are implied.

All you'd need is a <pre> tags or <style> somewhere if you'd want it rendered not just as one large paragraph.

I guess you may need a <!DOCTYPE html>


Just making a file valid HTML doesn't make it "web content". This file is being fetched by an application, not being viewed by a user.

I'm not sure this is the most reasonable rule but there are definitely some benificial aspects to it. For example the load on human-viewed content is limited by how often people want to view it. Not how often their browser wants to redownload it.


> Just making a file valid HTML doesn't make it "web content".

By Cloudflare's rationale it does.

> For example the load on human-viewed content is limited by how often people want to view it. Not how often their browser wants to redownload it.

Bandwidth is bandwidth. If 100,000,000 humans want to download a 10KB text/html page v. 100,000,000 programs wanting to download a 10KB text/plain file, both within the same time period, then that's going to be the same degree of load on Cloudflare's end.


Actually you're missing the point. It doesn't seem like many people are condemning Cloudflare for not serving a bandwidth-heavy file for free (FTA: "CloudFlare does not allow non-enterprise users use that much traffic").

Rather what's being condemned is this nonsense customer service characterization of a text file as somehow not "web content". Easylist.txt is a data file that could just as easily be in JSON (and be larger). Furthermore, as it stands easylist.txt actually looks like it's a valid text/html file, as browsers generally don't insist on <html>/<body> tags. So from both directions it seems like the customer service drone has thrown out this nonsense just to short circuit having to do their job.


I like the HN approach of taking a charitable interpretation of their message.

Clearly EasyList lived on their free tier for a long time without interruption. Only when they used excessive bandwidth did ToS enforcement happen. When they reached out for support, the support agent rightly pointed out that this isn't a website file.

Reading the ToS, the support agents message appears to be correct. Text files are fine (as is pretty much any format) as long as it isn't the main focus of the HTTP server Cloudflare is fronting. Robots.txt would be fine, turning the list into XML or HTML would not be fine. In this case, the text file isn't there to support the web content of Easy List - it's distributing a text file to applications.

The agent could have added additional context but their message is valid.


You're still conflating "free tier" with "not a web file". According to the article, they are separate issues and Cloudflare wouldn't be willing to host easylist.txt even on a paid plan.

Meanwhile -

1. easylist.txt is used by every single web page I visit. So the overall purpose argument fails.

2. Web pages commonly use non-directly-renderable data files in formats like JSON or XML, so the file purpose argument fails.

3. Text files are and continue to be one of the major formats displayed by browsers. So the file type argument fails.

4. The size of the file is in line with other files cached by Cloudflare. So that argument fails.

If the Cloudflare support rep said "we just don't feel like doing business with you", that would be a different thing. But instead they're throwing out some arbitrarily-framed unfalsifiable reason as if it's a logical justification. And no, customer service drones and corporate policies don't deserve a fundamental benefit of the doubt, per contra proferentem (ambiguous terms should be construed against the drafter). It's impossible to know what they actually mean here besides "we don't like it", and that is the problem.


But it's not JSON or HTML. And it's not meant for browsers. It's clearly a dataset as a text file and not meant as "web(page) content". What's nonsense about that when it's completely accurate?


How is it any different from a json file used by a web app (or mobile app, or desktop app)?

And there is no reason a web app couldn't read data from a txt file instead of a json file.


It's not for displaying a webpage but to power a separate application. Just because you can serve any kind of file over HTTP doesn't mean it's for serving a website. There's a reason Cloudflare doesn't allow large video files either - even though that probably counts even more as "web content".

This is a very straightforward interpretation of the terms and it's strange to see such pushback based on a pedantic technicality when it's clear what the file is being used for.

In fact, if this was the opposite situation and some automated rule was involved in isolating this file, I expect the same people would then want human intervention to clear up the difference based on the context.


> There's a reason Cloudflare doesn't allow large video files either - even though that probably counts even more as "web content".

And that's just as nonsensical. Bytes are bytes; the rationale should be based on bandwidth, not on arbitrary micromanagement of the format of the data consuming that bandwidth. If I encode that video in a giant self-contained blob of JavaScript that feeds the pixels into a canvas or something similarly ridiculous, does that magically fix the bandwidth issues?


No. It is about excessive resources/bandwidth usage. The customer service response reply isn't great but the context itself is clear because this file is clearly not for displaying any part of the web presence of the easylist site.

Again this is that "pedantic technicality" - why such a fuss when the actual issue is straightforward, and also clearly understood and reiterated by the easylist team themselves in the post?


> It is about excessive resources/bandwidth usage.

Then the policy would focus on that rather than micromanage the format of the data using those resources/bandwidth. Again: bytes are bytes.

> why such a fuss

Because a policy as nonsensical as "no non-HTML files allowed" artificially limits the usefulness of CloudFlare for precisely zero legitimate reason. I ask again: does wrapping a video in a blob of JavaScript fix the bandwidth issues associated with hosting videos? If I have a 10MB MP3 downloaded 1,000 times v. a 1MB HTML/CSS/JS static site downloaded 10,000 times, what difference does it make?


The difference is in the amount of cache you need. In one case you save 10GB per 1MB of cache, in the other just 1GB per 1MB and the big file is going to evict many small files (even if the user only listens to the first 10s). It's no huge difference for a single user/site, but across all users this quickly means needing a multiple of the current cache; which doesn't come for free.

Also, CF have a product to sell. The free tier is just the demo version: I think at the end of the day the policy is about not everyone in HN using CF for their low-cost DIY video and/or music streaming or download platform.

And I can totally see them reverse the decision and sponsor that project (it's probably something a support engineer has no power to decide).


> The difference is in the amount of cache you need.

Okay, now run the same thought experiment with 10,000 downloads of a 1MB MP3 v. 10,000 downloads of a 1MB HTML/CSS/JS site. What difference then?


So have a max file size.

Also, the same ToS applies if you use the paid product. Unless you buy an additional addon for non-web traffic.


The issue is about bandwidth and resources. The policy is generic to provide reasonable allowances but stop usage that's clearly outside the limits. That's how "unlimited but with oversight" plans work.


So the solution is to HTML the list and link it from the webpage?

> why such a fuss

Mockery isn't a fuss. And why? Because we can all picture having to deal with just this sort of idiot and their pet rule.


> It's not for displaying a webpage

The majority of of legitimate traffic to these txt files are by browsers(extensions) for the express purpose of displaying websites to a users specifications(without ads in this case).

A reasonably low estimate is that 20%-30% of global internet users are behind some kind of adblocker, almost all of which are default subscribed to easylists. So this txt file is potentially responsible for the way a BILLION+ internet users see and interact with near every single website.

Cloudflares claim that this isn't web content is full on reality warping. It only makes any kind of sense when masked under layers of abstractions and lawyer speak.

---

None this should even matter though, someone seeing the big picture at CF should have done the napkin math and realized that the easylist bandwidth pays for itself.

Ignoring the soft cushion of the huge amount of globally distributed caching of these files, if easylist suddenly stopped working for a week then global bandwidth usage could see a spike. A pretty little chunk of which CF may be on the hook to absorb at no cost.


But the support email didn't say it was a violation of the ToS because it is primarily used by non webpage applications (the ToS does say APIs may be allowed, but doesn't have specific details on when afaict), it says it is a violation because it is a txt file, and there is a txt couldn't be a part of a website. And in fact robots.txt and security.txt are standard and common txt files serves as part of websites. In the case if robots.txt it also is primarily consumed by web crawlers, not for actually rendering web pages. Does that mean robots.txt violates the ToS too?


> And it's not meant for browsers.

It literally is - specifically, for extensions thereof.


oh it's for browsers all right


A text file is a website file and that is what annoyed me in that support reply. The web is not just html, css and JS.

But in order to make the support eng do his job I need to add a .html extension to it?? Would that be considered a website file?


Interestingly, one could host this on a WWW frontend for Git. Then you'd only need to download (say a daily) diff. Why download the entire list when you can match checksum?


So if the text was embedded in a static webpage that the client had to parse locally, that'd be okay?



Does not inspire confidence in Cloudflare, that’s for sure.


I think CloudFlare pretty explicitly do not want people to be confident that they can serve 2 petabytes a month of API data on the free tier


That’s part of the problem though, isn’t it?

Because they certainly want to serve some huge amount of traffic for free while they attempt to become the next abusive monopoly platform.

They’re trying to have their cake and eat it too.


Maybe if they created a web page for easylist and then hosted that + the lists directly on CF pages, maybe that would considered as web content?


It probably means that their DDoS protection needs to use JS to get some trust signals


Web content is for consumption by people.


Just tack on a .html file extension and add a <html> tag at top and bottom…problem solved


So does this mean any site with a security.txt file is violating cloudflares ToS?


How about robots.txt, since security.txt is looked at by humans, but robots.txt is almost exclusively looked at by non web browser clients.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: