Django Reference Implementation

screenshot of Django Reference Implementation
django

A highly opinionated, production-ready, 12-factor boilerplate template for Django Projects.

Overview

The Django Reference Implementation serves as an exceptional template for anyone looking to build a production-ready SaaS application. Tailored for organizations that require multi-tenancy, user invitations, and robust authentication, it greatly simplifies the development process. This template is not only built upon solid patterns and conventions but also allows developers the flexibility to adapt and customize it according to their specific needs.

With user experience in mind, this implementation incorporates essential features that cover a variety of common use cases. Whether you're new to Django or a seasoned developer, this resource acts as both a guide and a foundation, making it easier to launch your project successfully.

Features

  • Organizations with Multi-tenancy: Manage organizations with fine-grained permissions, allowing for seamless collaboration and user control.
  • User Invitation System: A comprehensive lifecycle for invitations including email notifications, making onboarding secure and straightforward.
  • Modern Authentication: Integrated email verification, social logins, and multi-factor authentication for enhanced security via django-allauth.
  • Asynchronous Task Processing: A simple worker pattern utilizing PostgreSQL, eliminating the need for complex systems like Celery or Redis.
  • Docker-based Development: Ensures a consistent development environment through Docker Compose, facilitating easier setup.
  • Production Ready: Optimized for deployment on platforms like Dokku, ensuring smooth transitions to production.
  • Strict Code Quality: Implements Ruff linting with strict settings, alongside pre-commit hooks for maintaining high code standards.
  • Comprehensive Testing: Full unit and integration tests that cover all essential functionality, preserving the quality of the codebase.
django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.