project-template — full-stack starter
Django and React in one monorepo: a shared OpenAPI contract, independent pipelines and images ready for Kubernetes
- My role
- Author
- Period
- 2026 — now
- Links
- Source code
The team is moving to full-stack development: one project now covers both the backend and the frontend and is ready to ship to a Kubernetes cluster from day one. project-template is the base for such projects. It grew out of django-template: Django 5.2 + DRF on the backend, React 19 + TypeScript + Vite on the frontend and an ops layer with Docker Compose, nginx and CI.
The backend and the frontend are self-contained: each has its own Dockerfile, tooling, CI and image, and they agree through an OpenAPI contract that a typed client is generated from. The images do not depend on the environment, so the same image goes to Compose on a server and to Kubernetes.
What I did
- An OpenAPI contract between the teams: the backend generates the schema, the frontend the types, CI fails when the contract is stale
- Kubernetes-ready: env-only settings, migrations in a separate release step (a Job in the cluster), liveness and readiness probes, non-root, JSON logs
- Independent pipelines and deploying one component without touching the other
- A new project in one command: a script renames everything and gives the project its own port
- SPA and API on one domain: no CORS, cookies and CSRF work out of the box
- CODEOWNERS for two teams, Dependabot, pre-commit for Python and TypeScript