Skip to main content
Philo is built using Tauri v2, which allows you to create native desktop applications for macOS, Windows, and Linux.

Build Prerequisites

Before building, ensure you have:
  • Completed the Development Setup
  • Installed all platform-specific dependencies
  • Run bun install --frozen-lockfile to install dependencies

Building the App

1

Type-check and build frontend

First, ensure your TypeScript code is error-free and build the frontend:
bun run build
This command:
  1. Runs tsc to type-check all TypeScript files
  2. Builds the Vite frontend bundle for production
2

Build the Tauri app

Build the desktop application for your current platform:
bun tauri build
This will create platform-specific installers in the src-tauri/target/release/bundle/ directory.

Platform-Specific Builds

macOS

Build for Apple Silicon Macs (M1/M2/M3):
bun tauri build --target aarch64-apple-darwin
Output: .dmg and .app files in src-tauri/target/aarch64-apple-darwin/release/bundle/

Windows

On Windows, the default build produces:
bun tauri build
Output formats:
  • .exe installer (NSIS)
  • .msi installer (MSI)
Located in src-tauri/target/release/bundle/

Linux

On Linux (Ubuntu 22.04 recommended):
bun tauri build
Output formats:
  • .deb package (Debian/Ubuntu)
  • .AppImage (portable)
Located in src-tauri/target/release/bundle/

Build Artifacts

After building, you’ll find the following in src-tauri/target/release/bundle/:
  • dmg/ - macOS disk image installer (.dmg)
  • macos/ - macOS application bundle (.app)

Development Builds

For faster iteration during development, you can create debug builds:
cd src-tauri
cargo build
Debug builds are significantly faster but produce larger binaries. Find them in src-tauri/target/debug/.

Pre-Build Checks

Before creating a production build, always run:
# Type-check TypeScript
bun run typecheck

# Format code
bun run fmt
Or use the combined check command:
bun run check

Troubleshooting Build Issues

Build Fails on Type Errors

Run type-check separately to see detailed errors:
bun run typecheck

Rust Compilation Errors

Check for Rust errors before building:
cd src-tauri
cargo check
cargo clippy

Submodule Not Found

Ensure git submodules are initialized:
git submodule update --init --recursive

Platform-Specific Dependencies Missing

On Linux, ensure all WebKit dependencies are installed:
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

Next Steps

Release Process

Learn how to create and publish releases

CI/CD Workflows

Understand automated builds and testing

Build docs developers (and LLMs) love