Contributor guide

Develop the desktop app and documentation together

The repository uses Bun, Angular 22, Electron, strict TypeScript, Vitest, Angular Material, and Electron Forge.

Bun
1.3.14
Node.js
24.18.x
Angular
22
Electron
43

Setup

Install and run

Install the pinned dependencies, start the Electron development application, or serve the documentation separately.

bun install --frozen-lockfile
bun run start

# Documentation only
bun run start:docs

Workspace

Know the project boundaries

projects/electron/src contains the standalone Angular renderer. projects/electron/electron contains Electron main-process, preload, workers, storage, validation, and conversion code. projects/electron/shared contains serializable contracts. projects/docs contains the prerendered documentation site.

Quality gates

Run the same checks as CI

The validation suite checks formatting, Angular and Node lint rules, strict type safety, Electron and docs unit tests, accessibility expectations, and coverage thresholds.

bun run validate
bun run build

# Individual checks
bun run format:check
bun run lint
bun run typecheck
bun run test:coverage

Packaging

Build a local desktop package

Desktop packaging builds the Electron renderer and main process, then asks Electron Forge to package the current host. Documentation is built by the aggregate build and release validation jobs, not bundled into the desktop ASAR.

bun run package:desktop