
Frisp
Local-first image optimization for modern web formats
- 1 commit
Added the project identity file.
- 4 commits
Shipped lossless JPEG to JXL transcode in the single-image editor, fixed a drag test to wait for the intro to mount before dispatching, and closed out the transcode spec, roadmap, and brief.
- 5 commits
Added jpegli using libjxl's tuned JPEG encoder, captured a reproducible baseline, and completed the supporting documentation. Updated SvelteKit and related dependencies with the CI audit gate green.
- 10 commits
Upgraded JPEG XL to libjxl 0.12 through its public C API and retuned the quality curve at full resolution. Fixed cache eviction so newly admitted entries remain valid, and established a reproducible cache-cold, module-warm benchmark baseline with corrected WebP alpha handling.
- 4 commits
Made the app installable with a web app manifest and generated install icons, folding the apple-touch icon into the icon pipeline and adding iOS standalone metadata.
- 1 commit
Recorded the brand mark direction in the design doc.
- 11 commits
Added search and link-preview metadata plus an og:image social card and its generator, then rebuilt the card dark to mirror the landing, balanced it, restored the missing SVG format, and enlarged the brand lockup. Kept crawler-only files out of the service-worker install shell and adopted the house standard.
- 1 commit
Logged two code-review findings in the issue-list backlog.
- 9 commits
Unified the design across the darkroom, porcelain, and hybrid lab skins with a shared Nucleo icon set and a common LabIcon host, added tab-bar navigation and a two-door index, and corrected the theme and info icons.
- 5 commits
Shipped a Share button as the mobile path to the photo library, and fixed dropped-file import to read plain files directly rather than their webkit entry. Added end-to-end tests driving the landing's drag-and-drop and both paste paths.
- 10 commits
Fixed the landing on mobile with theme-aware browser chrome and a consistent body canvas, and pinned the intro logomark so the wordmark can no longer overlap it. Ran a fable pass tidying lab brand handling and doc accuracy, tuned the intro lockup, and unblocked unit tests in CI.
- 31 commits
Rebranded across the app with a new theme-aware logomark and wordmark, unified to a single canonical logo source, and regenerated broken icons. Shipped a redesigned landing with finalized copy, an inline paste action, and mobile WCAG AA contrast. Hardened production builds to strip dev-only UI and block OS junk.
- 1 commit
Standardized the Frisp brand name across the app while keeping identifier-safe slugs separate.
- 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
Reserved an npm placeholder for the frisp CLI name and filed a support ticket after the unscoped name was blocked by a similarity filter, and specced the codec batch: JPEG XL, jpegli, JPEG-to-JXL transcode, and auto-quality.
- 13 commits
Explored the intro page through billboard, frame, split, ledger, prism, and showcase variants, unified under a graphite-first identity. Ran a craft pass on the bulk and editor code, fixing a debounce-timer leak on reset.
- 34 commits
Ran a first-principles review of the app and executed it: cached decoded sources so passes stop re-decoding, replaced the pair barrier with per-slot drain loops, and transferred buffers instead of cloning. Retired the codegen script, swept dead code, and built a crop tool alongside porcelain and darkroom editor re-skins.
- 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.

