The image-compression tool in the Lessly family of small in-browser utilities.
100% client-side. Compress JPEG, PNG, WebP, AVIF, HEIC, and GIF in your browser — no upload, no signup, no server.
Live: https://allless.github.io/compressor/ (moving to compressor.lessly.me once the domain is set up)
- Preact — UI framework
- jSquash — WASM image codecs (MozJPEG, OxiPNG, libwebp, libavif)
- libheif-js — HEIC/HEIF decode (LGPL-3.0, lazy-loaded)
- gifsicle-wasm-browser — animated GIF re-optimization (MIT)
- client-zip — batch ZIP download (MIT, streaming)
- Vite — build tool
- TypeScript — strict mode
- Drop one or more images
- Choose output format and quality (or accept the defaults)
- WASM codecs compress locally
- Download — single file, or ZIP for batch
Files never leave the browser. Everything runs on your machine.
pnpm install
pnpm dev # dev server on localhost:5173
pnpm test # run tests
pnpm build # production build to dist/
pnpm gen:routes # regenerate SEO routes + sitemapSee progress.md for the working tracker. Highlights still pending:
- Resize before encode
- EXIF strip / preserve toggle
- JPEG XL (
@jsquash/jxl) - PNG re-optimization via
@jsquash/oxipng - Inline preview in batch rows
- Eventually: a sibling video compressor at
video.lessly.me(mediabunny + WebCodecs)