The problem
Most recipe-app starters cut corners somewhere — auth is stubbed, tests are absent, the docker setup doesn’t survive a fresh clone. We wanted a reference backend that did all the boring things right, so a front-end team could plug in and ship a real product without rebuilding the API layer.
What we built
Recipe API is a Django REST Framework service for recipes, ingredients, tags, and users. It supports CRUD with filtering and pagination, uploads recipe images, and has a complete test suite that runs on a fresh clone with one command. Postgres is the source of truth; Docker brings up the API, the database, and a development-ready environment.
The automation angle
The interesting thing here isn’t the AI — it’s the testing discipline. Every endpoint has its happy path covered, every permission rule is asserted in tests, and the CI pipeline blocks merges that drop coverage. The lesson generalises: a backend built like this can absorb new features for years without rotting.
How it’s used
- Front-end teams looking for a stable API to build against.
- Reference architecture for any of our other Django services.
- Teaching surface for engineers learning DRF properly.
What it taught us
That a small, opinionated, well-tested API is a kind of capital. Recipe API is the boring service we lean on when we need a reminder of what good Django looks like.