Choosing the Right Tools: A Modern Django Stack for CMS, E-commerce, and CRM

Building a suite of five interconnected, monetized websites requires a careful selection of robust, complementary tools. We’ve consolidated our technology preferences—focusing on avoiding manual JavaScript, leveraging utility-first CSS, and ensuring reliable backend automation—into a single, powerful architecture.

This post outlines the finalized stack and the chosen packages for integrating Content Management, E-commerce, and Customer Relationship Management capabilities across all projects.

Our Core Infrastructure Stack

This foundation ensures consistency and stability across all five sites:

| Category | Technology | Purpose | | :--- | :--- | :--- | | Backend/Core | Django | The web framework foundation. | | Database | PostgreSQL + PostGIS | Robust data storage and spatial capabilities. | | Task Queue | Celery + Redis | Asynchronous task processing (order processing, emails). | | Source Control | GitHub Repos | Version control and deployment source. | | Frontend/UI | Tailwind CSS + HTMX | Utility-first styling & JS-free dynamic UIs. | | DevOps/Quality | django-environ, django-allauth, Black | Settings, Auth flows, and code formatting standardization. |

Recommended Packages for Enhanced Functionality

To move beyond the basic foundation and monetize the sites, we are integrating leading packages in three key functional areas:

1. Content Management System (CMS): Wagtail

We chose Wagtail as the modern, developer-friendly CMS. Its intuitive editor interface for content creators and its highly flexible StreamField structure allow us to manage marketing pages, blogs, and other content seamlessly.

  • Alternative Considered: Django-CMS (less modern/flexible).

2. E-commerce: Django Oscar

Django Oscar is a robust, domain-driven e-commerce framework that handles complex business rules, stock management, and order fulfillment. It provides a comprehensive backend for shop operations.

  • Alternative Considered: Saleor (API-first, requiring complex frontend work).

3. Customer Relationship Management (CRM): Django-CRM

To manage leads, contacts, and sales processes generated by the websites, we selected Django-CRM, an open-source solution built directly on the Django Admin site.

  • Why this fits: It integrates seamlessly with the existing Django environment and allows for custom data piping from Oscar orders and AllAuth registrations into a single customer view.

The Future Architecture

By adopting a phased approach—standardizing foundational tools first, then integrating the CMS, E-commerce, and CRM incrementally—we can build a powerful, unified platform across all five sites. This architecture maximizes flexibility, control, and monetization potential while staying within our preferred development stack constraints.