Back to Yaak

Developer Setup

DEVELOPMENT.md

2026.3.11.8 KB
Original Source

Developer Setup

Yaak is a combined Node.js and Rust monorepo. It is a Tauri project, so uses Rust and HTML/CSS/JS for the main application but there is also a plugin system powered by a Node.js sidecar that communicates to the app over gRPC.

Because of the moving parts, there are a few setup steps required before development can begin.

Prerequisites

Make sure you have the following tools installed:

Check the installations with the following commands:

shell
node -v
npm -v
vp --version
rustc --version

Install the NPM dependencies:

shell
npm install

Run the bootstrap command to do some initial setup:

shell
npm run bootstrap

Run the App

After bootstrapping, start the app in development mode:

shell
npm start

SQLite Migrations

New migrations can be created from the src-tauri/ directory:

shell
npm run migration

Rerun the app to apply the migrations.

Note: For safety, development builds use a separate database location from production builds.

Lezer Grammar Generation

sh
# Example
lezer-generator components/core/Editor/<LANG>/<LANG>.grammar > components/core/Editor/<LANG>/<LANG>.ts

Linting and Formatting

This repo uses Vite+ for linting (oxlint) and formatting (oxfmt).

  • Lint the entire repo:
sh
npm run lint
  • Format code:
sh
npm run format

Notes:

  • A pre-commit hook runs vp lint automatically on commit.
  • Some workspace packages also run tsc --noEmit for type-checking.
  • VS Code users should install the recommended extensions for format-on-save support.