<picture>
and <source>
tags but that's a whole different problem I think at some point we'll have to stop pleasing ancient legacy applications if we want to make progress. Webp support can be detected both client and server side, and then a fallback png version could be sent, or the browser could load a webp polyfill. Png images could also be temporarily stored instead of permanently to not have to store two versions of images that are never opened by legacy applications. Additionally XenForo could show a (dismissible) message that educates users to switch their browser.And as @Jeremy P has just pointed out to me, Safari doesn't even support it yet. I know there are fallbacks to do with<picture>
and<source>
tags but that's a whole different problem
Safari is hardly an ancient legacy application. It literally has new versions coming out in the coming weeks on both iOS and macOS. Unfortunately, neither have AVIF support. Sadly if one of the most prominent browsers (more prominent than Firefox, even) doesn't support a particular standard then that's significant.I think at some point we'll have to stop pleasing ancient legacy applications if we want to make progress.
Valid points potentially regarding support but, come on, we can't tell people using iOS to "switch their browser". They literally can't.Webp support can be detected both client and server side, and then a fallback png version could be sent, or the browser could load a webp polyfill. Png images could also be temporarily stored instead of permanently to not have to store two versions of images that are never opened by legacy applications. Additionally XenForo could show a (dismissible) message that educates users to switch their browser.
Probably my sentiment that made me exaggerate a bit, but them generally lagging behind everyone else is sad and frustrating. But as long as everyone just buckles for them and does their bidding, I guess they can keep their pace like they want.Safari is hardly an ancient legacy application. It literally has new versions coming out in the coming weeks on both iOS and macOS.
Significant of course, and a justifiable case for a workaround/alternative, but holding back improvements that 65% of the web could vastly benefit from (in the example of avif) seems weird. I know that for avif this is somewhat a moot point given the backend considerations, but this stretches into all sorts of fields (and also isn't exclusively limited to XenForo of course, this mindset change would need to happen everywhere, but needs to start somewhere, so why not with industry leaders).Unfortunately, neither have AVIF support. Sadly if one of the most prominent browsers (more prominent than Firefox, even) doesn't support a particular standard then that's significant.
Both webp and avif have binaries that can be compiled to run on at least Windows and Linux, which should cover at least the vast majority of servers. You probably have a better indicator if that's sufficient from the stats you collect.But none of this changes the fact that up to a point we literally had no server-side support for manipulating even WebP files, and the same will be true for AVIF for years to come.
I’d say it’s better suited to get AVIF supported in PHP before trying to support it with custom compiled binaries. Seems that would be a support nightmare for something like XenForo if customers needed to get through compiling and installing binaries. Most people don’t have their own servers and instead are running on a stack provided by a web hosting company (so they couldn’t install custom compiled binaries on their server even if they wanted to).Both webp and avif have binaries that can be compiled to run on at least Windows and Linux, which should cover at least the vast majority of servers. You probably have a better indicator if that's sufficient from the stats you collect.
Depending on the binaries, it could either be just shipped with the software, or you make it part of an advanced package like Enhanced Search. I don't want to demand a solution here, there's of course a lot to consider. I just want to say there's ways to make it work, and sites would hugely benefit from this being available in one form or another.Seems that would be a support nightmare for something like XenForo if customers needed to get through compiling and installing binaries. Most people don’t have their own servers and instead are running on a stack provided by a web hosting company (so they couldn’t install custom compiled binaries on their server even if they wanted to).
Like I said, AVIF would be fun... but I'd put my money on it not being a thing in XenForo until PHP and browsers support it. Shipping binaries wouldn't be a realistic/viable solution because the same web hosting companies that don't allow customers to compile/install binaries also don't let them execute binaries. Web hosting environments are typically pretty sandboxed so customers can't screw up their servers (hell, if you could just arbitrarily execute your own binaries with a web hosting company, why not just run cryptocurrency mining binaries?)Depending on the binaries, it could either be just shipped with the software, or you make it part of an advanced package like Enhanced Search. I don't want to demand a solution here, there's of course a lot to consider. I just want to say there's ways to make it work, and sites would hugely benefit from this being available in one form or another.
There's always ways to make something work. That doesn't make it a good idea. On this and similar things we will almost certainly wait as long as we need to in order to ensure we can provide a consistent experience, without workarounds and fallbacks, and without potentially complicated additional software requirements.Depending on the binaries, it could either be just shipped with the software, or you make it part of an advanced package like Enhanced Search. I don't want to demand a solution here, there's of course a lot to consider. I just want to say there's ways to make it work, and sites would hugely benefit from this being available in one form or another.
./xf-avatar-optimizer.sh list
nginx nginx 982 Jan 23 22:41 /data/avatars/s/0/2.webp
nginx nginx 1629 Jan 23 22:41 /data/avatars/s/0/2.jpg.pngquant
nginx nginx 4128 Jan 23 09:04 /data/avatars/s/0/2.jpg.optipng
nginx nginx 4625 Jan 23 22:41 /data/avatars/s/0/2.jpg.opt
nginx nginx 4648 Jan 22 23:32 /data/avatars/s/0/2.jpg
nginx nginx 1437 Jan 23 22:41 /data/avatars/s/0/2.avif
nginx nginx 570 Jan 23 22:41 /data/avatars/s/0/1.webp
nginx nginx 730 Jan 23 22:41 /data/avatars/s/0/1.jpg.pngquant
nginx nginx 1488 Jan 23 09:04 /data/avatars/s/0/1.jpg.optipng
nginx nginx 1788 Jan 23 22:41 /data/avatars/s/0/1.jpg.opt
nginx nginx 1809 Jan 17 11:52 /data/avatars/s/0/1.jpg
nginx nginx 1007 Jan 23 22:41 /data/avatars/s/0/1.avif
nginx nginx 9546 Jan 23 22:41 /data/avatars/o/0/2.webp
nginx nginx 25234 Jan 23 22:41 /data/avatars/o/0/2.jpg.pngquant
nginx nginx 112717 Jan 23 09:04 /data/avatars/o/0/2.jpg.optipng
nginx nginx 127125 Jan 23 22:41 /data/avatars/o/0/2.jpg.opt
nginx nginx 127102 Jan 22 23:32 /data/avatars/o/0/2.jpg
nginx nginx 9407 Jan 23 22:41 /data/avatars/o/0/2.avif
nginx nginx 1142 Jan 23 22:41 /data/avatars/o/0/1.webp
nginx nginx 1169 Jan 23 22:41 /data/avatars/o/0/1.jpg.pngquant
nginx nginx 2065 Jan 23 09:04 /data/avatars/o/0/1.jpg.optipng
nginx nginx 2092 Jan 23 22:41 /data/avatars/o/0/1.jpg.opt
nginx nginx 2087 Jan 17 11:52 /data/avatars/o/0/1.jpg
nginx nginx 1270 Jan 23 22:41 /data/avatars/o/0/1.avif
nginx nginx 2184 Jan 23 22:41 /data/avatars/m/0/2.webp
nginx nginx 3542 Jan 23 22:41 /data/avatars/m/0/2.jpg.pngquant
nginx nginx 12178 Jan 23 09:04 /data/avatars/m/0/2.jpg.optipng
nginx nginx 13601 Jan 23 22:41 /data/avatars/m/0/2.jpg.opt
nginx nginx 13634 Jan 22 23:32 /data/avatars/m/0/2.jpg
nginx nginx 2672 Jan 23 22:41 /data/avatars/m/0/2.avif
nginx nginx 934 Jan 23 22:41 /data/avatars/m/0/1.webp
nginx nginx 1232 Jan 23 22:41 /data/avatars/m/0/1.jpg.pngquant
nginx nginx 3351 Jan 23 09:04 /data/avatars/m/0/1.jpg.optipng
nginx nginx 4193 Jan 23 22:41 /data/avatars/m/0/1.jpg.opt
nginx nginx 4214 Jan 17 11:52 /data/avatars/m/0/1.jpg
nginx nginx 1448 Jan 23 22:41 /data/avatars/m/0/1.avif
nginx nginx 4592 Jan 23 22:41 /data/avatars/l/0/2.webp
nginx nginx 8683 Jan 23 22:41 /data/avatars/l/0/2.jpg.pngquant
nginx nginx 36771 Jan 23 09:04 /data/avatars/l/0/2.jpg.optipng
nginx nginx 41347 Jan 23 22:41 /data/avatars/l/0/2.jpg.opt
nginx nginx 41411 Jan 22 23:32 /data/avatars/l/0/2.jpg
nginx nginx 5042 Jan 23 22:41 /data/avatars/l/0/2.avif
nginx nginx 1734 Jan 23 22:41 /data/avatars/l/0/1.webp
nginx nginx 2512 Jan 23 22:41 /data/avatars/l/0/1.jpg.pngquant
nginx nginx 7403 Jan 23 09:04 /data/avatars/l/0/1.jpg.optipng
nginx nginx 9375 Jan 23 22:41 /data/avatars/l/0/1.jpg.opt
nginx nginx 9410 Jan 17 11:52 /data/avatars/l/0/1.jpg
nginx nginx 2408 Jan 23 22:41 /data/avatars/l/0/1.avif
nginx nginx 9694 Jan 23 22:41 /data/avatars/h/0/2.webp
nginx nginx 23463 Jan 23 22:41 /data/avatars/h/0/2.jpg.pngquant
nginx nginx 110569 Jan 23 09:04 /data/avatars/h/0/2.jpg.optipng
nginx nginx 124695 Jan 23 22:41 /data/avatars/h/0/2.jpg.opt
nginx nginx 124820 Jan 22 23:32 /data/avatars/h/0/2.jpg
nginx nginx 9318 Jan 23 22:41 /data/avatars/h/0/2.avif
nginx nginx 3972 Jan 23 22:41 /data/avatars/h/0/1.webp
nginx nginx 3802 Jan 23 22:41 /data/avatars/h/0/1.jpg.pngquant
nginx nginx 11459 Jan 23 09:04 /data/avatars/h/0/1.jpg.optipng
nginx nginx 13184 Jan 23 22:41 /data/avatars/h/0/1.jpg.opt
nginx nginx 13218 Jan 17 11:52 /data/avatars/h/0/1.jpg
nginx nginx 4580 Jan 23 22:41 /data/avatars/h/0/1.avif
We use essential cookies to make this site work, and optional cookies to enhance your experience.