frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Django Keel – 10 Years of Django Best Practices in One Template

https://github.com/CuriousLearner/django-keel
18•sanyam-khurana•8h ago
After a decade of shipping Django to production, I got tired of solving the same setup problems on every new project.

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.

Comments

rbanffy•8h ago
This looks great - I have one concern with tools like this - what is the update flow when the template is updated?

This 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?

sanyam-khurana•7h ago
Great question because this has haunted me for over 10 years with cookiecutter. Most of the time I was copy-pasting newer features from running projects back into the template, and then copy-pasting in other running projects.

But Keel is based on copier which has a "pull" based approach. It means unlike cookiecutter where you generate project from template once, you can run `copier update` to update your project with the latest addition to the template. (It takes care of merging based on the initial config that you selected).

It's just running one command `copier update`. Docs here: https://django-keel.readthedocs.io/en/latest/?h=copier+updat...

You don't need to fork it unless you want to make some improvements or build upon the base template itself.

rbanffy•7h ago
The fork approach came up at work - because all projects have a lot of boilerplate in common (Terraform, K8s configs, secrets, etc) that can receive improvements upstream from the ops team and it'd be nice if the improvements were easy to apply.

The `copier` thing is nice. I'll sure try it on my next Django project.

sanyam-khurana•7h ago
Definitely, if you find anything that can be improved (even if "docs are not super-clear here), please feel free to raise a PR or report it as an issue.
mahmoudhossam•4h ago
Cruft solves exactly this problem https://cruft.github.io/cruft/
stevesimmons•4h ago
As someone who up to now has mainly watched Django from the sidelines, as it were, this looks great.

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.

sanyam-khurana•4h ago
Python 3.14 is there in the repo, though not added in the docs since I haven't tested it with all the infra stuff. The idea is to keep it updated to at the least previous 2 versions of Python/Django at all times so that it's easier for people to keep their projects updated.
rick1290•4h ago
looks great
blorenz•2h ago
15 years of Django for me personally. I use it now in my SaaS as a data backend with Strawberry GraphQL and lean heavily in on the admin. My frontend is React Router 7 framework mode. I’m going to be checking into Keel for my new toy projects. I wish it would use ty but easy enough to add myself.
sanyam-khurana•2h ago
Interesting! I've loved Strawberry GraphQL.

If you end up adding anything, you may also choose to give back to the template so that others can use it.

I do not understand what you meant by "ty", though?

patrick91•1h ago
I think it's ty the typechecker :D https://docs.astral.sh/ty/
blorenz•1h ago
Ty is the typechecker by Astral. https://docs.astral.sh/ty/.

Reviewing the dependencies in the jinja file -- how difficult is it to keep these up to date? I see Django Debug Toolbar is still ^4.3.0.

tmarice•2h ago
Looks great, looking forward to trying it.

Interesting that you included Temporal for background task processing — did you ever use it in production in a Django project instead of Celery?

sanyam-khurana•2h ago
Quite honestly, I haven't. I've been playing with temporal, and since it's picking up pace, I thought to have an option to have Temporal in place of celery.
ekinertac•2h ago
encountered this post in reddit maybe an hour ago. the comment sections are very different. i'm gonna stick with HN for sure.

good project though. using copier instead of cookiecutter is a good choice.

sanyam-khurana•1h ago
It was all great on Reddit, though until some folks decided to downvote for no apparent reason and then deleted their accounts.

I've chosen copier because of all the pain I've gone through for years just to keep my template and projects running in parallel updated.

GD&T Training

https://www.excedify.com/courses/gdt-training-certification
1•greglock•44s ago•0 comments

Engineering LaCAM*: Towards Real-Time, Large-Scale, and Near-Optimal MAPF

https://kei18.github.io/lacam3/
1•Stevvo•56s ago•0 comments

Ask HN: How do you managing staging database content?

1•crummy•1m ago•0 comments

Atlas playing through the Written Realms introduction

https://twitter.com/teebesz/status/1980746247482012025
1•teebes•4m ago•1 comments

The bot keeping humans out of dangerous silos

https://thehustle.co/news/the-bot-keeping-humans-out-of-dangerous-silos
1•rmason•5m ago•0 comments

Aposematism

https://en.wikipedia.org/wiki/Aposematism
1•nomilk•9m ago•0 comments

B.C. gov't proposes new power rules for AI, data centres

https://www.cbc.ca/news/canada/british-columbia/bc-ai-power-centres-9.6946054
1•Tiktaalik•9m ago•0 comments

A simple way to send emails using Docker and bash

https://adamfallon.com/send_email_simply.html
1•AJRF•11m ago•0 comments

IP over Avian Carriers NBN Proposal

https://www.accc.gov.au/by-industry/telecommunications-and-internet/national-broadband-network-nb...
1•coolcoder613•11m ago•0 comments

Mosquitoes found in Iceland for first time as climate crisis warms country

https://www.theguardian.com/environment/2025/oct/21/mosquitoes-found-iceland-first-time-climate-c...
3•bookofjoe•11m ago•0 comments

Open Source VDI

https://www.infinibay.net
2•aborek•12m ago•0 comments

Multimodal AI startup Fal.ai raised at $4B+ valuation

https://techcrunch.com/2025/10/21/sources-multimodal-ai-startup-fal-ai-already-raised-at-4b-valua...
1•amrrs•13m ago•0 comments

Donor Kidney Reprogrammed to Universal Type O

https://www.medscape.com/viewarticle/first-report-donor-kidney-reprogrammed-universal-type-o-2025...
1•wjb3•14m ago•1 comments

Expanding forest research with terrestrial Lidar technology

https://www.nature.com/articles/s41467-025-63946-6
1•PaulHoule•16m ago•0 comments

Grasshopper Is a Way to Play

https://addons.mozilla.org/en-US/firefox/addon/grasshopper-urls/
1•Toby1VC•16m ago•1 comments

Is there anything like Searchcord still around?

1•URLx64•16m ago•0 comments

Tea Alp

1•tuckerstepka•18m ago•0 comments

Instant coffee just beat drip

https://www.theguardian.com/global/2025/oct/10/instant-coffee-just-beat-drip-we-were-stunned-too
1•sharjeelsayed•19m ago•0 comments

Measuring the Impact of Early-2025 AI on Experienced Developer Productivity

https://arxiv.org/abs/2507.09089
2•stefap2•19m ago•2 comments

Keanu Codes

https://www.keanu.codes/
1•ColinWright•21m ago•0 comments

African e-mobility company (Spiro) to raise $100M

https://www.ft.com/content/b8a4995d-0f65-444e-94ce-5d7d90ab8f1f
1•alephnerd•23m ago•0 comments

Apple Watch's hypertension alert misses half cases, but may boost treatment

https://www.statnews.com/2025/09/23/apple-hypertension-app-benefits-despite-limitations/
1•brandonb•24m ago•0 comments

Career Snakes and Ladders

https://kevquirk.com/blog/career-snakes-ladders/
4•jethronethro•26m ago•0 comments

Lottery-fication of Everything: 0 day options, perps, parlays are now mainstream

https://www.dopaminemarkets.com/p/the-lottery-fication-of-everything
3•_1729•26m ago•0 comments

Useful bias manipulation re: LLM – the stochastic parrot speaks

https://gist.github.com/gladiatr72/d73b2dbd3b670b9d3cff29cdf2ee369d
1•gladiatr72•27m ago•1 comments

rlsw – Raylib software OpenGL renderer in less than 5k LOC

https://github.com/raysan5/raylib/blob/master/src/external/rlsw.h
11•fschuett•32m ago•0 comments

Tidy Up Your Data

https://yakirhavin.com/blog/tidy-up-your-data/
1•yhavin•32m ago•0 comments

Show HN: I use ChatGPT these days to develop new features quickly

https://chatgpt.com/share/68f7f17f-022c-800a-8a75-814847ffe87d
1•EGreg•33m ago•1 comments

We resolve a $1000 Erdős problem, with a Lean proof vibe coded using ChatGPT

https://borisalexeev.com/papers/erdos707.html
4•mathfan•34m ago•0 comments

Using AI and automation to migrate between instruction sets

https://cloud.google.com/blog/topics/systems/using-ai-and-automation-to-migrate-between-instructi...
1•tanelpoder•36m ago•0 comments