In the interests of transparent disclosure on such a positive blog post, It might be worth calling out that all the links on the page are all linked to the Bunny Affiliate Program. [1]
Sorry, I realize I overdid it on the affiliate links so I've called out the link and removed some others. Just thought it was nice that they had an affiliate program. Nothing shady intended!
A bit more than discredit, this is almost always against affiliate terms so you don't get payout and often actually illegal for not disclosing compensation.
Thanks for the update. The usage of an affiliate link feels quite dishonest here because the hyperlink says bunny.net but then opens up bunny.net/?ref=xxxx
Yeah IANAL, but this sort of endorsement with undisclosed remuneration would probably run afoul of FTC guidelines, which is why you see disclaimers like "As an Amazon Associate I earn from qualifying purchases" everywhere. The author seems to live in the UK, but a cursory search suggests there's something similar there as well.
I guess it’s reference to the fact that the blog writer lives in London, so the US meaning of FTC doesn’t matter when a someone in Europe promotes a US service
Now I'm curious, how is it called in the UK? I tend to use "FTC" as the general term when I want to refer to a trade regulatory body in a country, as in "UK's FTC equivalent". I wasn't aware it is so obscure?
Maybe it technically under some regulation runs afoul. The FTC would never bother themselves with this and I don’t believe it’s in the spirit of the intent.
I don't like free offerings, because what if they decide to charge someday? What if someone decides "free is not feasible, we start charging $20 per instance now".
I'd rather have a low fee now, a change from $2 to $3 is more likely and that's fine for me. But from free to not free is risky for me.
I also like smaller, independent-ish ompanies that actually care about developers. That's why I use bunny.net, transistor.fm, Plausible Analytics.
>I don't like free offerings, because what if they decide to charge someday? What if someone decides "free is not feasible, we start charging $20 per instance now".
You can just move to another provider at that point. At least when it comes to CDN and DNS there’s literally no vendor lock-in.
You can grab your dns records export them to csv and import somewhere else easily and a CDN is just a file server so you can just give your files to someone else easily.
> At least when it comes to CDN and DNS there’s literally no vendor lock-in.
ehhhh, really depends on which CDN features you're using, and at what volume. Using ESI? VCL? Signed URLs or auth? Any other custom functionality? Are you depending on your provider's bot management features which are "CONTACT FOR PRICE" with other providers? Does your CDN provider have a special egress deal with your cloud provider?
It's possible to picture this being easy in the same way that being multi-cloud or multi-region is easy.
>Using ESI? VCL? Signed URLs or auth? Any other custom functionality? Are you depending on your provider's bot management features which are "CONTACT FOR PRICE" with other providers?
I have no idea what two of those acronyms mean. None of this is part of what a CDN offers.
Yes if you use DDoS protection, or cloudfare’s ZeroTrust or embrace $X proprietary features then what I said no longer applies.
ESI = Edge Side Includes think Server Side Includes on a CDN technology as supported by Akamai and used by sites like Ikea to deliver a fast maintainable experience
VCL = Varnish Configuration Language i.e. how you configure your Fastly services
If you're just using a CDN as a proxy then there's no lock in but plenty of sites are using CDNs for much more than that
Predictability matters. The whole point of paying someone else to handle a problem for you is that you don't have to worry about it. If you go all in on a provider and then suddenly find out that you've been switched to a paid plan in the middle of your vacation, that's not a place anyone wants to be. Saying there's no lock-in is nice, but that overlooks the fact that there most definitely is friction. What if there's no mass export? No mass import? Or you need to reset 2FA? Or etc, there's a thousand things that can shoot you in the foot, especially if you have a lot of services you need to migrate.
It's impossible to generalize over free vs paid in regard to predictability. E.g. a provider I paid for simply disappeared once when I was quite busy while my old free gmail still works. Realistically CF's free tier is more predictable than many paid options on market.
My threat model here focuses on what the provider gets out of the free tier. Cloudflare gets a broad view into activity on the internet for building the models they use for their paid offerings. Free Gmail puts people on a path in to Google's ecosystem with basically zero marginal cost.
>What if there's no mass export? No mass import? Or you need to reset 2FA?
1. For DNS we have standardized AXFR requests which the DNS provider needs to support as they are part of the DNS standard. There is not an option of not having that unless you have a really shitty provider that you should change anyway.
2. Same for Mass Import because again DNS already defines these things at the protocol level.
And resetting 2FA or whatever is just the cost of using any service
Personally I have used CF for ~10 years so I have saved $240 and I simultaneously use GitHub Pages and CF Pages for CDN because again I just need to give them a bunch of static files. Adding a third CDN provider would literally be a single command at the end of my build pipeline.
For personal projects, I'd rather just pay $2/month and not think about it than get hit with a random bill and scramble to migrate before the next month's bill. Bunny is perfect for this use case where you have a handful of projects that aren't all actively maintained. It just works without hand-holding, and since you're paying for the service, there's no rugpull looming.
The biggest bill I've gotten from Bunny was like $10 when my app (https://atlasof.space) briefly went viral and got 100k+ views in a month. Bunny CDN is so reasonably priced and the realistic visitor ceiling for my projects is low enough that it's still negligible. The free->paid cliff is typically a lot steeper than this in my experience.
I didn't downvote it, but I don't think migrating away from Cloudflare workers, R2, D1, etc., isn't going to be that easy. Basically, the build these things from the ground up to work optimally for their infra - even the mental model that you have to use is different. If you only narrowly use one part of it, maybe.
I used to handwave cloud portability. Turns out when you're shipping things and need extra services and you have deadlines, you build against the platform. I think the GP comment was probably expressing wariness of the free cloudflare tier that entices you to build against their APIs and their product shape in a way that inevitably locks you in. Sure, you could migrate, but that's expensive.
Yeah, good point. For a little hobbyist site of no importance, I'm not too worried about vendor lock-in, but that calculus changes as it gets more important.
That's the catch though. By time you're scaling, there's tension between roadway and revenue and headcount and it's the worst worst possible time to need to reachitect.
> I don't like free offerings, because what if they decide to charge someday? What if someone decides "free is not feasible, we start charging $20 per instance now".
> I'd rather have a low fee now, a change from $2 to $3 is more likely and that's fine for me. But from free to not free is risky for me.
With free offerings, you’re always helping the supplier in some way. Then you become the product. Which makes it difficult to understand the value exchange; it’s much easier to do so when you’re just paying a fair sum of money.
Logically, the only thing CloudFlare would do is lower or eliminate the free usage tier. For instance, if X million operations are currently free, they make X/2 operations free. I don't think they would do that, but if they did, it couldn't possibly be existential to any viable company.
Practically, any metered supplier can put you out of business. It usually doesn't happen because destruction is mutually assured.
+1 for using smaller, more independent companies in any case!
Except for those cases where CF sales have threatened to kick businesses off the platform unless they join an five or six figure enterprise plan because they've passed some unpublished threshold.
Yes, but combine that with a small-ish provider, this will also hurt them (e.g. see Google Maps price hike). Either way, if I use a service 20x a month and it costs $15, I can handle a hike to $20, that's fine, somewhat predictable. They also relied on those customers, they can't just get rid of all $15 customers.
But if a free offering suddenly says "We are getting rid of free, only starting $899 a month baseline, because we noticed our free users aren't converting and we only want to support enterprise from now on". Well, then I have to move everything.
Still a big price hike can come, but +20% monthly is easier to stomach than if I can't be sure what will happen to the free offering.
While this will probably happen over time, free* offerings are an anomaly you can‘t build a business on. But even 1€/months minimum is probably too low to cover costs.
Cloudflare is not a CDN anymore but the workers edge platform, if you can move to bunny.net, you were not really using cloudflare. I don't understand how none of the alternatives really embrace WinterTC
If i see something horrific like:
import * as BunnySDK from "@bunny.net/edgescript-sdk"
BunnySDK.net.http.serve(async (request: Request) =>
Thats a proprietary lock-in worse than what it tries to replace!
AFAIC, WinterTC doesn't specify how to start an HTTP server. Their minimum common API requires, among other things, that the Request and Response interfaces from the fetch specification are present. Unfortunately, it does not specify any sort of serve function.
Because an edge runtime should not directly start servers in the first place. You provide handlers that fulfil requests from the system. Edge runtimes that pretend to start the servers in the edge worker context are flawed and ugly from the very start. APIs like that leak implementation details and increase vendor lock-in for no added benefit.
The platform yes, but the runtime and the APIs are apache 2.0 licensed and uses web standards wherever possible. Thats way more open than most alternatives i am aware of.
Unless the project is controlled by democratic committee where cloudflare doesn't have a majority of seats it's not open source in any meaningful sense of the word, maybe we should stop acting like corporate sourced software is anything but an attempt to get free labor from the commons.
> maybe we should stop acting like corporate sourced software is anything but an attempt to get free labor from the commons
The point of this discussion is that you can self-host, and you have a good chance of migrating the code away entirely. That's a big benefit that isn't "an attempt to get free labor". For that use, not only does it not matter if it's meaningfully open source, it doesn't matter if it's open source at all.
I'm currently running a SaaS on Cloudflare Workers + Pages. The developer experience is genuinely good, deploying serverless functions and static sites from the same repo has been seamless.
But I hit a real issue recently: CDN edge caching served stale HTML after a deploy, and the service worker cached the bad response. Took a CDN purge from the dashboard to fix. The debugging experience when things go wrong at the edge is painful, you're always guessing which cache layer is the problem.
That being said, the free tier is hard to beat for getting started. Workers, Pages, KV, R2 — you can run a full production app at near-zero cost until you hit scale. Not sure if Bunny offers that.
Bunny has a lot of that (they have a sqlite compatible API, edge functions, but the call it something different, etc.)
That being said, I had enough issues with Bunny and CF debugging across regions that I made this free tool to do both remote HTTP and TCP traceroutes to keep my sanity: https://dnsisbeautiful.com/global-http-availability
This is why we purge cache from CI after a deploy[0], and other places when our users publish a story, etc.
That said, the edge-caching being how it is, it's possible to run into some race-conditions where the cache has been purged but not propagated to the edge network, and if visited too soon, the stale version might end up back into the cache.
Bunny doesn’t have a free tier, but their greatest asset is that it has prepaid billing: there’s zero risk of running up a surprise six figure bill just because of being attacked, making a mistake with a deploy, or other sudden sources of resource usage. I’d rather my site go down than to be on the hook for hundreds of thousands, which many projects have no hope of generating from sudden spikes in traffic of any source.
There’s a cost limit to how much high availability is worth on any project but vendors like CloudFlare don’t respect that.
And this is why I am immediately shifting to bunny from cloudflare at this point.
A week ago I (a hobbyist running a small side project for a dollar or two a month in normal usage, so my account is marked as "individual") got hit with a ~$17,000 bill from Google cloud because some combination of key got leaked or my homelab got compromised, and the attacker consumed tens of thousands in gemini usage in only a few hours.
Google denied a rate adjustment, and haven't reached back out to me for a good few days now. My credit card denied the charge because it was over my credit limit by a good few thousand dollars and they suspected fraud, but now I am terrified of being taken to collections and ruining my prospects of renting an apartment due to my credit score/history being ruined, or them just taking me to court.
I am never going to use "use now pay later" services, especially with cloud portals where it's so hard to put in a actual cap, and the cloud provider not having any sane rate limits. I am fine paying if it was negligence or a mistake on my part as a very expensive lesson in security, but 17k is brutal.
The fact they don't have an easy way to hard cap usage (especially for an individual account) and have ineffective rate limits (how on earth is an account that pays a few dollars a month able to run up tens of thousands in just a few hours), makes me never want to use their (or any use now pay later with no easy caps or rate limits) service ever again. Or even a phone number to call.
If you're in the USA contact your state AG + Senator and present your case. Mention that Google is abusing small owners due to their ineptitude in security practices, construct the argument that makes it appear Google is squeezing small users like a mob boss/cartel.
Also before doing this save anything important that Google owns (gmail, youtube videos, anything in storage). The leaders at Google are vengeful enough to completely lock you out for challenging them.
Just this month Google shipped what I understand as hard limits in AI Studio/Gemini/whatever it's called this week. I had existing billing alerts (best you could do before IIUC), but set these new hard limits up immediately. Feels good!
DB seems like the main shortcoming in the stack for them. I don't want to deal with the limitations of D1. Seems like a serverless postgres setup a la Neon/Supabase would be a slam dunk.
Yeah, but then I'm heavily coupled to their proprietary infrastructure. Maybe a good thing for them, but a nonstarter for thinking about building a real business on, for me and many others I'd presume.
I've used DO's quite a bit. I'm a big fan... however I find the database latency pretty hard to deal with. In the past 6 months I've seen upwards of 30s for little side projects running tiny (100's of kb) databases. Sometimes it's lightning fast... sometimes it's a disaster.
As a consequence I've had to build quite defensively - adopting a PWA approach - heavy caching and background sync. My hope is that latency improves over time because the platform is nice to work with.
I've been on Bunny for a while now, personally. It's pretty good, and I managed to dodge the last major Cloudflare outage which was nice.
But, a few things could be more straightforward. Cloudflare makes the whole static site and DNS zone piece feel far more seamless. With Bunny you will still need to stitch records between different parts of their dashboard.
We at ottex.ai use bunny.net to deploy globally an openrouter like speach-to-text API (5 continents, 26 locations, idle cost 3$).
Highly recommend their Edge Containers product, super simple and has nice primitives to deploy globally for a low latency workloads.
We connect all containers to one redis pubsub server to push important events like user billing overages, top-ups etc. Super simple, very fast, one config to manage all locations.
I switched a year ago and have been absolutely loving them. Not just because we can support a EU based CDN, but their Magic Containers are amazing. I can have global instantly scalable API's that cost me barely $1 a month until used.
Yes, Magic Containers is excellent. I don't know if it scales up to huge loads well -- that might be expensive -- but it scales down really well. For a very lightly loaded hobby project it's almost free.
A few people here are complaining about the lack of a free tier, but Magic Containers can cover a lot of the same ground as Cloudflare's Durable Objects, which IIRC cost a minimum of $5/month.
We use them for a couple of things - very happy. I think probably the best reason (other than service robustness): support. CloudFlare is great until it's not, and you aren't paying $$$ for enterprise support. This is probably one of the most underrated reasons to switch to any lesser known (but still rock solid) infra services. UpCloud too - great support!
This has to be an ad right? Affiliate link in the blog, non sensical reasoning for switching (single point of failure to... another single point of failure) etc
It's not, but I can see how it came across like that. I just wrote up my experience moving over, and I thought it was nice they had an affiliate link. I've cleaned it up and called out the affiliate link. Nothing shady intended.
> (single point of failure to... another single point of failure)
I feel like you missed what the author meant with that phrase. The author wasn't talking about for their website, but the internet as a whole.
> I can’t help but feel that the idea of centralizing the internet into a single US corporation feels off.
The point of picking Bunny.net is that it's alternative to this single entity that's got so much of the internet running through it, and is less susceptible to the BS in the US.
Unfortunately it doesn't offer free hosting for hobbyists. Even for superficial traffic you'll have pay 1 euro a month (plus VAT).
Not many DNS management providers (that I'm aware of, please correct me) support CNAME flattening. That is having your A record point to a CNAME.
Every time I purge the pull zone cache, I do it twice, cause once from my CI isn't enough. My CI does individual page cache invalidation during deployment, but there needs to be some kind of delay (with no feedback) when assets are distributed across.
Other commenters laughing at you for the price... It's not about the price it's about the barrier. Even if I love a service, I won't get very many people to try it if they need to enter a credit card.
Almost all technological choices I made as a teen were driven by "what hosting can I get for free, as my parents sure as hell won't put down their payment information for that". Back then that usually meant PHP and a max. 50MB MySQL.
I have been the service provider who had to paywall just to stop the spammers and you're right. But it's also true that kids will be collateral damage (or anyone without a credit card).
In my case, and it was the 90s, I took the time to setup a way to pay by calling a premium (1-900) for $1.49 number so the barrier to entry even for kids was still reasonable.
Maybe in modern day the equivalent is adding Google pay and Apple pay then you cover some kids at least (gift cards and such).
Quite the hassle for the provider, and it will turn away any person who cares about privacy. There's no way to win anymore.
If entering a credit card is too much you probably aren't a potential customer. Part of keeping a service low cost is keeping services efficient. Having a large pool of people using it for free who will never become customers will force the cost higher for those who do pay.
Good riddance to the "free" model. It's never actually free. You either pay with your data, or have to consume ads, or you're forcing other customers to pay for your free usage.
I get that credit cards are a barrier of entry but I’m more willing to give providers a break now that AI agents make it much easier to abuse free tiers. It’s also harder for smaller companies to offer free tiers. If we want a more diverse set of service providers we as customers need to be willing to accept some trade-offs.
Feel free to use local services then, not every company has to support the entire world. Some are fine with a small slice. Expecting otherwise isn't sustainable for the sub trillion dollar non-monopolists companies, not without massive public support from the government at least.
Why would you be a useful target market for a business running these services then? Seriously, if you can't pay anything at all, of what value is catering product offerings to you? It is thus irrelevant that you aren't happy with not being offered a free service.
That's interesting, we moved to Cloudflare R2 for our CDN solution, and we got reports from some european government institutions that our assets weren't loading, likely for similar reasons as you mention, so we rolled back whilst looking for options.
The solution was to move to Bunny, and that worked for everyone.
I do have a question, is it even possible to have a CDN set up where they don't MITM and strip your TLS and re-encrypt or are we just picking which jurisdiction gets to inspect your traffic?
edit: I'm thinking of the use case where the CDN as a proxy for APIs and uncachable content as well, where it used as a reverse proxy for transit/ddos protection.
Much of the point of a CDN is that they can cache responses, and likely also make other changes. I don't see how that could be done without seeing what's inside the request.
Probably not. That’d look a lot like a bunch of load balancers around the world hitting your own backend. There’s generally not a way to cache web data without decrypting it inside the cache.
Why would you want a content delivery network for uncachable content? Literally the point of CDN is to cache content and deliver it.
Granted cloudflare also does DDOS protection, and that makes sense for an API. For that you could do some DDOS protection without stripping TLS, but it can only protect against volumetric attacks like syn/ack floods and not against attacks that are establishing full TCP connections and overwhelming the app server. (rate limiting incoming connections can go a long way, but depending on details, it might still be enough to overwhelm the serving resources, your use case is up to you to understand).
This isn't an either/or, you can use features from both and you have to compare carefully. I used to do a lot of image manipulation and had pluggable implementations for imgix, cloudflare images, and bunny. Bunny is by far the cheapest and that ended up being the mature solution (plus some custom processing). But for other caching, R2, workers, etc CF is great.
> It’s a single point of failure for the internet. Every Cloudflare outage ends up in the news.
I hear this argument all the time, but I think it's more complicated.
Firstly, if people used more diverse / smaller services the distribution of outages would change.
While there will likely to be more frequent "smaller" asynchronous outages, many platforms can still break even when only one of their dependencies break. So, you might likely to face even more frequent outages, although not synchronous.
Secondly, we are not sure if these smaller services are on par with the reliability of Cloudflare and other big players.
Thirdly, not all Cloudflare infrastructure is fully centralized. There is definitely some degree of distribution and independence in/between different Cloudflare services. Some Cloudflare outages can still be non global (limited by region or customers that use certain feature set, etc).
I had to move to Bunny.net after Cloudflare disabled my homepage following a malicious report, despite me being a paying customer for several years. I also never received a response to my appeal.
I’ve now been with Bunny.net for over a year and have been very happy with the service.
Seemingly lacks IPv6 though? Cloudflare requires you to pay them and make an explicit effort to disable IPv6. Sad to see it not enabled by default on Bunny.
I’ve mainly been using cloudflare for the very excellent (and free) premium DNS offering.
Easy upload of bind test files
Flattened CNAME to support naked domains
Robust free role based permissions to add other ppl
Anyone have suggestions for moving a stack of domains, many being little community and hobby projects away from cloudflare for a small overall price. Agency pricing like migadu offers for email on custom domains is what I have in mind.
I've found every other offering to be lacking. Some examples: Cloudflare is alright but has settings footguns if you're not used to Their Way of Doing It™ (e.g., before using DNSControl, I had to manually flip switches to turn off proxying every time I updated my zones). deSEC is free and okay, but sometimes quite slow to propagate and its UI+API are unwieldy. DNS Made Easy is often pushed on social media, but it's ridiculously pricey for what you get if you don't need a SLA. DNSimple seemed nice but IIRC I couldn't get a different API token per zone (?).
I'm currently relying mainly on LuaDNS. For me, it functions as a "dumb" DNS host (i.e., not using their Lua configuration-as-code system). Their API is oddly designed, but it's been passable since a recent-ish update, which has allowed me to safely port my zone files to DNSControl.
I used them in the past (many years ago) and was very surprised when my DNS was affected by a cloudflare outage. Turns out (back then) they relied on the cf network for DoS protection against their resolvers[1]. I was surprised to learn that and honestly thought that if I already take a dependency on cloudflare I might as well have them host my zones directly for free.
At one point we were using Cloudflare's DNS Firewall product for our entire edge network. We have since moved half of our edge network to our own infrastructure and are currently in the process of expanding our edge network further, so at this point an outage at Cloudflare should be at least partially mitigated for our customers due to our separate edge network, and eventually it should be completely independent.
I make a point of using a dedicated service provider for each distinct service. YMMV but I'm happy with DNSMadeEasy (DNS), IWantMyName (registrar) and Fastmail (email).
I use bunny as an image serving and video streaming across multiple projects and it is excellent, never had an issue with it.
They recently upgraded the player for streaming media, we use in one instance for tutorial videos, that apparently adds some missing accessibility features. All we needed to do was adjust the embed URL structure we were using and all set.
I would probably switch off Cloudflare if I didn't also make use of their Cloudflare Tunnels service for sharing some stuff in a way that doesn't require me to punch a hole in my home network. I realize Pangolin and such also exist, but it's nice to get it for free
I tried to move my sites to Bunny Edge Scripting and found the experience mostly poor, unfortunately. A lot of failures without error logs, and purging the pull zone cache only seemed to work sometimes. A shame because I like their offering otherwise.
IMHO main benefit of bunny.net is that as an Slovenian company they adhere to the GDPR, no GAG orders, and offer an Data Processing Agreement (DPA) when Personally Identifiable Information (PII) is involved.
While uncommon, bunny.net also provides a way to block users from the EU from accessing your content altogether by using our traffic manager tools if you do not wish to serve users from the European Union. Which I assume can be reversed, only serving to users from the EU.
your enthusiasm for the service might be justified but having every mention of its name be a hyperlink with referral code feels offputting like i'm about to enter a multi-level marketing scheme
The only thing stopping everyone is the convenience. Someone already does this? Cool, here’s my credit card. For the Non-US folks, you’re just as capable. Good to see a company like Bunny realize it. It’s just a bunch of computers and some networking, what could go wrong? /s (but seriously, you can do this…)
R2 is pretty darn hard to beat. No egress, and only like $.57 per million read operations. If you're running a video streaming use case (and not using terabytes and caching or abusing your bandwidth) I found no one else compares.
Does anyone have thoughts or disagree on this in terms of pricing and cost effectiveness?
The extremists want you to believe that, but the EU is an economic alliance, not a federal republic. Being pro-EU is usually anti-isolationist, but it isn't always anti-nationalist.
> the EU is an economic alliance, not a federal republic
The line between those two things in the case of the EU is awful blurry.
The Espace Léopold issues laws that are binding on member nations, wields significant power over trade, fiscal policy, and mandates open borders between member nations. These are hardly the features of a purely economic treaty organisation.
>One of my biggest concerns though is around how easily I could become heavily dependent on this one single company that then can decide to cut me off [...]
How does switching to Bunny make a difference?
It would be super nice to have a setup that uses multiple CDNs w/ automatic failover.
It would be super nice to have a setup that uses multiple CDNs w/ automatic failover.
Doable, but that removes all the free tiers of all the CDN's. AFAIK they all require an enterprise account to keep using ones own DNS and their own GSLB DNS failover. There are probably a few exceptions and one could maybe make something of that but I don't know which ones are the exceptions.
I don't know. I started to go down that path but all the CDN's that suggested some aspect of try before buying were in places outside of the US and had non US payment processors so I moved on to other projects. I doubt that there are many. I suspect Cloudflare only do it as a result of dual-use and that dual-use may be backed by tax dollars as there is no way a publicly traded company would give away massive network resources at a loss but that is my own conspiracy theory. i.e. an extension to Googles birds of a feather project. Capture most web traffic, most DNS traffic and learn who talks to who and why to form a risk map.
considering the bunny.net site crashes, and fails to load with timeouts, good luck with that. Unfortunately having a monopoly in a CDN is kind of a benefit.
Am I the only one who thinks their reason for why theyre leaving Cloudflare didn't sound particularly sound... This blog post reads like something a Bunny.net employee would write
We had severe issues with Bunny and recently migrated off it.
Some of our users were unable to reach our CDN altogether. They couldn't load any assets at all. Bunny's customer service was far too slow to respond and mostly gave unhelpful answers. They couldn't even identify the issue.
In less than 45 minutes, I moved our CDN entirely from Bunny to Cloudflare Workers. Now our CDN just actually works, I don't have to debug our CDN for the Bunny customer service team.
Also had a severe issue with Bunny, serving videos. They had a cache poisoning issue where they served a few frames from pornographic videos right in the middle of our educational videos. They did not have the multi-tenancy thing fully figured out, and it became a nightmare scenario. After that, we moved to a provider that explicitly did not allow porn.
[1] https://bunny.net/affiliate/
In a time where more people usually beg for forgiveness instead of asking for permission, it already has
But that changes things
Not yet. Working on it, though.
An acronym as common as GDPR.
https://www.ftc.gov/business-guidance/resources/disclosures-...
I don't like free offerings, because what if they decide to charge someday? What if someone decides "free is not feasible, we start charging $20 per instance now".
I'd rather have a low fee now, a change from $2 to $3 is more likely and that's fine for me. But from free to not free is risky for me.
I also like smaller, independent-ish ompanies that actually care about developers. That's why I use bunny.net, transistor.fm, Plausible Analytics.
You can just move to another provider at that point. At least when it comes to CDN and DNS there’s literally no vendor lock-in.
You can grab your dns records export them to csv and import somewhere else easily and a CDN is just a file server so you can just give your files to someone else easily.
ehhhh, really depends on which CDN features you're using, and at what volume. Using ESI? VCL? Signed URLs or auth? Any other custom functionality? Are you depending on your provider's bot management features which are "CONTACT FOR PRICE" with other providers? Does your CDN provider have a special egress deal with your cloud provider?
It's possible to picture this being easy in the same way that being multi-cloud or multi-region is easy.
I have no idea what two of those acronyms mean. None of this is part of what a CDN offers.
Yes if you use DDoS protection, or cloudfare’s ZeroTrust or embrace $X proprietary features then what I said no longer applies.
I strictly said DNS and CDN.
VCL = Varnish Configuration Language i.e. how you configure your Fastly services
If you're just using a CDN as a proxy then there's no lock in but plenty of sites are using CDNs for much more than that
1. For DNS we have standardized AXFR requests which the DNS provider needs to support as they are part of the DNS standard. There is not an option of not having that unless you have a really shitty provider that you should change anyway.
2. Same for Mass Import because again DNS already defines these things at the protocol level.
And resetting 2FA or whatever is just the cost of using any service
Personally I have used CF for ~10 years so I have saved $240 and I simultaneously use GitHub Pages and CF Pages for CDN because again I just need to give them a bunch of static files. Adding a third CDN provider would literally be a single command at the end of my build pipeline.
And how is that related to me? My comment said (and the parent I replied to) mentioned DNS and CDN.
Now we add compute services, data storage, whatever D1 is and the other comment mentioned auth/authz
Are people not aware what CDN and DNS are?
With free offerings, you’re always helping the supplier in some way. Then you become the product. Which makes it difficult to understand the value exchange; it’s much easier to do so when you’re just paying a fair sum of money.
Practically, any metered supplier can put you out of business. It usually doesn't happen because destruction is mutually assured.
+1 for using smaller, more independent companies in any case!
This logic doesn't hold much water, however. Abrupt changes in pricing or other conditions happen with paid tiers as well
But if a free offering suddenly says "We are getting rid of free, only starting $899 a month baseline, because we noticed our free users aren't converting and we only want to support enterprise from now on". Well, then I have to move everything.
Still a big price hike can come, but +20% monthly is easier to stomach than if I can't be sure what will happen to the free offering.
If i see something horrific like:
import * as BunnySDK from "@bunny.net/edgescript-sdk" BunnySDK.net.http.serve(async (request: Request) =>
Thats a proprietary lock-in worse than what it tries to replace!
> You provide handlers that fulfil requests from the system.
As I said previously, though I wish they were, such handlers are not part of WinterTC.
And then again, how those handlers are registered is also not part of WinterTC, which I also wish it were.
> APIs like that leak implementation details
How?
Almost all runtimes, like Bunny Edge Scripting, Cloudflare Workers, Deno, Bun, etc. use the same basic signature for the handler:
(request: Request) => Promise<Response>
Only how you register said handler is, unfortunately, different for each runtime.
The point of this discussion is that you can self-host, and you have a good chance of migrating the code away entirely. That's a big benefit that isn't "an attempt to get free labor". For that use, not only does it not matter if it's meaningfully open source, it doesn't matter if it's open source at all.
But I hit a real issue recently: CDN edge caching served stale HTML after a deploy, and the service worker cached the bad response. Took a CDN purge from the dashboard to fix. The debugging experience when things go wrong at the edge is painful, you're always guessing which cache layer is the problem.
That being said, the free tier is hard to beat for getting started. Workers, Pages, KV, R2 — you can run a full production app at near-zero cost until you hit scale. Not sure if Bunny offers that.
Some of you may be skeptical about this but it allows for much easier management when working on multiple SaaS/hobby projects/personal tools.
That being said, I had enough issues with Bunny and CF debugging across regions that I made this free tool to do both remote HTTP and TCP traceroutes to keep my sanity: https://dnsisbeautiful.com/global-http-availability
That said, the edge-caching being how it is, it's possible to run into some race-conditions where the cache has been purged but not propagated to the edge network, and if visited too soon, the stale version might end up back into the cache.
[0]:
There’s a cost limit to how much high availability is worth on any project but vendors like CloudFlare don’t respect that.
A week ago I (a hobbyist running a small side project for a dollar or two a month in normal usage, so my account is marked as "individual") got hit with a ~$17,000 bill from Google cloud because some combination of key got leaked or my homelab got compromised, and the attacker consumed tens of thousands in gemini usage in only a few hours.
Google denied a rate adjustment, and haven't reached back out to me for a good few days now. My credit card denied the charge because it was over my credit limit by a good few thousand dollars and they suspected fraud, but now I am terrified of being taken to collections and ruining my prospects of renting an apartment due to my credit score/history being ruined, or them just taking me to court.
I am never going to use "use now pay later" services, especially with cloud portals where it's so hard to put in a actual cap, and the cloud provider not having any sane rate limits. I am fine paying if it was negligence or a mistake on my part as a very expensive lesson in security, but 17k is brutal.
The fact they don't have an easy way to hard cap usage (especially for an individual account) and have ineffective rate limits (how on earth is an account that pays a few dollars a month able to run up tens of thousands in just a few hours), makes me never want to use their (or any use now pay later with no easy caps or rate limits) service ever again. Or even a phone number to call.
Also before doing this save anything important that Google owns (gmail, youtube videos, anything in storage). The leaders at Google are vengeful enough to completely lock you out for challenging them.
As a consequence I've had to build quite defensively - adopting a PWA approach - heavy caching and background sync. My hope is that latency improves over time because the platform is nice to work with.
But, a few things could be more straightforward. Cloudflare makes the whole static site and DNS zone piece feel far more seamless. With Bunny you will still need to stitch records between different parts of their dashboard.
Highly recommend their Edge Containers product, super simple and has nice primitives to deploy globally for a low latency workloads.
We connect all containers to one redis pubsub server to push important events like user billing overages, top-ups etc. Super simple, very fast, one config to manage all locations.
A few people here are complaining about the lack of a free tier, but Magic Containers can cover a lot of the same ground as Cloudflare's Durable Objects, which IIRC cost a minimum of $5/month.
I feel like you missed what the author meant with that phrase. The author wasn't talking about for their website, but the internet as a whole.
> I can’t help but feel that the idea of centralizing the internet into a single US corporation feels off.
The point of picking Bunny.net is that it's alternative to this single entity that's got so much of the internet running through it, and is less susceptible to the BS in the US.
Not many DNS management providers (that I'm aware of, please correct me) support CNAME flattening. That is having your A record point to a CNAME.
Every time I purge the pull zone cache, I do it twice, cause once from my CI isn't enough. My CI does individual page cache invalidation during deployment, but there needs to be some kind of delay (with no feedback) when assets are distributed across.
Almost all technological choices I made as a teen were driven by "what hosting can I get for free, as my parents sure as hell won't put down their payment information for that". Back then that usually meant PHP and a max. 50MB MySQL.
In my case, and it was the 90s, I took the time to setup a way to pay by calling a premium (1-900) for $1.49 number so the barrier to entry even for kids was still reasonable.
Maybe in modern day the equivalent is adding Google pay and Apple pay then you cover some kids at least (gift cards and such).
Quite the hassle for the provider, and it will turn away any person who cares about privacy. There's no way to win anymore.
Good riddance to the "free" model. It's never actually free. You either pay with your data, or have to consume ads, or you're forcing other customers to pay for your free usage.
also I said this in a another thread, they charges 1$ even for single testing http request.
https://news.ycombinator.com/item?id=46873521
?
So 1 euro a month is too expensive for you? Wow.
Just pay the 1 Euro or go to GitHub where that is free but goes down almost every week.
The solution was to move to Bunny, and that worked for everyone.
https://www.goodboydigital.com/pixijs/bunnymark/
I'd assume most bots don't have a GPU attached :)
edit: I'm thinking of the use case where the CDN as a proxy for APIs and uncachable content as well, where it used as a reverse proxy for transit/ddos protection.
Granted cloudflare also does DDOS protection, and that makes sense for an API. For that you could do some DDOS protection without stripping TLS, but it can only protect against volumetric attacks like syn/ack floods and not against attacks that are establishing full TCP connections and overwhelming the app server. (rate limiting incoming connections can go a long way, but depending on details, it might still be enough to overwhelm the serving resources, your use case is up to you to understand).
Only using edge storage, DNS, and CDN so far but very happy with Bunny.
I hear this argument all the time, but I think it's more complicated.
Firstly, if people used more diverse / smaller services the distribution of outages would change. While there will likely to be more frequent "smaller" asynchronous outages, many platforms can still break even when only one of their dependencies break. So, you might likely to face even more frequent outages, although not synchronous.
Secondly, we are not sure if these smaller services are on par with the reliability of Cloudflare and other big players.
Thirdly, not all Cloudflare infrastructure is fully centralized. There is definitely some degree of distribution and independence in/between different Cloudflare services. Some Cloudflare outages can still be non global (limited by region or customers that use certain feature set, etc).
I’ve now been with Bunny.net for over a year and have been very happy with the service.
The CDN certainly has it: https://bunny.net/blog/ipv6-returns-to-bunnycdn/
Depending on where I query from, OP's blog does have it as well:
Easy upload of bind test files Flattened CNAME to support naked domains Robust free role based permissions to add other ppl
Anyone have suggestions for moving a stack of domains, many being little community and hobby projects away from cloudflare for a small overall price. Agency pricing like migadu offers for email on custom domains is what I have in mind.
https://www.migadu.com/pricing/
https://www.cloudns.net/premium/
https://www.luadns.com/pricing.html
I've found every other offering to be lacking. Some examples: Cloudflare is alright but has settings footguns if you're not used to Their Way of Doing It™ (e.g., before using DNSControl, I had to manually flip switches to turn off proxying every time I updated my zones). deSEC is free and okay, but sometimes quite slow to propagate and its UI+API are unwieldy. DNS Made Easy is often pushed on social media, but it's ridiculously pricey for what you get if you don't need a SLA. DNSimple seemed nice but IIRC I couldn't get a different API token per zone (?).
I'm currently relying mainly on LuaDNS. For me, it functions as a "dumb" DNS host (i.e., not using their Lua configuration-as-code system). Their API is oddly designed, but it's been passable since a recent-ish update, which has allowed me to safely port my zone files to DNSControl.
https://dnscontrol.org
https://dnsimple.com/
50 cents per domain per month 10 cents per million queries
That’s prob cheap enough to support lots of little hobby sites and bigger traffic sites likely have some budget.
[1] Not completely sure but I think this was the incident https://blog.dnsimple.com/2020/07/incident-dns-resolution/
They recently upgraded the player for streaming media, we use in one instance for tutorial videos, that apparently adds some missing accessibility features. All we needed to do was adjust the embed URL structure we were using and all set.
See https://bunny.net/gdpr/. Also noticed this:
While uncommon, bunny.net also provides a way to block users from the EU from accessing your content altogether by using our traffic manager tools if you do not wish to serve users from the European Union. Which I assume can be reversed, only serving to users from the EU.
Does anyone have thoughts or disagree on this in terms of pricing and cost effectiveness?
The line between those two things in the case of the EU is awful blurry.
The Espace Léopold issues laws that are binding on member nations, wields significant power over trade, fiscal policy, and mandates open borders between member nations. These are hardly the features of a purely economic treaty organisation.
It's not perfect but it's better than the alternatives and we really need a power bloc (even if currently only economic) that isn't the US and China.
Alternatives to US big tech are always welcome.
>One of my biggest concerns though is around how easily I could become heavily dependent on this one single company that then can decide to cut me off [...]
How does switching to Bunny make a difference?
It would be super nice to have a setup that uses multiple CDNs w/ automatic failover.
Doable, but that removes all the free tiers of all the CDN's. AFAIK they all require an enterprise account to keep using ones own DNS and their own GSLB DNS failover. There are probably a few exceptions and one could maybe make something of that but I don't know which ones are the exceptions.
Some of our users were unable to reach our CDN altogether. They couldn't load any assets at all. Bunny's customer service was far too slow to respond and mostly gave unhelpful answers. They couldn't even identify the issue.
In less than 45 minutes, I moved our CDN entirely from Bunny to Cloudflare Workers. Now our CDN just actually works, I don't have to debug our CDN for the Bunny customer service team.
Also, this is obviously a marketing post.