Development Flow
This section is aimed at developers and contributors. If you only want to use
track, the earlier sections are the better place to stop.
Tooling
Section titled “Tooling”For local development, keep these available:
just- Rust
sqlx-clisocargo sqlxis available for DAL migrations and browser e2e setup- Bun
- Docker and
docker compose
One reasonable install command is:
cargo install sqlx-cli --no-default-features --features sqlite,rustlsCommon commands
Section titled “Common commands”Prefer the repository justfile for routine task management. If a workflow in
this guide has a matching just recipe, use that recipe instead of manually
typing the underlying cargo, bun, or docker command.
From the repository root:
just test-rustjust build-rustjust install-dockerjust build-alljust pr-readyFrontend work:
just build-fejust test-fejust test-e2eDocs work:
just run-docsjust build-docsDAL query metadata:
just db-prepareThat recipe uses an ignored SQLite file at crates/track-dal/sqlx-prepare.sqlite
to re-run the real DAL migrations and refresh the committed offline query cache in
crates/track-dal/.sqlx.
Do not commit a crate-local .env with DATABASE_URL for this workflow. Normal
builds should resolve SQLx queries from the checked-in .sqlx cache instead of
preferring a live database connection.
Practical workflow
Section titled “Practical workflow”For most feature work:
- keep the backend running locally
- register at least one project in the local UI/backend
- use the CLI and WebUI together while iterating
- update the Starlight docs when behavior or setup changes
If you change user-facing setup or workflow and skip the docs, the book becomes stale faster than the code.