Contributing to Blank
Thanks for helping! Bug reports and ideas are best started as an issue. For code, fork the repository, create a branch and open a pull request against main. Commit messages are a single line of the form <type>: <summary>, e.g. fix: …, feat: … or docs: ….
Setup
Blank is a Tauri 2 app with a TypeScript + ProseMirror frontend in src/. You need bun, Rust and the Tauri prerequisites of your system.
bun install
make dev # run the app with hot reload
make check # lint, format check and unit tests, same as the pre-commit hookRun make to list all tasks. They wrap the scripts in package.json, so bun run <script> works just as well, e.g. on Windows without make.
End-to-end tests
The tests in e2e/ drive the real app using tauri-driver and WebdriverIO. They run on Linux only.
- Install the prerequisites:
sudo apt install webkit2gtk-driver xvfbandcargo install tauri-driver --locked - Build the app and run the tests:
make test-e2e, ormake test-e2e-headlesswithout a display
Set E2E_SKIP_BUILD=1 to reuse an existing debug build. Set E2E_PORT to run on another port than 4444, e.g. next to a second checkout. Each spec file runs the app with a fresh, temporary profile, so your own documents and settings are left untouched.
Documentation
The website at fpurchess.github.io/blank lives in docs/ and is built with VitePress. Preview it with make docs-dev. If your change is visible to users, update the matching page in docs/guide/. After UI changes, regenerate the screenshots with make docs-screenshots (Linux, same prerequisites as the end-to-end tests).
Recommended IDE setup
VS Code with the Tauri and rust-analyzer extensions.