Jan. 8, 2026

Documenting Django's technical culture

Following along the lines from one of posts from last year about Django being a protocol or an API, there was a recent discussion on Mastodon about configurable content types, and there’s a ticket in flight to implement this new feature that would make content types configurable. This made me think, in django-prodserver, I’m already creating configurable backends, and in Django generally we have configurable components: databases, caches, storage backends, email backends, and so on. Most of whole system is configurable, and the INSTALLED_APPS setting could be considered the heart of this.

I see some potential value in building out a meta design documents for how we expect new features to be built in Django, describing the kinds of designs or Python APIs we would anticipate in feature. For example, there’s clearly a pattern of a configurable backend via settings, as I mentioned. But are there other conventions we should codify? Whether that takes the form of a contribution document, or an issue template in GitHub, but I think starting with some documentation would be a good start. It might also reveal some gaps in existing features that don't meet the standard we would expect for new features being introduced.

I’m wondering if this is something people are interested in, or something that could smooth the adoption of a package into core though I won’t claim it would speed things up, given how we pace ourselves. We do have established patterns; codifying them a bit more could help those who want to contribute back. Although this is a technical document, it serves more as a community document that shares our culture of how we build Django, therefore creating another on ramp for the community.