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.
Make sure you have the following tools installed:
Check the installations with the following commands:
node -v
npm -v
rustc --versionInstall the NPM dependencies:
npm installRun the bootstrap command to do some initial setup:
npm run bootstrapAfter bootstrapping, start the app in development mode:
npm startNew migrations can be created from the src-tauri/ directory:
npm run migrationRerun the app to apply the migrations.
Note: For safety, development builds use a separate database location from production builds.
# Example
lezer-generator components/core/Editor/<LANG>/<LANG>.grammar > components/core/Editor/<LANG>/<LANG>.tsThis 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 formatNotes:
- Many workspace packages also expose the same scripts (
lint,lint:fix, andformat). - TypeScript type-checking still runs separately via
tsc --noEmitin relevant packages.