Skip to main content

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 .venv or use uv and 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 bootstrap
  • python -m venv
  • uv

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.

Metadata

Release files for Djactory 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Djactory 0.1.0
File Size Uploaded
djactory-0.1.0.tar.gz 45.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Djactory 0.1.0
File Interpreter ABI Platform
djactory-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 126.9 kB

Release files / djactory-0.1.0.tar.gz

Download URL djactory-0.1.0.tar.gz
Size 45.6 kB
Tags Source
SHA-256 checksum
How to use checksums
630abc470d42a3f9ea63db6bc566706b8d2bd380a09350cd9bac01e9b2c8eba0
BLAKE2b-256 checksum
How to use checksums
ce0acfcd988c5d462d13d3c3323a8c8637ed5d7423b2b6c82eec1b0020b7018a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / djactory-0.1.0-py3-none-any.whl

Download URL djactory-0.1.0-py3-none-any.whl
Size 81.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
841db5917852026432809d8bce4ceb51f4af9b0dd68630dc9e3e961ee660e0d8
BLAKE2b-256 checksum
How to use checksums
8c562e77b3919f0c215b685658ebc4f0ec703f285ebd1e78ab979be7f7fc0997
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page