The Problem:
Most web image tools either:
Use weak algorithms (hello 2010-era JPEG compression)
Nag you to upgrade
Upload your files to sketchy servers
My Solution:
Libvips-powered WASM (same engine as sharp, but in browser)
Zero uploads - 100% client-side processing
90%+ size reduction with perceptual quality intact
No tracking (check DevTools yourself)
PWA - works offline after first load
Tech Breakdown:
WASM build of libvips (3x faster than Canvas implementations)
Web Workers for UI fluidity during heavy processing
~200kb gzipped (smaller than some "lite" libraries)
1 comment
[ 3.8 ms ] story [ 14.0 ms ] threadMy Solution: Libvips-powered WASM (same engine as sharp, but in browser) Zero uploads - 100% client-side processing 90%+ size reduction with perceptual quality intact No tracking (check DevTools yourself) PWA - works offline after first load
Tech Breakdown:
WASM build of libvips (3x faster than Canvas implementations)
Web Workers for UI fluidity during heavy processing
~200kb gzipped (smaller than some "lite" libraries)
For Developers:
bash Copy npm install @image-min/core javascript Copy import { compress } from '@image-min/core'; const { blob } = await compress(file, { format: 'webp', quality: 85 }); Why This Might Break HN:
"How does this compare to Squoosh.app?" (We support batch processing)
"Why not use Rust instead of WASM?" (Benchmarks show libvips is faster)
"Where's the revenue model?" (There isn't one - this is FOSS)
Try It Now | View Source