Theme

Frisp

Local-first image optimization for modern web formats

  1. 1 commit

    Added the project identity file.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 1 commit

    Recorded the brand mark direction in the design doc.

  7. 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.

  8. 1 commit

    Logged two code-review findings in the issue-list backlog.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 1 commit

    Standardized the Frisp brand name across the app while keeping identifier-safe slugs separate.

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. 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.

  19. 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.

  20. 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.

  21. 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.

  22. 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.

  23. 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.

  24. 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.

  25. 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.

  26. 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.

  27. 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.

  28. 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.

  29. 1 commit

    Added an upstream signal ledger for tracking codec and dependency signals.

  30. 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.

  31. 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.

  32. 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.

  33. 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.

  34. 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.

  35. 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.

  36. 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.

  37. 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.

  38. 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.