Skip to content

albertomh/djereo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

djereo logo - a printing plate embossed with a pony (the Django mascot) and the word 'djereo'

djereo - a Django project template with opinionated tooling.

Embracing Boring Technology, fighting bloat, striving for simplicity.

Built on top of the pycliche template.

python >= 3.13 Copier justfile uv Django Postgres IPython structlog Mailpit pre-commit ruff biome htmx pytest coverage nox security: bandit Release Please gunicorn CI

Features

Projects created using djereo include:

  • A Django web application, configured via a pyproject.toml.
  • Dependencies managed via uv, using a uv.lock file for reproducible builds.
  • An implementation of the 'custom User + UserProfile' pattern, tied together with a django-allauth integration.
  • Optional vendorised htmx with 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 using rich, structlog in production.
  • IPython as the default shell.
  • Out-of-the-box code coverage reporting with coverage.py.
  • pre-commit hooks to lint & format code, and run SAST.
  • A justfile to use just as 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-commit hooks and pytest as part of a Continuous Integration pipeline.
  • A dependabot configuration to keep Python packages & GitHub Actions up to date.

docs
Read about all of djereo's features: https://albertomh.github.io/djereo/featurelist/

Python
Starting a Python project? Try pycliche, the base djereo is built on, as your Python project template.

Quickstart

This section covers how to create a Django project using djereo as a template.

Prerequisites

The following must be available locally:

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

Bootstrap a new Django project using djereo:

  1. Navigate to the directory under which you wish to create a new project.
  2. 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. The gh:albertomh/djereo argument will pull the latest tag from GitHub.
  • the --trust flag is necessary to allow a post-creation task to initialise the new directory as a git repository and generate a uv lockfile.

Documentation

djereo's documentation is available at https://albertomh.github.io/djereo/.


Develop

The developer documentation (https://albertomh.github.io/djereo/develop/) covers how to work on djereo itself:


Acknowledgements

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.

What's in a name?

"Stereotype" or "stereo" refers to the metal plates used to quickly mass-produce printed media.

About

A Django project template with opinionated tooling

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •