You might want to put a cap on the $2.99/m plan, otherwise one huge site could wipe you out. If you do, I'd express that in terms that most small Wordpress sites will understand (like unique viewers, page hits, etc).
I think some here will say "why not just use Cloudflare directly", but I disagree, I think this plugin makes sense. Cloudflare is relatively straightforward for technical users, but many Wordpress users are non-technical. $2.99 is a very small amount for reliable fast images, while also packing a pretty nice margin for you for most users who will need a tiny fraction of that.
Yes, this plugin is aimed at the long tail and I need to be clear on a fair use policy. The idea behind the self host worker is that I can provide white glove migration if any site becomes burdensome without disrupting the service altogether.
And I agree, if a site is behind Cloudflare DNS this plugin does not make much sense, but it's a solution for many non-technical users, as you mentioned.
> Bandwidth Saver respects your privacy and your visitors’ privacy: Does not track visitors...Does not collect analytics
Wouldn't this cause a site's visitors to send traffic to cloudflare in situations where they wouldn't otherwise, allowing cloudflare to log their IP, timestamp, and the image requested, along with any other data in the request header? If this plugin wasn't used on the site cloudflare wouldn't get/log/track any of that. I'm not sure that handing all that data over to a third party (especially one as large and centralized as cloudflare) is compatible with respecting visitor's privacy. At the very least, site owners should be made aware of the fact that this is data will end up being shared.
This plugin connects to external services to deliver images:
Cloudflare R2 & Workers
Purpose: Stores and serves cached images from 300+ global locations
Provider: Cloudflare, Inc.
Terms: cloudflare.com/terms
Privacy: cloudflare.com/privacypolicy"
The idea here is that WordPress will still host and transform the images (could have many stacked plugins as a pipeline) but the plugin will rewrite the final image's URL to be served by Cloudflare. So you can benefit of whatever pipeline you have in the server, and let the plugin use cloudflare at the edge.
Great idea and definitely love the aspec of bringing your own worker.
But technically would it be better to have the plugin to any transformation and then have just cloudflare in front of the website raking care of all caching ? (I thought they even provide a WordPress plugin for that).
Also careful with hosting other people content under your domain/service under your name especially with CSAM stuff and other illegal material that your domain becomes the face of.
Hi, yes. Jetpack has a plugin for CDN but it's very limited I actually had the experience of having to turn off that plugin because the shared URL was reported as a malicious website, and without notice raked up a bill of over $9k for AWS bandwidth costs.
The idea here is to make it actually work at a level of service that Jetpack can't or won't. Yes, in the managed service I'll have to take that into account.
Nice work! I wish more WordPress plugins took a Unix like approach of just doing one thing well. Wat too common for good plugins to grow into a bloated mess over time.
Agreed. I think it should be called "storage saver" and focus on deleting the images from your server and storing in r2, though there's plenty of plugins already that do this "media offloading"
Cool so the value you provide is much of the benefit of CF but without messing with nameservers etc. (scary). If you don't understand all the techie bits you're going to read 'CDN plugin' and be filed in that basket so I'd work on how to differentiate and market yourself in that space.
The purpose of the worker is to offload all Cloudflare configuration to a single endpoint that fetches and caches each image on demand. This removes the need for any configuration at the WordPress level and keeps credentials out of WordPress entirely.
The URL rewrite happens in a WordPress hook. And yes, the $2.99 plan could technically cover around 200 GB in R2, but there is real liability attached to that.
What price would feel fair and still interesting to you?
I don't see the benefit of keeping things out of WordPress.
It also seems like you're recreating or even bypassing existing mechanisms
* why do the processing in wordpress first rather than just offload it completely to cloudflare's image optimization service? I don't think you even need the worker for that - it can be done automatically in various ways.
* are you deleting the files from the server after offloading? That's largely the point of such wp offload media plugins, some of which support r2.
We serve over 100 WordPress websites, some with relatively high traffic. I've never encountered a Cloudflare issue with image caching. I am a little confused about what this is all about.
We also have our own CDN-ish DigitalOcean droplets with Terabytes of data transfer available (stacked droplets increase the TB limit under the same account, too). This is a $10-$15 solution for 100+ WordPress sites.
Small droplets (DigitalOcean, Vultr, or managed like CloudWays) offer multi-TB bandwidth for data transfers. With the WebP format, even the highest-resolution image is under 100 KB. We try to keep everything under 50 KB for mobile optimization as well. I don't see sites using 50 GB per month and always below the limits. Why would anyone need an extra layer of complication?
I loved the FAQ question "What happens if cloudflare is down?"... Well, the short answer is it takes down 75% of the internet with it; you mean like 3 days ago for the whole day? well, there is always going outside and going bowling with your friends for a few hours until it comes back online, then the internet resumes function at that time.
I wouldn't use this, because it seems odd to use a Cloudflare Worker for something inherently static, but I thought about what I might use, and bunny.net came to mind. Now I have a question, which is why on the Bunny.net pricing page doesn't it mention Cloudflare? https://bunny.net/pricing/ It mentions CDN77, BytePlus, CacheFly, CloudFront, and Fastly. Is what Cloudflare provides in a different market segment?
> It mentions CDN77, BytePlus, CacheFly, CloudFront, and Fastly. Is what Cloudflare provides in a different market segment?
Cloudflare's pricing is "free until you get a message from the sales team that it's time to pay up". That's impossible to compare to anything else, so yes effectively a different market segment.
Yes, the worker handles the fetch and cache. In normal use the URLs would point straight to the R2 public endpoint. Cloudflare might end up cheaper than Bunny.net. Five terabytes on Cloudflare would be about $75, but you avoid egress fees entirely and gain access to more than 300 edge locations.
This is true. Honest question: how technical are your clients? I’m trying to get a sense of whether there’s a market where paying $2.99 a month is a better choice than moving the domain to Cloudflare.
Yet another nail in the coffin of the self-hosted web.
Why should we pipeline the last free content through a company, that already controls most of the web traffic?
I think some here will say "why not just use Cloudflare directly", but I disagree, I think this plugin makes sense. Cloudflare is relatively straightforward for technical users, but many Wordpress users are non-technical. $2.99 is a very small amount for reliable fast images, while also packing a pretty nice margin for you for most users who will need a tiny fraction of that.
And I agree, if a site is behind Cloudflare DNS this plugin does not make much sense, but it's a solution for many non-technical users, as you mentioned.
I'm sorry to say that with this plugin, you're just adding to the pervasive tracking enabled by widespread use of Cloudflare.
> Bandwidth Saver respects your privacy and your visitors’ privacy: Does not track visitors...Does not collect analytics
Wouldn't this cause a site's visitors to send traffic to cloudflare in situations where they wouldn't otherwise, allowing cloudflare to log their IP, timestamp, and the image requested, along with any other data in the request header? If this plugin wasn't used on the site cloudflare wouldn't get/log/track any of that. I'm not sure that handing all that data over to a third party (especially one as large and centralized as cloudflare) is compatible with respecting visitor's privacy. At the very least, site owners should be made aware of the fact that this is data will end up being shared.
"External Services
This plugin connects to external services to deliver images:
Cloudflare R2 & Workers
Purpose: Stores and serves cached images from 300+ global locations Provider: Cloudflare, Inc. Terms: cloudflare.com/terms Privacy: cloudflare.com/privacypolicy"
Bandwidth Saver respects your privacy and your visitors’ privacy:
Because all that tracking and data collection will be done by Cloudflare (a company subject to the CLOUD act) instead.
But perhaps it is a separate thing that can be used regardless of your dns?
I wrote a basic plugin for Jekyll to automatically prefix my images with this. Pretty much just set it and forget it: https://github.com/catskull/catskull.github.io/blob/master/_...
Am I missing something or is this way harder to do in Wordpress?
But technically would it be better to have the plugin to any transformation and then have just cloudflare in front of the website raking care of all caching ? (I thought they even provide a WordPress plugin for that).
Also careful with hosting other people content under your domain/service under your name especially with CSAM stuff and other illegal material that your domain becomes the face of.
The idea here is to make it actually work at a level of service that Jetpack can't or won't. Yes, in the managed service I'll have to take that into account.
Where does the url rewrite happen - wp hook or in cf worker?
As another comment said, 2.99 unlimited is a TERRIBLE idea
The URL rewrite happens in a WordPress hook. And yes, the $2.99 plan could technically cover around 200 GB in R2, but there is real liability attached to that.
What price would feel fair and still interesting to you?
It also seems like you're recreating or even bypassing existing mechanisms
* why do the processing in wordpress first rather than just offload it completely to cloudflare's image optimization service? I don't think you even need the worker for that - it can be done automatically in various ways.
* are you deleting the files from the server after offloading? That's largely the point of such wp offload media plugins, some of which support r2.
My point about pricing was don't offer flat fee.
We also have our own CDN-ish DigitalOcean droplets with Terabytes of data transfer available (stacked droplets increase the TB limit under the same account, too). This is a $10-$15 solution for 100+ WordPress sites.
Small droplets (DigitalOcean, Vultr, or managed like CloudWays) offer multi-TB bandwidth for data transfers. With the WebP format, even the highest-resolution image is under 100 KB. We try to keep everything under 50 KB for mobile optimization as well. I don't see sites using 50 GB per month and always below the limits. Why would anyone need an extra layer of complication?
Cloudflare's pricing is "free until you get a message from the sales team that it's time to pay up". That's impossible to compare to anything else, so yes effectively a different market segment.
Having said that, I am a big fan of CDNs. Your origin server can generate pages and that’s a lot better than static sites.
If you want a decentralized Internet, don’t use the Web. Use something like Pears / Holepunch / Hypercore / Dat (same thing hehe)