Available Commands
Development
Type Checking
Linting & Formatting
Testing
Production Build
Build Desktop App
Vite production build
Bundles frontend to
src-tauri/target/release/bundle/- Minifies JavaScript/CSS
- Optimizes images
- Generates source maps (optional)
Rust release build
Compiles Rust with optimizations:
- Full optimizations (
-O3equivalent) - No debug symbols (smaller binary)
- Takes ~2-5 minutes
Output Artifacts
- macOS
- Windows
- Linux
Separate builds needed for
x86_64 (Intel) and aarch64 (Apple Silicon)Pre-push Checklist
Before pushing to remote, run:- ✅ Code is formatted (Biome)
- ✅ No linting errors (Biome)
- ✅ TypeScript compiles
- ✅ Rust compiles
Build Optimization
Rust Release Profile
Configured insrc-tauri/Cargo.toml:
Cargo.toml
Vite Build Options
Configured invite.config.ts:
vite.config.ts
Platform-Specific Builds
macOS: Universal Binary
Build for both Intel and Apple Silicon:Windows: 32-bit and 64-bit
Linux: Multiple Distros
CI/CD Pipeline
GitHub Actions Example
.github/workflows/build.yml
Versioning
Version is stored in two places and must match:package.json
src-tauri/Cargo.toml
Bundle Size Analysis
Frontend Bundle
Rust Binary Size
Reduce Binary Size
- Strip symbols (enabled by default in release profile)
- Enable LTO (enabled by default)
- Use
wee_alloc(minimal allocator):Cargo.toml
Debug Builds
For debugging production issues:Next Steps
Testing
Write and run tests
Architecture
Understand the codebase