I recently open-sourced DjangoX which is my own opinionated starter framework for new Django projects. It comes with a custom user model by default, email/password authentication instead of Django’s default and outdated username/email/password pattern, and is fully extendable with social authentication like Gmail, Facebook, and more.

Time and again on new Django projects I found myself wanting these same basic configuration options yet I’m not aware of an open-source project providing them. The leading Django starter framework is cookiecutter-django and DjangoX is heavily by its example. I learned a lot about Django from reading through the source code. However I often found cookiecutter to be too much for my own personal needs.

There is a temptation for me to continue adding features to DjangoX such as integration with PostgreSQL/Docker, environment variables, third-party packages like django-debug-toolbar and django-extensions, admin hardening, and more. But I want the project to remain accessible to newcomers and flexible enough to support any number of custom configurations beyond what I consider the absolute essentials for any new project.

So here it is: DjangoX. I hope the project demonstrates best practices to newcomers and saves everyone a lot of time. After all, the whole point of Django and other packages is to let developers focus on new and exciting features, not constantly reinvent the wheel.

Interested in learning more Django? I’ve written 3 books!