djereo - a Django project template with opinionated tooling.
Embracing Boring Technology, fighting bloat, striving for simplicity.
Built on top of the pycliche template.
Projects created using djereo include:
- A Django web application, configured via a
pyproject.toml. - Dependencies managed via
uv, using auv.lockfile for reproducible builds. - An implementation of the 'custom User + UserProfile' pattern, tied together with a
django-allauthintegration. - Optional vendorised
htmxwith sensible defaults for the frontend. - Simple configuration to enhance your logs with
structlog. - Ready-to-use dev tools: Django Debug Toolbar,
django-browser-reload, runserver logs formatted usingrich,structlogin production. - IPython as the default shell.
- Out-of-the-box code coverage reporting with
coverage.py. pre-commithooks to lint & format code, and run SAST.- A
justfileto usejustas a task runner for common jobs. - Lean containerisation to quickly deploy a project to hosted environments.
- Settings to score A+ on securityheaders.com, for peace of mind.
- ...and more!
Optionally, for projects intended to be hosted on GitHub, also include:
- GitHub Actions to:
- Automate cutting releases via
Release Please. - Run
pre-commithooks andpytestas part of a Continuous Integration pipeline.
- Automate cutting releases via
- A
dependabotconfiguration to keep Python packages & GitHub Actions up to date.
Read about all ofdjereo's features: https://albertomh.github.io/djereo/featurelist/
Starting a Python project? Try pycliche, the basedjereois built on, as your Python project template.
This section covers how to create a Django project using djereo as a template.
The following must be available locally:
- Python 3.13 or above
- Postgres
- uv
- just
djereo supports the last two versions of Python - the ones with bugfix support as per
https://devguide.python.org/versions/.
Bootstrap a new Django project using djereo:
- Navigate to the directory under which you wish to create a new project.
- Run
uvx copier copy --trust gh:albertomh/djereo <project_name>and follow the wizard.
This creates a directory under your current location. Follow the README in the new
<project_name>/ directory to get started with your project.
Please note:
- it is not necessary to clone
djereo. Thegh:albertomh/djereoargument will pull the latest tag from GitHub. - the
--trustflag is necessary to allow a post-creation task to initialise the new directory as a git repository and generate auvlockfile.
djereo's documentation is available at https://albertomh.github.io/djereo/.
The developer documentation (https://albertomh.github.io/djereo/develop/)
covers how to work on djereo itself:
Several tooling choices have been guided by the work of Adam Johnson & Carlton Gibson.
The djereo logo is typeset in Black Ops One.
Horse head icon generated using DALL·E.
"Stereotype" or "stereo" refers to the metal plates used to quickly mass-produce printed media.
