This started as a five-minute job and forty hours later...
I wanted to convert a HEIC without uploading it anywhere, so I wrestled Emscripten/WebAssembly to run Google's Jpegli inside a Web Worker. Now there's a small UI and it handles a bunch of formats.
Just about the only thing it can't decode is JXL - but there's still some JPEG XL magic in there: XYB perceptual color quantization is enabled by default via Jpegli.
The upside of all this over-engineering is privacy and compatibility: images are processed entirely on your machine and never touch a server; the output is a regular JPEG that works everywhere.
I could have used a CLI, sure — but where's the fun in that?
Would love feedback on edge cases and defaults.
Tested on Firefox, Chrome, and Safari.
Cheers!
mondainx•1h ago