Why does everyone hate WebP?

Does my website load fast enough? Publii, which I use to build this site, has a "Responsive Images" option which will load smaller images if you're on mobile, and larger images if you're on a bigger screen. That's faster for you, but it comes at a cost: multiple versions of the same image take up a lot of space! Below is an example of a post with a handful of images, and the corresponding directory containing all of its differently-sized derivatives. 

6MB for all those variants is more than all the original images combined

This website is stored in a private GitHub repository. GitHub suggests a repo should be under 1GB, with a soft 5GB repo limit. When I started writing this, I'd only been running this site for 3-ish months. In that time, I've already taken up 1/5 of the suggested 1GB limit with ~200MB of content. At that pace, with 5GB, I'll be able to run this site for only six years!

Granted, I'll be stoked if I'm able to keep up this pace for six years, but it's still uncomfortable having that limit looming just a handful of years in the future. Besides, I want to be a good GitHub citizen, not freeloading liability.

With that in mind, what if I turned off the Responsive Images option? Then my site only takes up ~65MB! That's 20 years of runway!

How big my site is with each option as downloaded from GitHub

But wait, what's that about "webp" in this list? WebP is an alternative to JPG/PNG that compresses nicely and still has transparency like a PNG. Even with all the responsive images, its footprint is only a little larger than not having responsive images at all. Having ~13.4 years of runway seems like a good compromise, but are there any downsides to webp? Well...

Also, in 13 years, that 5GB GitHub limit could go up since storage only gets cheaper over time (or maybe I'll actually need to pay for hosting). That said, the earliest version of GitHub's policy from Sept 2021 still says 1GB and 5GB, so it's no guarantee. That's a problem for future-me. 

Why does everyone seem to hate WebP?

I haven't really kept up with the latest in image standards, but people seem to have a strong opinion against webp. For example:

source

Like many people, I prefer a solid png if only for its familiarity, but I'm working with limited storage here. Are there any specific reasons why webp isn't worth the tradeoff for my site? Recently, PNG announced a new spec which sparked a bunch of fresh image-format discussion. From what I can tell, the main sources of frustration about webp are around slow adoption, breaking existing workflows (related to slow adoption), and low quality.

At least in browsers, it appears to be widely supported now. Lots of popular apps support it now too, including my favorite Photoshop alternative Photopea. Some places (like reddit) have spotty support. Infamously, it seems Instagram doesn't support it, however my rebuttal is: I don't care about Instagram. Lots of comments in the HackerNews thread were along the lines of, "I didn't think X supported webp but it turns out it does now." That's a marketing problem, not a format problem.

Regarding photo quality, I think webp photos look just fine. I'm not distributing wedding photos here, I'm just breaking up my words every now and then. 

Ahh yeah, that's nice, see?

For the purposes of just reading my site, these issues aren't dealbreakers. If the responsive images load quickly while taking up a smaller footprint, I will accept these tradeoffs.

OK, now just flip the switch and now everything on the site should be WebP, right?

I thought it would be that easy. There's just a single toggle in the Publii UI to do it! Unfortunately, converting then uploading >500 images to GitHub quickly overshoots their rate limits. I was trying to upload too many files too quickly and Publii returned an upload error. Publii does have built-in rate limiting, but this was a weird edge case that's not necessarily supported. I flipped all the switches and turned all the knobs I could in Publii but nothing worked.

So what can I do? There's no easy way to batch my uploads, I'm not ready yet to roll up my sleeves and build a custom version of Publii with additional rate limiting logic, and my internet is just too dang fast. But, what if... I slow down my internet connection? I installed a program called Proxyman and configured it to slow my internet to a crawl. It's a nifty program that deserves all the praise it gets. Plus it has a cool spacesuit logo.

Houston, we have slow internet

After configuring everything, my internet was dog-slow for my browser and other clients, but Publii didn't seem to care. It just burned through the upload process as if Proxyman didn't exist. Same thing with another program called Charles Proxy. I was baffled, and I had already spent more time on this problem than you'll ever save in website performance speed.

After a couple hours I gave up and went to bed. While brushing my teeth I wondered: what if I just turned my wifi on and off while uploading? 

... and it worked like a charm. I turned the wifi off, Publii paused uploading, I counted to fifteen, turned wifi back on, and Publii resumed uploading. I did this a few times and it skated in just under GitHub's rate limits. And now you get the efficiently-compressed webp images that you see here. Unless you still hate webp, then I'm sorry.