Ah, if only this was fully available ~ 4 months ago.
I transitioned my recipe app with ~ 80,000 images from Cloudinary to a combination of Backblaze B2 + Bunny.net a few months ago. I heavily use the resizing and optimizing features.
It's saved me a ton of money, but if I could have used B2 + Cloudflare with their 0 bandwidth alliance, I could have saved more, I think - haven't done the math though.
In the grand scheme of things, though, I've worked with Bunny now and love the interface, and performance. The one time I contacted support, I spoke 1 on 1 with , I believe, the founder of Bunny. He was cool.
Cloudflare is doing some killer things, excited for that. But glad to see we have small name alternatives to everything (S3 to B2, Cloudflare to Bunny, etc) that can compete on price and functionality.
Have you considered imgix? It's like Cloudinary, but with flat pricing per # of origin images. Transformations and bandwidth don't cost extra. It's nice because you don't have to manage yet another stack, just plop in a URL and you're done.
It seems like Cloudflare wants you to predefine all the "variants" (transformations) as specific templates in their GUI, whereas Cloudinary and Imgix are much more flexible and accept specific URL parameters to create those transformations.
How is it more expensive (than Cloudinary, which the parent was talking about)?
Cloudinary uses a credit system and charges by disk space + bandwidth + transformation calls. Its free plan is metered and only good for up to a small number of monthly visitors.
Imgix charges by # of origin images, regardless of their size, and everything is included free. The free plan is up to 1000 source images and bandwidth/disk space are not charged (though fair use limits prob apply?)
CloudFlare nearly shut down my account for “fraud” because I bought two domain names in a short time period while traveling in a foreign country. I hope they can resolve the mistake of handling customer administration through algorithms rather than humans, because their products are absolutely phenomenal.
Moral of the story is: if you’re going to play around with new features such as this (which I plan on doing!), set up a new account. Always, always compartmentalize.
I really like Cloudflare's product (and even own some shares!), but their fraud/phishing/scam-handling is an issue.
A client of mine got a fraudulent impersonation/phishing-claim (completely ridiculous, the page in question is passive and contains no login ability, no 3rd party scripts besides GA) and CF automatically banned that subpage of the domain. You can appeal to their Trust & Safety team, but they either don't exist or are severely understaffed. It's been a month or so without any feedback, on the forums, people are talking about waiting for six months. Tech support will only "escalate" the issue to T&S where issues go to die.
It's a great way to boot competitors though: file a claim, their visitors will get a scary "Warning: Suspected Phishing Site Ahead!" page they need to actively dismiss, and the site owner can't fix it short or migrating away from CF. I'm guessing enterprise will buy you a direct line to someone who can do something though.
Haha, when I first clicked on the post I was expecting to learn about a new container image registry living right on the edge with cloudflare. Boy was I confused reading the first few paragraphs.
> You pay $5/month for every 100,000 stored images and $1 per 100,000 delivered images. There are no additional resizing, compute or egress costs.
Pricing seems really reasonable, and the resizing feature seems pretty slick.
IIRC regular cloudflare will still cache assets for free. This tool is specifically for people who don't want to write a pipeline to do image resizing/optimization themselves. If you're able to write your own pipeline to do sprite sheets, you probably don't need this service to begin with. Just preprocess everything yourself and serve those at $0 per gb.
Yes, that makes sense. But it is interesting that this product becomes crazy expensive as the image size gets smaller. $1 per 100,000 served images is a weird pricing model unless you're serving exclusively large images.
This is true but remember, we also have volume pricing. If you're storing tens of millions of images or delivering hundreds of millions of images, talk to us :)
Hm.. the 'Do I get charged for creating and storing variants?' FAQ certainly is, but I was actually looking at the top one 'How much does Cloudflare Images cost?' which is a bit ambiguous:
> Cloudflare Images costs $5 per month per 100,000 stored images and $1 per 100,000 delivered images. Storage must be purchased in advance in blocks of 100,000 images.
> You only pay for original images; not variants. If you have one million original images and define five variants, you would only pay $50 per month for storing your one million original images.
On my first reading I took that to be general, but then the example is about storage... I think you're probably right, I was thinking each served image (or variant) would only be charged once per payment period (because they can cache aggressively) but that'd be really cheap, depending on usage.
I’m loving it. Cloudflare is a good and reliable service provider, I expect it to expand their cloud offerings in the future like drop-in S3 replacement, application logging, etc…
I would like to define a pipeline of Workers that get to act on the request / response and count the whole pipeline as a single Worker run as long as I stay within the limits for normal workers. That way I can write composable, reusable workers that perform very specific tasks (like pipes). There could even be a GUI to let me enable / disable parts of the pipeline.
I can do that right now by jamming everything into a single source file, but it would feel better (to me) as a pipeline. It would also be cool if I could stick (headless) Cloudflare apps that are glorified workers into a pipeline like that (at a specific position).
Something that I've found difficult in the Cloudflare ecosystem is understanding the order of execution for everything (access, cache, workers, apps, page rules, etc.). It would be useful to have a dedicated resource that lists that.
Also, the preview pages for every app I've looked at today give an unsafe content warning [1].
A single file is just the deployment, something you don't really have to worry about. Setup your project and source code to have a pipeline with multiple files and libraries as you want, and let the deployment step (with wrangler) wrap up everything and publish it.
I am wondering if Cloudflare is gearing up to be a true competitor to AWS a la GCP and Azure. All it'd take is an EC2-like offering for them to have everything many companies need. You can build out the rest of your managed services (e.g. RDS, ElastiCache, S3) slowly over time.
Cloudflare seems to have a much more cohesive vision for their cloud than AWS does, and I think it could be a competitive advantage for them.
If I serve cloudflare images on my non-cloudflare hosted webpage, would the visitors still occasionally see the injected DDoS protection “checking your browser before accessing” page or would the images just fail to load then? Or is that browser checking disabled if just loading images?
That’s one reason why I haven’t checked out Cloudflare Pages, my (already statically hosted) website will unlikely be DDoSed and I wouldn’t want to impact user experience by adding random browser checks…
The JavaScript Challenge pages only run on dynamic assets, and so won’t impact image assets served.
Beyond that:
• You can turn down the sensitivity of the challenge pages: https://support.cloudflare.com/hc/en-us/articles/200170056-U...
• Since Cloudflare Pages is fully hosted on us, we can soak the DDoS and don’t have to worry about letting things through to origin infrastructure. Benefit of serving directly from the edge :-)
I want something similar to this for favicons. As stupid as that sounds, dealing with favicons is a huge pain. There are so many variants required and every vendor seems to do their own thing.
For example, when you click the share button in Safari on an iPad, it'll download every `link rel="icon"` image you list in html even though it doesn't need them. It would be really awesome to use a worker to inspect the user agent and modify responses to return exactly what's needed for that client.
The pricing for this service won't work for favicons since the cost per response is way too high, but I honestly think it'd be worth $5 / month if I could just upload a SVG favicon for my site and click a button to "Optimize Favicons".
It would be great if they also allowed reverse proxying images directly. I.e. if I could embed an image like this:
<img src="/images/logo.png?size=200,200">
For the customers that enabled Cloudflare proxying, they could automatiacally serve a 200x200px variant of the image hosted on my server at /images/logo.png.
This would allow to use the feature without needing to upload the images explicitely.
For those not using the Cloudflare proxying, the images could be embedded using something like this:
If I understand correctly, then Cloudflare's paradigm is: We have a bunch of polished, simple standard services and if you want to do something slightly different and/or do something on the network you can use Workers.
I think it's pretty smart and empowering as it strikes a nice balance between great, simple DX and high flexibility.
Currently "Image Resizing" requires the Business plan or higher, so this strategy will not work for most hobbyist. Seems like enrolling into "Cloudflare Images" does not give a way to use this feature from Workers.
As a user for many years, I can confirm it indeed is a nice product. They did however have minor downtimes compared to my previous CloudFront experience, but there are no charges for HTTP requests with Bunny, so it saves a substantial amount from the bill.
In a previous life I built a photo sharing community and it was quite common with >10MiB uploads, the limit I set was 25.
It’s just as you say, you want the highest possible quality (within reason) for rescale purposes (and 2x monitors like the iMac)
We're evaluating this product to replace our self-hosted "resize and deliver images on the Internet" solution and we definitely do have source images over 10mb. I'm not worried about the migration, but this means that going forward we might need our app (or worse our users) have to resize images down before uploading them to the image resizing service. That's a bummer.
EDIT: I just checked, 2.5% of source images are over 10mb.
An easy solution might be to have it accept an upload of a larger file, but automatically scale it down to fit under 10mb and then only store that as the new original.
Sure the raw images are large, but websites rarely display images in their original format. Generally for display on websites images are at least compressed if not scaled down significantly.
Here is an example I just pulled off the front page of the NYT website. I'm sure it was originally a 10+MB image taken on a iphone or DSLR but it was compressed/scaled down to a 510kb webp image for display on the web.
The point here though is there’s a file size limit for images you’re uploading. With the 10MB limit you can’t upload your source image for conversion to the example image you linked. You need to do an initial conversion first, which means you’ll introduce more artifacts.
Non-starter because you don't want to migrate the images into Cloudflare? I.e. you want the transformation/caching of some non-CDN images via Cloudflare?
Asking as this could look very attractive (£ wise) for a project with images stored in Uploadcare where it would be feasible for us to do the source-image migration.
Assuming 50KB per image, this is about 10 cents per gig pricing. It’s comparable to other CDNs so I guess this is a real price that you can use for business purposes without being hit with a request to become an enterprise customer.
Incidentally, evaluating an image CDN is my current task at $dayjob. I've been comparing uptimes and, with the caveat that this data is not easy to gather and harder to compare across providers, I just noticed that imgix had twenty-five incidents the past year, mostly "Elevated Rendering Errors". I take it they're a market leader in the image CDN space but that honestly does not inspire confidence in me. Cheaper providers (Imagekit, Sirv) seem to have better reliability.
(Ofc, another caveat is how accurate do they monitor and report, but---short of running customer sentiment analysis---I don't seem to have a choice other than to assume that factor is roughly equal.)
I guess it's a David-to-Goliath comparison but I would just expect Cloudflare to have better reliability than any of them. Plus, as another reply pointed out, brand recognition helps in getting that budget approval.
My company uses Imgix, we're overall pretty happy with it. I'm not sure how we feel about pricing - that's not in my wheelhouse - but it works well for our needs. Our contact there has also been really helpful.
The reliability isn't great though. "Elevated Rendering Errors" almost always is "increased errors rendering uncached derivative images". Basically any image variant - by file and transformation/dimension parameters - that hasn't been viewed recently won't load. So a srcset homepage hero image probably has all size variations a user might see in Imgix's cache, and will render. But on less-traveled parts of our site, photos generally won't load. We're a rather image-heavy site and it's pretty debilitating to the UX when this happens, so it's frustrating that this happens more than the "almost never" rate we'd wish for. FWIW, we've never noticed problems on their end that aren't closely followed by an incident report in their status page, so they're not under-reporting at least.
I haven't use imgix but just had a quick look at the docs. It doesn't seem to have the same ability for you to give your users a way to upload their own images in a secure way? If that's the case then that's a big + for Cloudflare.
In general though, CF just nail every version of what they do so I'd personally go with their version of it even if it's the same.
Do you know how to solve the "embeddable widget" part?
I wouldn't like to code myself for the JS uploader (validation, progress bar etc..) but use an external service which gives me the hosted url in return.
I have images that can change occasionally and when I upload an image I want to find and delete the previous version so I don't end up with many variations.
Looks like an interesting feature, however I don't like that you can't really create SEO-optimized filenames + the content is hosted on a different domain.
You can do this with our Image Resizing product (https://developers.cloudflare.com/image-resizing/) but once you start hitting serious volume, the egress costs charged by AWS can add up (to a multiple of what you are paying AWS for the storage itself).
If the images are cached by Cloudflare's CDN, and assuming we have a paid Pro account, are we still billed on each image delivery? How do paid CF plans affect CF Images, if at all?
I have a client with a Cloudflare Pro subscription. They've received about 57 million image requests through Cloudflare in the last month, of which the origin has only served 2 million, and the Cloudflare Cache has served the rest.
If we used Cloudflare Images, would it cost $570 to transfer those 57 million images? Or would the Cloudflare Cache significantly reduce the number of transfers attributed to Cloudflare Images?
> Are there certain categories of people who CloudFlare refuses to have as customers?
As you mentioned, anyone on one of the various US sanction lists. Additionally, anything illegal under US law (particularly CSAM, warez and other kinds of piracy), as well as terrorist/violent content (as the "Islamic State", 8chan, Daily Stormer and a select few others found out the hard way).
I transitioned my recipe app with ~ 80,000 images from Cloudinary to a combination of Backblaze B2 + Bunny.net a few months ago. I heavily use the resizing and optimizing features.
It's saved me a ton of money, but if I could have used B2 + Cloudflare with their 0 bandwidth alliance, I could have saved more, I think - haven't done the math though.
In the grand scheme of things, though, I've worked with Bunny now and love the interface, and performance. The one time I contacted support, I spoke 1 on 1 with , I believe, the founder of Bunny. He was cool.
Cloudflare is doing some killer things, excited for that. But glad to see we have small name alternatives to everything (S3 to B2, Cloudflare to Bunny, etc) that can compete on price and functionality.
Good stuff, though! More options the better!