
Frisp
Local-first image optimization for modern web formats
- 30 commits
Shipped an SVG optimization lane with guarded automatic tuning, vector-true previews, and a 215-file benchmark corpus that outperformed nano and ImageOptim. Also added calibrated film grain across formats with live preview and per-image controls.
- 5 commits
Defined the next codec work around JPEG XL, jpegli, transcoding, and automatic quality, alongside the CLI shape. Reserved a scoped npm placeholder after the unscoped frisp name hit npm's similarity filter and opened a support ticket.
- 13 commits
Explored a graphite-first intro identity through billboard, frame, split, ledger, prism, and showcase concepts, one morphing the hero into the real editor. Also fixed lingering bulk apply timers on reset, unified the encode-signature projection, and cleaned the bulk editor without changing behavior.
- 34 commits
Completed a porcelain crop-tool lab and experiment gallery, while landing core editor performance work for decoded-source caching, worker buffer transfers, bulk drain loops, sparse overrides, tests, and Svelte idiom cleanup.
- 10 commits
Reworked the landing intro: a rebuilt brand lockup with capability-aware copy, a livelier animated blob field you can click anywhere to open the picker, and OS light/dark theming with a softened load button. Refreshed the logo and wordmark assets and set a clearer page title.
- 20 commits
Finished the Sqush-to-Presk-to-Frisp rename with the brand centralized in one module, moved the app to Cloudflare Workers static-assets hosting, and stood up a sunset Worker that takes over the old domains with a verified kill switch and query-preserving redirects. Also fixed an e2e bulk-override race and hardened CI flakiness.
- 14 commits
Shipped the contextual left panel with image info and Compare as controls, then promoted bulk mode with two-or-more-file routing, folder import, dropped-folder traversal, ZIP Save all, keep-larger safeguards, undo, and the stack resting stage.
- 76 commits
Designed the bulk UI around production editor components, landing the stack stage, multi-select, hero stats, and a promotion spec. Grew the bulk engine with relative-path import, keep-larger export, pure undo, encode sharing, persistent workers, and 58 tests.
- 7 commits
Shipped a safer update path: new service-worker versions now prompt users to refresh, hashed assets cache immutably, stale fractional settings self-heal on load, and CI separates formatting from deeper checks.
- 2 commits
Fixed deploy freshness by auto-activating new service workers, reloading controlled tabs onto the latest build, and preventing stale cached service-worker files.
- 43 commits
Shipped undo/redo with buttons and shortcuts, backed by a new encode-result cache and history foundation. Overhauled resize and zoom, made size presets shrink-only, added Reset view, and unified codec panels into Quality, Effort, and Advanced tiers.
- 15 commits
Trimmed the codec set by removing browser JPEG, PNG, GIF, and QOI outputs, then reconciled e2e coverage, benchmarks, and docs with the leaner encoder list. Bumped Vite to clear a high-severity advisory.
- 2 commits
Self-hosted the Outfit font as static WOFF2 assets and added type declarations so the UI keeps its typography without depending on fontsource and the type gate passes.
- 7 commits
Redesigned the studio UI around a stronger landing hero, canvas stage, glass toolbars, floating panels, a semantic results footer, refreshed option primitives, and Outfit-based design tokens, with dev startup pre-bundling wasm-feature-detect.
- 5 commits
Halved the first-visit payload, 14.3 MB down to 6.8 MB, with variant-aware codec precaching, lighter landing assets, and a calmer blob frame loop.
- 1 commit
Added an upstream signal ledger for tracking codec and dependency signals.
- 26 commits
Rebuilt the editor landing screen as a pink-blob drop/paste affordance with a horizontal logo lockup, resolved the spinner into a green Optimised badge, defaulted WebP to quality 80, and consolidated docs into one README.
- 38 commits
Upgraded major image codecs to CVE-closing maintained versions, restored cross-origin isolation for WASM threads, removed dead codecs, and added codec benchmarks plus cross-engine Playwright regression coverage.
- 34 commits
Hardened the SvelteKit editor with value-typed controls, load-scoped reactivity, diagnostics cleanup, shared option wrappers, loopback-safe service worker guards, accessible landing behavior, and refreshed handoff docs.
- 28 commits
Completed the SvelteKit migration, promoted the app to root, rebuilt the dual-side editor with synced zoom, codec panels, processing controls, shallow-routing history, browser-native encoders, and parity fixes.
- 4 commits
Added a runnable Svelte 5 single-image compressor for WebP, AVIF, and JPEG XL, then verified browser behavior with measured results and corrected the recorded numbers.
- 45 commits
Pushed the SvelteKit migration deep into the codec layer, proving asset paths for WebP, AVIF, JPEG XL, OxiPNG, MozJPEG, QOI, ImageQuant, resize, and rotate, then shared worker, service-worker, and image-pipeline seams.
- 127 commits
Pushed the SvelteKit migration deep into its codec layer, proving WebP, OxiPNG, resize, quantize, MozJPEG, QOI, rotate, worker bridge, service-worker cache, and shared image-pipeline seams, then recorded the prototype verdict.
- 161 commits
Ran a deep refactor pulling the editor and bulk-processing app into small, testable state helpers and workflows, with async-update guards and listener cleanup. Built out the bulk queue with snapshots, restore, requeue, abort handling, export naming, and concurrency limits.
- 116 commits
Renamed the project to Sqush and stood it up as a standalone repo with domain metadata, CI across macOS, and a dependency-audit sweep. Built the bulk image processing architecture with orchestration and tests.

