Commander Spellbook is a combo database, wiki and engine for Magic: The Gathering. It's designed to be a one-stop shop for all the information you might want about a combo, whether it's a deck you're building or one you're playing against.
This is an Open Source project, and we welcome contributions from the community. If you'd like to contribute, please read the Contributing section below.
Commander Spellbook consists of three main components:
- A PostgreSQL database containing all the combo data
- A Django backend that exposes the data via a REST API
- A React frontend that consumes the API and displays the content in a user-friendly way
- A TS/JS generated client can be found on npm
Anyone is welcome to contribute to Commander Spellbook. You can contribute in a number of ways:
- On the backend, by opening a pull request with your changes
- On the frontend, by opening a pull request with your changes
- By submitting new combos
You can find the contribution guidelines for the backend here.
Dependencies and environments are managed with uv; the repository root
keeps a small requirements.txt holding the tooling that bootstraps everything else. From a fresh
clone:
pip install -r requirements.txt # uv + pre-commit
pre-commit install # git hooks: lint and type checks on commit, tests on push
cd backend && uv sync # create the backend .venvThe pre-commit hooks run the same checks as the CI, so problems surface before you push rather than after a pipeline run. See Git hooks for what runs when and how to skip a hook, and Getting Started for the full walkthrough.
You can read some Markdown documentation here.