An interactive Django project factory with architecture selection, feature composition, and optional environment bootstrap.
Project description
Djactory
Djactory is an interactive Django project factory. It helps you choose an architecture, API style, authentication stack, feature modules, design patterns, and now an optional project environment bootstrap in one flow.
What it does
- Guides you through project creation with a Rich-powered wizard instead of a long flags list
- Generates Django projects for clean architecture, modular monolith, layered Django, and microservices-ready layouts
- Supports DRF, GraphQL, hybrid REST + GraphQL, and SSR delivery modes
- Composes authentication, background jobs, Redis, Channels, logging, Docker, CI, and more
- Recommends sensible defaults based on the project name and description
- Can optionally create
.venvor useuvand install the generated project dependencies immediately
Install
pip install Djactory
The installed commands are:
djactory
Legacy alias:
djangoforge
Quick start
Run the interactive wizard:
djactory
Or explicitly:
djactory new
Choose the architecture and features you want, then decide how Djactory should handle the environment:
Skip environment bootstrappython -m venvuv
If you choose python -m venv or uv, Djactory can also install the generated project's dependencies automatically.
Example flow
Project name: Acme Booking
Description: Multi-tenant booking platform for hotels
Architecture: Modular Monolith
API: Django REST Framework
Authentication: JWT
Frontend: Next.js ready
Features: Redis, Celery, Docker, CI/CD
Patterns: Service Layer, Repository, Unit of Work
Environment: python -m venv
Install dependencies now: yes
That produces a Django project with a .venv, project dependencies installed, and a scaffold shaped for a SaaS-style booking backend.
Example generated tree
acme-booking/
├── .env.example
├── Dockerfile
├── README.md
├── manage.py
├── pyproject.toml
└── src/
└── acme_booking/
├── api/
├── apps/
│ ├── core/
│ └── users/
├── config/
│ └── settings/
└── shared/
Typical commands
Create a new project in the current directory:
djactory
Create a new project in a specific folder:
djactory new --output-dir ~/workspaces
Check the installed version:
djactory --version
Generated project setup
If you skip bootstrap, the generated project still contains everything needed to start manually:
cd your-project
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
python manage.py migrate
python manage.py runserver
If you choose uv, install it first from the official installer and let Djactory run the environment creation and dependency sync for you.
Development
python3 -m pip install -e ".[dev]"
python3 -m unittest discover -s tests -v
Packaging
Build distributions locally:
python3 -m pip install -e ".[publish]"
python3 -m build
python3 -m twine check dist/*
Publishing notes are in PUBLISHING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file djactory-0.1.0.tar.gz.
File metadata
- Download URL: djactory-0.1.0.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
630abc470d42a3f9ea63db6bc566706b8d2bd380a09350cd9bac01e9b2c8eba0
|
|
| MD5 |
62a0ce1ba273ef5ad60ee6bf4070601e
|
|
| BLAKE2b-256 |
ce0acfcd988c5d462d13d3c3323a8c8637ed5d7423b2b6c82eec1b0020b7018a
|
File details
Details for the file djactory-0.1.0-py3-none-any.whl.
File metadata
- Download URL: djactory-0.1.0-py3-none-any.whl
- Upload date:
- Size: 81.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
841db5917852026432809d8bce4ceb51f4af9b0dd68630dc9e3e961ee660e0d8
|
|
| MD5 |
3e5cf00a95843d53431af7e83fd062f7
|
|
| BLAKE2b-256 |
8c562e77b3919f0c215b685658ebc4f0ec703f285ebd1e78ab979be7f7fc0997
|