Show HN: Django Keel – 10 Years of Django Best Practices in One Template (github.com)
Environment-first settings. Sensible auth defaults. Structured logging. CI from day zero. Pre-commit hooks. Docker. Security hardening. Every project meant two days of boilerplate before writing business logic.
So I built Django Keel: a production-ready Django starter that eliminates the yak-shaving. GitHub: https://github.com/CuriousLearner/django-keel
*What you get*:
- 12-factor config with environment-based secrets - Production-hardened security defaults - Pre-wired linting, formatting, testing, pre-commit hooks - CI workflow ready to go - Clear project structure that scales - Documentation with real trade-offs explained
*Background*:
I maintained a popular cookiecutter template for years. Django Keel is what that should've been from the start—battle-tested patterns without the accumulated cruft.
*Who it's for*:
Teams and solo builders shipping Django to production who want a strong baseline without tech debt. Feedback welcome on what works, what doesn't, and what's missing. Issues and PRs appreciated.
12 comments
[ 4.6 ms ] story [ 36.8 ms ] threadThis is a thing I've been struggling with - what is the best way of delivering such templates. Is a template generator such as this? Would it be best to copy a baseline repo with all options set? Should we fork that base repo and rebase when the baseline updates?
What's are your plans for supporting Django v6? (I appreciate it's just gone alpha now, and planned prod release is not for two months.)
Likewise for Python 3.14.
Interesting that you included Temporal for background task processing — did you ever use it in production in a Django project instead of Celery?
good project though. using copier instead of cookiecutter is a good choice.
Why would this ever be less than 100%?
I have also added temporal (though still testing it) since it's getting a lot popular these days.
Giving so many options, makes the boilerplate very fragile. I recently starter removing optional bits from my boilerplate, cause it became much harder to manage and made the generation very fragile.
Would love to hear your thoughts on this.