Releases: Scorpio3310/compress-pro
Release list
v1.3 – 58 new tools: OCR, subtitles, data, ebooks, 3D, RAW & more
The biggest release so far: the tool count grows from 93 to 151, all new engines run fully in-browser like everything else — no uploads, no servers.
🆕 New tool families (+58 tools)
- OCR — image-to-text, searchable PDF (
/ocr-pdf), pdf-to-text, powered by self-hosted Tesseract - Subtitles — SRT ↔ VTT, ASS → SRT
- Data — CSV ↔ XLSX, JSON ↔ YAML
- Ebooks & comics — compress EPUB/CBZ, CBR → CBZ, EPUB → TXT, CBZ/CBR → PDF
- 3D models — compress GLB via Draco + meshopt (up to −71 % on real scenes)
- Vectorize — PNG/JPG → SVG tracing
- Camera RAW — CR2, NEF, ARW, DNG → JPG via LibRaw, with EXIF preserved for real
- New image formats — AVIF (compress + 6 converters), JPEG XL, PSD → JPG/PNG
- PDF ops — PDF/A, grayscale, rotate, watermark, page numbers, delete/extract pages, plus AES-256 protect & unlock via qpdf
- Archives — password-protect ZIP/7z, tar.bz2/tar.xz creation, .Z extraction
- Audio/video long tail — MP3/WAV → M4A/OGG/Opus, WebM/MOV → MP3, remove audio from video, GIF → WebP
🧹 Quality sweep — 73 confirmed findings fixed
A full audit over every family with a new real-file test matrix (10 family specs, byte-level comparators). Highlights:
- 48 MP PNG conversions dropped from 8+ minutes to seconds
- Ghostscript no longer silently drops PDF annotations — forms are flattened, links transplanted
- Zip-bomb ceiling, encrypted-archive routing, cp437 filename repair in the archive worker
- TIFF orientation, WebVTT escaping, GIF timeline truncation, concurrent RAW decode races
- Honest results everywhere: grown files say "Grew N %", never a green "Saved"
✨ UX & site
- Category hub pages (
/image-tools,/pdf-tools,/video-audio-tools,/font-tools,/archive-tools) with live before/after demos - Before/after demos on 28 tool pages — real files, real numbers
- Tab rails got chevron + wheel-scroll affordance; new OCR/subtitle/ebook rails
- Per-tool JSON-LD names, second guide section on 29 thin pages, maskable PWA icons
v1.2 - Performance release: −42% JS, smarter engine loading, hardened headers
Big performance release: every page ships ~42% less JavaScript (137 → 80 KB gzipped), compression engines load exactly when they're needed, and the first PDF compress starts seconds sooner. A full security + performance review of this release found no security issues.
⚡ Faster loading
- −42% initial JS on every page (137.4 → 79.6 KB gz) — the animation engine, settings panels, compression orchestration and per-page SEO content are now lazy chunks loaded on demand instead of weighing down first paint.
- Faster LCP — headings no longer hide behind a fade-in, removing up to 120 ms of self-inflicted render delay on every page.
- 6 MB of dead code dropped — the unused HEIC encoder wasm is gone from the build (HEIC input stays fully supported).
- ~8 MB lighter service-worker install — only the app shell is precached now; engines and pages cache on first use (and the offline claim in the copy now says exactly that).
🚀 Faster compressing
- No more dead progress bar on the first PDF compress — the 15 MB Ghostscript engine starts downloading the moment you drop a file, hidden behind your think time.
- …and only when it's actually needed — merge, split and PDF ↔ image conversions no longer pull Ghostscript at all (guarded by a new e2e test).
- Smooth EXIF batches — metadata stripping moved off the main thread into the image worker with zero-copy transfers, so the progress UI stays responsive.
- Fail fast — if an engine can't start (e.g. out of memory), you get an immediate error instead of a stuck progress bar.
- Safe drops during page load — a file dropped while the page is still hydrating no longer navigates the tab away.
🔒 Security
- The full security-header set (COOP/COEP, nosniff, X-Frame-Options, referrer & permissions policies) is now applied on every response path, including the markdown twins served to agents.
- Extracted archive filenames are sanitized against Unicode bidi-override extension spoofing before they become download names.
🧰 CI
- New bundle-size budget gate — any accidental static import that would weigh down all ~94 tool pages now fails CI loudly (budgets pinned to the new 79.6 KB gz baseline).
v1.1 - Fonts, Archives, more audio/video formats & an agent-ready surface
Everything added since the initial v1.0 release — still 100% in your browser: no uploads, no ads, nothing stored server-side.
✨ New tool categories
- Fonts — convert between TTF, OTF, WOFF, WOFF2 (and legacy EOT) as lossless table repackaging, subset fonts to character sets or exact text via HarfBuzz, and pin variable fonts to static instances (15 pages).
- Archives — create ZIP, 7Z (AES-256 + hidden file names), TAR, TAR.GZ/BZ2/XZ; extract RAR, ISO, CAB, DEB, RPM, CPIO, LHA, ARJ, .Z and more — password-protected included — plus archive→archive conversion (7z-wasm, 23 pages).
🎬 Video & 🎵 audio
- Motion-JPEG (.mov) support — files whose frames are JPEGs (older cameras / Photo-JPEG) now compress instead of erroring; frames are re-encoded to H.264/VP9 with the audio preserved.
- MOV (QuickTime) output with a dedicated /compress-mov page.
- New audio outputs — FLAC, OPUS, WEBA, with an AAC WebAssembly fallback where the browser lacks AAC (7 converter pages).
- Fixed opus→AAC video conversion so the audio track is never silently dropped.
🤖 Agent-ready & discovery
- A Markdown twin of every page (append
.md), plusllms.txtandllms-full.txt. Content-Signalin robots.txt, RFC 8288Linkheaders, Agent Skills discovery, and in-browser WebMCP tools.Accept: text/markdowncontent negotiation and DNS-AID SVCB discovery records.
🏠 Homepage & demos
- Before/after compression proof on every tool page.
- Revamped homepage directory.
⚡ Performance & fixes
- Lazy-split SEO page bodies for a smaller initial bundle.
- Memory-leak, correctness and bundle fixes across the compression pipeline.
- CI stability fixes (workerd SQLITE_BUSY, e2e flakes).
v1.0 - Initial release
First public version of Compress Pro — a privacy-first file compressor that runs entirely in the browser. Compress and convert images, PDFs, video, audio and SVGs locally, with no uploads and no tracking.