Skip to main content
World Monitor desktop apps are built with Tauri v2, providing native performance with a bundled Node.js sidecar for offline API support.

Architecture

The desktop app consists of:
  • Tauri Core - Rust-based native window and system integration
  • Web Frontend - Vite-built React/TypeScript app
  • Node.js Sidecar - Bundled Node.js runtime for local API server
  • Static Resources - Data files, API handlers, and configuration

Prerequisites

Development

Run Desktop App in Dev Mode

This command:
  1. Syncs version numbers across package.json and tauri.conf.json
  2. Builds the sidecar sebuf gateway
  3. Starts Vite dev server
  4. Launches Tauri with hot reload

Dev Mode with Devtools

The dev script includes devtools by default:
package.json
This enables:
  • Web Inspector (right-click → Inspect)
  • Console logging
  • Network monitoring

Build Configuration

Main Configuration

src-tauri/tauri.conf.json

Variant Configurations

Tech Monitor uses a merged configuration:
src-tauri/tauri.tech.conf.json

Bundle Configuration

src-tauri/tauri.conf.json

Bundled Resources

  • ../api/ - Serverless API handlers
  • sidecar/local-api-server.mjs - Local API server
  • sidecar/node/ - Bundled Node.js runtime
  • ../data/ - Static datasets (GeoJSON, CSV, etc.)
  • ../src/config/ - Configuration files

Building

Build for Current Platform

Build Commands Explained

The build command chain:
package.json

Packaging

Package Script

The desktop-package.mjs script handles multi-platform packaging:

Package Commands

Node.js Runtime Bundling

The package script automatically downloads and bundles the Node.js runtime:
scripts/download-node.sh

Bundle Targets

  • app - .app bundle
  • dmg - Disk image installer
Located in src-tauri/target/release/bundle/

Code Signing

macOS Signing

Windows Signing

Linux Signing

Linux builds don’t require code signing, but you can sign AppImages:

Distribution

Manual Distribution

  1. Build signed packages for each platform
  2. Upload to your website or file host
  3. Provide download links with SHA256 checksums

GitHub Releases

Automate releases with GitHub Actions:
.github/workflows/release.yml

Update Mechanism

Tauri supports auto-updates with the updater plugin. Configure in tauri.conf.json:

Troubleshooting

Build Fails on macOS

Error: xcrun: error: unable to find utility "metal" Solution: Install Xcode Command Line Tools:

Windows Build Fails

Error: error: linking with 'link.exe' failed Solution: Install Visual Studio Build Tools 2022 with C++ workload.

Linux Missing Dependencies

Error: webkit2gtk-4.1 not found Solution: Install WebKit dependencies:

Sidecar Fails to Start

Error: Failed to spawn sidecar Solution:
  1. Verify Node.js binary exists: src-tauri/sidecar/node/node
  2. Check execute permissions: chmod +x src-tauri/sidecar/node/node
  3. Rebuild sidecar: npm run build:sidecar-sebuf

App Won’t Open on macOS

Error: "World Monitor" is damaged and can't be opened Solution: Remove quarantine attribute:
Or notarize the app (see Code Signing).