Mason Gallery v2.0.0
A complete rewrite — from the ground up.
Mason Gallery v2.0.0 is a major release that rebuilds the entire application with a new architecture, new UI, and multi-platform support. What was once a single desktop app is now a monorepo powering a desktop app, a browser SPA, and an npm CLI — all sharing a single component library.
Highlights
New Architecture
- Tauri 2 + React 19: The desktop app has been fully migrated from the legacy stack to Tauri v2 with a React 19 frontend, delivering a smaller binary, faster startup, and native OS integration.
- Monorepo workspace: The project is now organized as a multi-package workspace (
core,desktop,web,cli), enabling code sharing and independent builds across all targets. - Platform abstraction layer: A
PlatformServiceinterface decouples UI logic from platform-specific capabilities, making it straightforward to add new targets in the future.
Multi-Platform Support
- Desktop (Windows / macOS / Linux) — native file access, system trash, auto-updates.
- Web SPA — runs in any Chromium browser via the File System Access API.
- npm CLI —
npx mason-galleryserves the web build locally for quick viewing.
New Features
- Folder sidebar & directory tree — browse and switch between folders without leaving the app.
- Top menu bar — replaces the old floating action button for a cleaner, more discoverable UI.
- Image viewer enhancements — improved actions, smoother navigation, and better UX.
- Position indicator & jump — instantly jump to any position in a large image collection.
- Configurable column breakpoints — fine-tune the masonry grid layout to your display.
- Incremental refresh with relayout — add new images without rescanning the entire directory.
- Scan progress & prefill layout — see real-time scanning progress; the grid skeleton renders before images load.
- Theme refresh — new brand color (#f4606c), custom favicon, and app logo.
- Auto-update — built-in update flow with UI notifications (desktop).
- Native drag & drop — drag images directly from the desktop app into other applications.
- i18n — English and Traditional Chinese, powered by typesafe-i18n.
Performance
- Axum-based image HTTP server (desktop) — serves images through a local HTTP server for efficient, non-blocking rendering.
- Parallel image scanning with rayon — directory walks and dimension extraction are parallelized on the Rust side.
- Virtual scroll optimizations — fixed container mismatch issues and added prefill guards for smoother scrolling.
Developer Experience
- Biome for formatting and linting (replaces ESLint + Prettier).
- OpenSpec workflow for spec-driven development.
- GitHub Actions CI/CD with automated release builds.
Breaking Changes
This is a full rewrite. There is no migration path from v1.x — install fresh and enjoy the new experience.
What's Next
We're just getting started with the new architecture. JUST expect more features and more polish in upcoming releases.
Thank you to everyone who tested, reported bugs, and waited patiently. v2.0.0 has been a long journey — and it's here. 🎉