Skip to main content

The fast, modern Django project generator. Zero config, sensible defaults.

Project description

⚡ djforge

The fast, modern Django project generator. Zero config. Sensible defaults.

pipx run djforge new myapp

Why djforge?

cookiecutter-django is powerful but heavy — it takes minutes to fill out, generates files you'll never use, and requires installing cookiecutter first.

djforge takes 30 seconds.

djforge new myapp          # interactive TUI
djforge new myapp --yes    # zero prompts, full defaults
djforge new myapp --preset api      # pure REST API stack
djforge new myapp --preset minimal  # SQLite, no Docker

Install

# Recommended (no venv needed, globally available)
pipx install djforge

# Or plain pip
pip install djforge

Usage

Interactive mode (default)

$ djforge new myshop

⚡ djforge — fast Django project generator

  Project name:      myshop
  Short description: A Django project.
  Database:          ▸ PostgreSQL   SQLite
  Cache:             ▸ Redis        LocMem   None
  Auth:              ▸ Session      JWT      Both
  Frontend:          ▸ None         HTMX     HTMX+Tailwind   React
  Include:           [✓] Celery  [✓] Docker  [✓] DRF  [✓] Sentry ...

✅ myshop created!

  cd myshop
  make install && make migrate && make dev

Non-interactive

# Accept all defaults
djforge new myapp --yes

# Use a preset
djforge new myapp --preset api
djforge new myapp --preset fullstack
djforge new myapp --preset minimal

# Custom output directory
djforge new myapp --output ~/projects

# With virtualenv creation
djforge new myapp --yes --venv

# Skip git init
djforge new myapp --yes --no-git

List presets

djforge list-presets
Preset Database Cache Auth Celery Docker
minimal SQLite locmem session
api PostgreSQL Redis JWT
fullstack PostgreSQL Redis session

What you get

myapp/
├── manage.py
├── Makefile                    ← make dev / test / migrate / lint
├── Dockerfile                  ← multi-stage, non-root
├── docker-compose.yml          ← web + postgres + redis + celery
├── .env / .env.example
├── pyproject.toml              ← black + ruff + pytest config
├── requirements/
│   ├── base.txt
│   ├── development.txt
│   └── production.txt
└── myapp/
    ├── settings/
    │   ├── base.py             ← django-environ, DRF, Celery, cache
    │   ├── development.py      ← debug toolbar, console email
    │   ├── production.py       ← HTTPS headers, Sentry
    │   └── test.py             ← in-memory SQLite, fast hashers
    ├── celery.py
    ├── urls.py                 ← admin + API v1 + Swagger
    └── apps/
        ├── core/               ← /api/v1/health/
        └── users/              ← custom User (email login) + /api/v1/users/me/

Included by default

Feature Details
Custom User model Email-based login, set before first migration
Split settings base / development / production / test
Security headers HSTS, secure cookies, SSL redirect (production)
DRF Django REST Framework + django-filter
OpenAPI drf-spectacular → /api/docs/ Swagger UI
Celery Async tasks + beat scheduler via Redis
Whitenoise Static files without nginx
Sentry Auto-init from SENTRY_DSN env var
Docker Multi-stage build, non-root user
pytest --reuse-db, coverage, factory-boy
Makefile make dev, make test, make lint, make format

Stack comparison

djforge cookiecutter-django
Time to first project ~10s 3–5 min
Config required Zero (--yes) Long questionnaire
Install required pipx run djforge pip install cookiecutter + clone
Jinja templates Yes Yes
Interactive TUI Yes (questionary) Text prompts
Presets Yes No
Django version 5.x 4.x + 5.x
Python version 3.11+ 3.10+

Development

git clone https://github.com/siyadhkc/djforge
cd djforge
pip install -e ".[dev]"
pytest

Project structure

djforge/
├── djforge/
│   ├── cli.py        ← typer CLI entry point
│   ├── config.py     ← ProjectConfig dataclass + presets
│   ├── renderer.py   ← Jinja2 template engine + file map
│   └── tui/
│       └── prompts.py  ← questionary interactive prompts
└── tests/
    └── test_core.py

Contributing

PRs welcome! Please open an issue first for large changes.

  1. Fork the repo
  2. Create a feature branch
  3. Add tests
  4. pytest && ruff check .
  5. Open a PR

License

MIT © djforge contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djforge-0.1.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djforge-0.1.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file djforge-0.1.0.tar.gz.

File metadata

  • Download URL: djforge-0.1.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.12.10 HTTPX/0.28.1

File hashes

Hashes for djforge-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c063344c6130b7f855d2a9264373ceb709216835a454b676e59ee8b2d61a0ff
MD5 c7ceaa21ea8f631d62d59789a16a5141
BLAKE2b-256 5f15ed6df851601888bf88cbc7d71b277186239015efa5d2aabd925bcf8857f2

See more details on using hashes here.

File details

Details for the file djforge-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: djforge-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.12.10 HTTPX/0.28.1

File hashes

Hashes for djforge-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b8ab17735746cda6900df35d0c093203bd9bf33a64218227359ce49084e8ebf
MD5 0a20077aa8741814cae3139d86030246
BLAKE2b-256 fad3f312da31f6fcb61249eb7800f14e7625fc0b64202a60c4ec76136e8ba408

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page