A configurable full-stack web application built with Django for creating SEO-optimized service websites for multiple appliance brands from a single reusable codebase.
Instead of building separate projects for every company, this platform dynamically renders complete brand-specific websites using configuration files while sharing the same backend, templates, and frontend components.
- Configuration-driven architecture
- Dynamic brand rendering
- Shared reusable templates
- Brand-specific themes and colors
- SEO metadata for every brand
- Responsive design
- Dynamic navigation menus
- Dynamic contact information
- Dynamic services and products
- Lightweight architecture (No database required)
- Easy onboarding of new brands
- Scalable codebase
- Python
- Django
- HTML5
- CSS3
- JavaScript
- Tailwind
The application follows a configuration-driven architecture.
Instead of creating a separate project for every client, each brand is defined inside its own configuration file.
Brand Configuration
│
▼
URL Routing
│
▼
Shared Django View
│
▼
Shared Templates
│
▼
Dynamic Website
Adding a new brand only requires:
- Creating a new configuration file
- Registering it inside the
BRANDSdictionary
No template duplication is required.
project/
├── brands/
│ ├── samsung.py
│ ├── lg.py
│ ├── bosch.py
│ ├── daewoo.py
│ ├── snowa.py
│ ├── himalia.py
│ └── ...
│
├── templates/
│
├── static/
│
├── views.py
│
└── urls.py
Each brand contains its own configuration object including:
- SEO metadata
- Theme colors
- Navigation
- Hero section
- Products
- Services
- Contact information
- Footer
- Testimonials
- Images
Example:
BRANDS = {
"samsung": samsung.BRAND,
"lg": lg.BRAND,
"bosch": bosch.BRAND,
}This makes the project easy to extend without modifying the application logic.
Each website is rendered dynamically from its configuration.
Every brand can have its own:
- Primary color
- Gradient
- Logo
- Hero image
- SEO title
- SEO description
- Keywords
- Products
- Services
- Contact information
- Navigation menu
- Footer
while using the exact same Django templates.
Every brand has its own SEO configuration including:
- Meta Title
- Meta Description
- Meta Keywords
This allows each generated website to be independently optimized for search engines.
Most service websites are built by duplicating the same templates over and over.
This project solves that problem by introducing a reusable configuration-based architecture where a single codebase can generate multiple fully customized websites.
Benefits include:
- Reduced maintenance cost
- Cleaner architecture
- Faster deployment
- Better scalability
- Easier customization
- Reusable components
Clone the repository
git clone https://github.com/AmirAliSheibani/multi-brand-service-platform.gitNavigate into the project
cd multi-brand-service-platformCreate a virtual environment
python -m venv venvActivate the virtual environment
Windows
venv\Scripts\activateLinux/macOS
source venv/bin/activateInstall dependencies
pip install -r requirements.txtRun the server
python manage.py runserverCreating a new website only requires:
- Create a new configuration file
brands/new_brand.py
-
Define the brand configuration
-
Register it
BRANDS["new-brand"] = new_brand.BRANDDone.
No HTML duplication.
No new views.
No new templates.
- Django Admin Panel
- CMS Support
- REST API
- Docker Support
- Redis Caching
- PostgreSQL Support
- Analytics Dashboard
- Multi-language Support
Developed by Amir Ali Sheibani
GitHub: https://github.com/AmirAliSheibani