Squeeze — a privacy-first file compressor in the browser
Compress PNG, JPG, PDF, DOCX, XLSX and ZIP — entirely client-side, nothing uploaded.
A universal file compressor that runs 100% in the browser. Files never leave the device — there is no server. It handles images, PDFs, Office documents and ZIP archives using Web APIs, shipped as a static Next.js 15 export.
The problem
Most online compressors upload your files to a server you don't control — a privacy risk for anything sensitive. I wanted a tool that compresses files without a single byte leaving the browser.
How I built it
Everything runs on Web APIs: Canvas / OffscreenCanvas for images, pdf-lib for PDFs, jszip for archives, and browser-image-compression for tuning. State is managed with Zustand. It's a Next.js 15 static export with COOP/COEP headers enabled so heavy work can run off the main thread.
What I learned
You can do a surprising amount of real work in the browser with no backend at all. The hard parts were memory management for large files and getting cross-origin isolation (COOP/COEP) right so OffscreenCanvas and workers behave.