Masonry layout Image Viewer — desktop, web, and CLI.
packages/
├── core/ — Shared UI components, stores, types, i18n
├── desktop/ — Tauri desktop app (Windows, macOS, Linux)
├── web/ — Astro static site + React browser app (Chromium browsers)
└── cli/ — npm CLI that serves the web build locally
- Bun
- Go Task
- Rust (for desktop only)
- Tauri prerequisites (for desktop only)
bun installtask dev:desktoptask dev:webtask build:clitask check # biome ci + tsc --build
task format # biome format --write
task test # core + web behavior testsThe auto-updater requires a signing key pair. Generate one with:
bunx @tauri-apps/cli signer generate -w ~/.tauri/mason-gallery.keyThis creates:
- Private key:
~/.tauri/mason-gallery.key(keep secret) - Public key: printed to stdout
Configure the project:
- Copy the public key into
packages/desktop/src-tauri/tauri.conf.jsonunderplugins.updater.pubkey - Add the following GitHub repository secrets for the release workflow:
TAURI_SIGNING_PRIVATE_KEY— contents of the private key fileTAURI_SIGNING_PRIVATE_KEY_PASSWORD— password entered during generation (if any)
git checkout master
git pull origin master
# compress `dev` into a single commit merge.
git merge --squash dev --allow-unrelated-histories
git checkout --theirs .
git commit -m "release: vX.X.X"
git push origin mastergit checkout master
git pull
git tag v2.2.0
git push origin v2.2.0