dojo is a local-first personal finance application. The repository contains a FastAPI API, a Vue 3 frontend, a DuckDB-backed financial ledger, deterministic fixture-backed import flows, and repository-level quality gates that are intended to run the same way locally and in CI.
- FastAPI in
api/ - Vue 3 + TypeScript in
web/ - DuckDB for local persistence
- Nix + direnv for native tooling
justfor canonical repository commands
- Install Nix and direnv.
- Run
direnv allowfrom the repository root. - Run
just setup.
Use direnv + nix develop. Do not rely on host-installed Python, Node, uv, pnpm, DuckDB, or mdbook.
- API:
just api - Web:
just web - Combined guidance:
just dev
just api explicitly provisions the DuckDB schema before starting the FastAPI server.
For a deterministic local data set, import fixture://default from the onboarding flow.
- Full local quality gate:
just check - CI-equivalent command:
just ci - Architecture and policy checks only:
just architecture-check - Backend and frontend tests:
just test - Fresh migration provisioning check:
just migration-check - Docs build:
just docs - Container build:
just container
- Development workflow:
CONTRIBUTING.md - Agent routing:
AGENTS.md - Product behavior and acceptance criteria:
SPEC.md - Current implementation architecture:
ARCHITECTURE.md - Durable technical decisions:
DECISIONS.md - Meaningful changes:
CHANGELOG.md