Files
yaak/DEVELOPMENT.md
2025-11-23 08:38:13 -08:00

1.7 KiB

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:

node -v
npm -v
rustc --version

Install the NPM dependencies:

npm install

Run the bootstrap command to do some initial setup:

npm run bootstrap

Run the App

After bootstrapping, start the app in development mode:

npm start

SQLite Migrations

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

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

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

Linting & Formatting

This repo uses Biome for linting and formatting (replacing ESLint + Prettier).

  • Lint the entire repo:
npm run lint
  • Auto-fix lint issues where possible:
npm run lint:fix
  • Format code:
npm run format

Notes:

  • Many workspace packages also expose the same scripts (lint, lint:fix, and format).
  • TypeScript type-checking still runs separately via tsc --noEmit in relevant packages.