djinit
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
Installation
# Recommended - isolated environment
pipx install djinitx
# Or with uv
uv tool install djinitx
# Or with pip
pip install djinitx
Requires Python 3.13+.
Usage
Create a project
djinit setup
# or
dj setup
The 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.
Add apps later
djinit app users products orders
Creates the apps, registers them in INSTALLED_APPS, and wires up URL includes.
Generate secret keys
djinit secret
djinit secret --count 5 --length 64
What You Get
Every 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 |
Development workflow
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.
Project Structures
Standard
myproject/
├── manage.py
├── myproject/ # Config module
│ ├── settings/ # base.py, development.py, production.py
│ ├── urls.py
│ └── wsgi.py
└── apps/ # Your apps (optional)
└── users/
Predefined
myproject/
├── manage.py
├── config/ # Django config
│ ├── settings/
│ └── urls.py
├── apps/ # Business logic
│ ├── users/
│ └── core/
└── api/ # API routes
└── v1/
Unified
myproject/
├── manage.py
├── core/ # Django config
│ ├── settings/
│ └── urls.py
└── apps/ # Main application package
├── admin/
├── models/
├── serializers/
├── views/
├── urls/
└── api/
Single Folder
myproject/
├── manage.py
├── project/ # Configurable name
│ ├── settings/
│ ├── urls.py
│ ├── models/
│ ├── api/
│ └── wsgi.py
Environment Setup
cp .env.sample .env
SQLite works out of the box for development. Swap in your production database when you're ready.
Packages
| 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) |
API Endpoints
| Endpoint | Description |
|---|---|
/admin/ |
Django admin |
/token/ |
Obtain JWT pair |
/token/refresh/ |
Refresh access token |
/docs/ |
Swagger UI |
/schema/ |
ReDoc |
Contributing
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.
License
MIT © Sankalp Tharu
Metadata
Release files for djinitx 0.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| djinitx-0.3.7.tar.gz | 59.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| djinitx-0.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.2 kB
Release files / djinitx-0.3.7.tar.gz
| Download URL | djinitx-0.3.7.tar.gz |
|---|---|
| Size | 59.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04c86bbb6c8aeb078fb2364cb590c24a701e1aa51055b963e272e440939dad69
|
|
BLAKE2b-256 checksum How to use checksums |
926b7092ce21c4d6ddb833f4d31cc9eda7039fe54de32b22b826cc64f960bd34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / djinitx-0.3.7-py3-none-any.whl
| Download URL | djinitx-0.3.7-py3-none-any.whl |
|---|---|
| Size | 60.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6563b83c5cc808c06d005b60b19d04da672308d31aa25afc107ce65f9e1a9a9a
|
|
BLAKE2b-256 checksum How to use checksums |
52999d6e7f4c7422fb79ed51743ddb45260cc96af6647460e0af2e6d5fa36cb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|