Slimg – Fast Image Optimizer CLI in Rust with Kotlin/Python Bindings
Rust CLI with Kotlin/Python bindings and multi-codec support, but ImageMagick already dominates.

Client-side compression when TinyPNG, Compressor.io already exist and work fine.
Privacy-conscious users, designers, content creators
TinyPNG · Compressor.io · Squoosh
I built ImgPakt because every image compressor I found uploads files to a server. TinyPNG, Compressor.io, iLoveIMG — they all require sending your images over the internet.
ImgPakt compresses images entirely in the browser using Canvas API and Web Workers. There's no fetch(), no XMLHttpRequest, no upload endpoint in the code. Files literally cannot leave your device.
Technical details: - FileReader → offscreen Canvas → toBlob() at target quality - Web Workers keep the UI thread free during batch processing - Supports JPEG, PNG, WebP, AVIF - 5 preset quality profiles instead of a manual slider
Free tier: 5 images per batch, all profiles. Pro ($3.99/mo): unlimited batch, format conversion, AVIF.
I'd appreciate any feedback on the compression approach or UX. Happy to answer questions about the architecture.
Rust CLI with Kotlin/Python bindings and multi-codec support, but ImageMagick already dominates.
Yet another browser image converter; CyberChef, CloudConvert, Convertio already exist.
40% cheaper than Urlbox with a real free tier, but screenshot APIs are well-solved.
Wraps macOS screencapture with JPEG compression—CleanShot X already does this.
ML classifier detects text formats automatically, but CloudConvert already does 50+ formats.
Platform presets help, but browser video compressors already exist.