Tech / writing
June 3, 2026 · 1 min read
Shipping Django the way I like it
Every Django app I deploy follows the same shape — a wrapper directory holding the code, a sibling virtualenv, and a run/ folder with a gunicorn unix socket.
project/
├── run/ # gunicorn.sock
├── .venv/ # virtualenv
└── code/ # manage.py + settings
nginx talks to gunicorn over the socket — no TCP port juggling. Simple, repeatable, and it scales across every project on the box.