PyPI didn't allow the original name, so you'll find it as djinitx on PyPI
A CLI that scaffolds production-ready Django projects with DRF, JWT auth, API docs, and deployment configs - all through an interactive wizard. No more copy-pasting settings or wiring up apps by hand.
pipx install djinitx
djinit setup# Recommended - isolated environment
pipx install djinitx
# Or with uv
uv tool install djinitx
# Or with pip
pip install djinitxRequires Python 3.13+.
djinit setup
# or
dj setupThe wizard walks you through these choices:
- Project structure - Standard, Predefined (
apps/+api/), Unified (core/+apps/), or Single Folder - Project name and directory
- Database - PostgreSQL or MySQL;
DATABASE_URLor individual env vars - Frontend tools - Tailwind CSS, HTMX, and/or Vite (optional)
- Django apps - Name them; optionally nest under an
apps/package - CI/CD - GitHub Actions, GitLab CI, both, or none
When you're done, you have a fully configured Django project ready to run.
djinit app users products ordersCreates the apps, registers them in INSTALLED_APPS, and wires up URL includes.
djinit secret
djinit secret --count 5 --length 64Every project ships with:
- Split settings -
base.py,development.py,production.pywith sensible defaults - Django REST Framework - With JWT authentication (access + refresh tokens)
- API documentation - Swagger UI at
/docs/, ReDoc at/schema/ - CORS - Configured for local dev, locked down for production
- WhiteNoise - Static file serving, production-ready
- django-jazzmin - Modern admin interface
- Environment management -
.env.samplewithdjango-environ - Deployment configs -
Dockerfile,Procfile,runtime.txt - CI/CD pipelines - GitHub Actions and/or GitLab CI
- Task runner -
Justfilewith common commands .gitignore- Python + Node defaults
Optional add-ons when selected:
| Feature | Package | What's configured |
|---|---|---|
| Tailwind CSS | django-tailwind-cli | Settings, DaisyUI theme, Node install in Docker |
| HTMX | django-htmx | Installed app + HtmxMiddleware |
| Vite | django-vite | vite.config.ts, dev/prod mode toggles, CI build step |
just dev # Start dev server
just migrate # Run migrations
just test # Run tests
just lint # Lint with ruff
just format # Format with ruff
just vite # Start Vite dev server (if selected)
just dev-full # Django + Vite together (if selected)No just installed? These map directly to Django management commands.
myproject/
├── manage.py
├── myproject/ # Config module
│ ├── settings/ # base.py, development.py, production.py
│ ├── urls.py
│ └── wsgi.py
└── apps/ # Your apps (optional)
└── users/
myproject/
├── manage.py
├── config/ # Django config
│ ├── settings/
│ └── urls.py
├── apps/ # Business logic
│ ├── users/
│ └── core/
└── api/ # API routes
└── v1/
myproject/
├── manage.py
├── core/ # Django config
│ ├── settings/
│ └── urls.py
└── apps/ # Main application package
├── admin/
├── models/
├── serializers/
├── views/
├── urls/
└── api/
myproject/
├── manage.py
├── project/ # Configurable name
│ ├── settings/
│ ├── urls.py
│ ├── models/
│ ├── api/
│ └── wsgi.py
cp .env.sample .envSQLite works out of the box for development. Swap in your production database when you're ready.
| Package | Role |
|---|---|
| Django | Web framework |
| django-environ | Environment variable management |
| django-jazzmin | Admin UI |
| djangorestframework | REST API toolkit |
| djangorestframework-simplejwt | JWT authentication |
| drf-yasg | Swagger/OpenAPI docs |
| django-cors-headers | CORS handling |
| whitenoise | Static file serving |
| gunicorn | Production WSGI server |
| psycopg[binary] | PostgreSQL driver |
| django-tailwind-cli | Tailwind CSS (optional) |
| django-htmx | HTMX (optional) |
| django-vite | Vite bundler (optional) |
| Endpoint | Description |
|---|---|
/admin/ |
Django admin |
/token/ |
Obtain JWT pair |
/token/refresh/ |
Refresh access token |
/docs/ |
Swagger UI |
/schema/ |
ReDoc |
Contributions are welcome. Open an issue or submit a PR.
- Fork the repo
- Create a feature branch (
git checkout -b feature/whatever) - Make your changes and run
just test - Submit a pull request
Match the existing code style - ruff linting and formatting are enforced.
MIT © Sankalp Tharu