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, andformat). - TypeScript type-checking still runs separately via
tsc --noEmitin relevant packages.