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.

Looking for a way to go from beginner to intermediate Django developer? Check out my book Django for Beginners.