Hey Indie Hackers,
I've been building image tools on and off for a while, and one thing always bothered me: every "free online image compressor" requires you to upload your files to a server first. Family photos, work screenshots, client assets — I didn't want any of that sitting on someone else's infrastructure.
So I built SnappyKit — a suite of 40+ image tools where every operation runs client-side using Canvas and WebAssembly. Your files never leave your device.
What it does:
Technical highlights:
The hardest part was HEIC decoding. Apple's format isn't natively supported by browsers, so I integrated a WASM build of libheif, lazy-loaded it, and configured CSP to allow wasm-unsafe-eval only on that specific route. Everything else uses standard Canvas APIs, so the core site stays lightweight.
AVIF support depends on the browser engine, which was another fun constraint — Chromium has native encode/decode, Firefox and WebKit vary, so the tool gracefully falls back based on feature detection.
Stack: Next.js 14 App Router, React 18, TypeScript strict, Tailwind 3. Deployed on Vercel.
It's completely free — no premium tier, no watermark, no account required. Just paste a URL and start using the tools.
Would love feedback on UX, missing tools, or anything that feels off. Also happy to answer questions about the WASM/HEIC implementation if anyone's curious.