An interactive, collaborative database of pinball knowledge.
Django + SvelteKit monorepo. Django owns the data model, APIs, and admin UI. SvelteKit handles the user-facing frontend.
/api/, admin at /admin//api/ and /admin/ to Django — single origin in dev and prodRequirements: Python 3.14+, Node 24+, uv, pnpm (or enable via corepack enable)
cp .env.example .env
make bootstrap
make dev
Then open http://localhost:5173
To create a Django admin superuser:
cd backend && uv run python manage.py createsuperuser
| Command | What it does |
|---|---|
make bootstrap |
Install all deps, run migrations, generate API types |
make dev |
Start Django + SvelteKit dev servers |
make test |
Run backend (pytest) + frontend (vitest) tests |
make lint |
Run ruff (backend) + eslint/prettier (frontend) |
make quality |
Lint + type check (svelte-check) |
make api-gen |
Export OpenAPI schema and regenerate TypeScript types |
make pull-ingest |
Download ingest source data |
make ingest |
Run the ingest pipeline |
make agent-docs |
Regenerate CLAUDE.md and AGENTS.md from docs/AGENTS.src.md |
backend/ Django project (uv, pyproject.toml)
frontend/ SvelteKit project (pnpm, package.json)
scripts/ POSIX shell scripts for bootstrap, dev, test, lint
docs/ Product, architecture, development, and operations docs
Makefile Thin wrappers around scripts/
See CONTRIBUTING.md for the PR workflow.
CLAUDE.md and AGENTS.md are generated from docs/AGENTS.src.md. Never edit them directly — edit the source and run make agent-docs.