Home / Projects / Recipe API

Recipe API

A clean, well-tested Django REST Framework backend for recipes and ingredients. Filtering, pagination, token auth, an OpenAPI schema, and a docker-compose that brings the whole thing up in one command.

Category  API · BackendStack  Python · Django · DRF · PostgresStatus  In development

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.

The API also models the social layer a recipe product actually needs — following other users, rating recipes, commenting, and a personalised activity feed built from who you follow — not just the recipes-and-ingredients CRUD the name suggests. A companion React/TypeScript frontend exists to exercise it end to end, which is what forces the permission model to be honest: a “follow” relationship, a rating that belongs to exactly one user, a feed query that has to stay fast as the follow graph grows, all have to work through the same auth layer a real client depends on, not just through a test client that assumes the happy path.

GitHub Actions runs the suite on every push, which is what makes the coverage gate mean something — a test suite nobody runs automatically decays into documentation nobody trusts. Docker Compose brings up the API, Postgres, and the frontend together, so “does this actually work” is one command rather than a checklist of services to start in the right order.

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.

Want to build something like this?

We scope projects in 48 hours and ship a first demo in 1–2 weeks. Tell us what you need.

Start a project → See how we work