Docs

Build, packaging, and release workflow

This is the practical build path for developers who need local builds, CI parity, or release artifacts.

WindowsmacOSLinux
BuildReleaseSetup

Source builds, local quality gates, installer output, website build, and CI expectations.

  • Local source prerequisites
  • Desktop and website build commands
  • Installer output paths
  • Quality and security checks
Applies to
WindowsmacOSLinux
Covers
BuildReleaseSetup

Build, packaging, and release workflow

Source build prerequisites

For local development you need:

  • Node.js 20+
  • Rust toolchain
  • Tauri platform prerequisites for your OS

Typical examples:

  • Windows: WebView2 runtime and Visual Studio build tools
  • macOS: Xcode command line tools
  • Linux: WebKitGTK and tray-related dependencies required by Tauri

Desktop app commands

Install dependencies:

npm install

Run frontend preview only:

npm run dev

Run the actual desktop app:

npm run tauri:dev

Build release installers:

npm run tauri:build

Windows helper:

npm run tauri:build:win

Website commands

The marketing and docs site is a separate Next.js app in its own repository.

Use:

npm run dev
npm run lint
npm run build

Current website deployment path: Cloudflare Pages builds from the repo root and publishes the static out output.

Installer output

Desktop artifacts are written under:

src-tauri/target/release/bundle/

Typical outputs:

  • Windows: NSIS .exe, .msi
  • macOS: .dmg
  • Linux: .deb, .AppImage

Quality gates

Frontend checks:

npm run lint
npm run test:web
npm run build

Rust tests:

cargo test --manifest-path src-tauri/Cargo.toml

Full local gate:

npm run check:all

Release discipline

Before cutting a build for testers or buyers:

  1. Run the local quality gates.
  2. Run the smoke test checklist.
  3. Build the installer for the target OS.
  4. Install the built artifact, not just the dev runtime.
  5. Verify profile creation, bucket listing, upload, download, and signed URL generation from the installed build.

License signing for production builds

Production license verification expects an Ed25519 public key at build time.

$env:R2_DESK_LICENSE_PUBLIC_KEY="..."
npm run tauri:build

Do not treat debug-mode license shortcuts as release behavior.

CI expectation

Minimum CI gate:

  • frontend linting
  • frontend tests
  • desktop packaging
  • Rust tests
  • dependency audits where configured

If CI passes but the installed artifact is broken, the release process is incomplete.