Honestly nothing compares to bandwidth free expenses with cloudflare especially with cloudflare R2.
Also having different pricing for every region is very annoying.
The free version of cloudflare is essentially a "fair-use" offering, meaning that it is free until they decide its no longer free for you at their sole discretion [0]. Their terms of service prohibits distribution of any "disproportionate percentage" of non-HTML content [1]. That includes most of what you would want a CDN for: video, images, audio, binaries.
They have exercised this discretion repeatedly for significant bandwidth users, usually in the form of "You need to upgrade to the enterprise plan or we will terminate services for your site." One of my sites got the enterprise "offer" after serving single digit TB in a month. Running on a real CDN from the start would have been cheaper than inevitably getting extorted to a large <contact sales> price for <contract term> or terminated with little to no time to migrate things.
To use R2 you’d need to host images/assets separately on their own domain rather than just put a CDN infront of your entire site and forget about it. Putting assets on their own domain isn’t uncommon but for some stuff it can be a big inconvenience with build pipelines/software support.
I’m not sure on R2 specifics but I remember when I wanted vanity names on Cloudflare I.e assets.example.com it was not possible unless you give Cloudflare control over your entire domain, dropping your current nameservers or sign up for an enterprise plan for cname support.
But cloudflare can only be used safely with R2. If you use it as a CDN for your app, you have to be careful about section 2.8 of their TOS. If your usage is mostly caching a JSON API response, you are technically in violation.
Yup, that's why I said use R2 and its still cheaper than bunny, since they charge per transaction instead of bandwidth usage and its unified price for all areas.
Hetzner is cheaper unless you are serving a sizable asset with R2. R2 costs per call. That cost is more than most web bundle size assets will be at Hetzner egress pricing.
Depends. Some CDN are more than worth it. Hetzner has weak DDoS protection for example. Some CDN have caches inside the ISP network. It doesn't even get out. There are also cases where the local ISP may not peer with you even if you are in the same region. OVH was famous for this in Asia. It's not enough to be in the same region.
Different perspectives from different requirements. In my case I have to serve API requests that can't be proxied. Most of the data is API, it's bigger than the statics.
Using a CDN for static assets for North America just doesn't seem worth it to me.