Skip to content

Development

The setup, the commands for tests and the architecture are in CLAUDE.md; decisions are in docs/adr/.

In short:

git clone --recurse-submodules https://github.com/Spanwire/spanwire.git
docker compose up -d --build            # Postgres, backend :8000, frontend :3000, Mailpit :8025

cd backend && .venv/bin/pytest -q       # needs the compose Postgres on localhost:5432
cd frontend && npm test && npx tsc --noEmit -p .

These docs

The site is built with MkDocs and the Material theme from docs/ and mkdocs.yml. It uses the brand's colour tokens and mark from frontend/brand/ through symlinks in docs/assets/.

python -m venv .venv-docs && .venv-docs/bin/pip install -r docs/requirements.txt
.venv-docs/bin/mkdocs serve -a localhost:8001   # reloads on save

CI builds it with mkdocs build --strict on every pull request, so a broken link fails the build.