{"slug": "django", "name": "Django", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "A batteries-included Python web framework for building database-backed web applications.", "recommenders": 38, "commenters": 66, "warners": 7, "score": 33.31, "rising": 3.49, "first": "2025-11-03", "latest": "2026-10-21", "why": "Loved for its batteries-included ORM, admin and authentication and for shipping CRUD web apps quickly with little upkeep.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 41, "neutral": 22, "compare": 1, "warn": 7}, "spark": [1, 5, 4, 2, 2, 5, 1, 4, 5, 6, 3, 3], "listed": true, "loved": ["Batteries included", "Admin interface"], "caveat": "Performance", "short_quote": "Django is pretty nice, the changes between versions are small and can be managed by a human.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://www.djangoproject.com/", "pricing": "open source", "aliases": ["Django"], "verdict": [{"text": "Loved for its batteries-included ORM, admin and authentication", "cites": [{"id": 788746368, "item_id": 49296648, "url": "https://news.ycombinator.com/item?id=49296648", "by": "7bit", "date": "2026-08-14", "stance": "recommend", "quote": "I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages.", "excerpt": "I love Svelte and SvelteKit. But I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages. Nothing in the JS ecosystem comes close to it and using third party modules always feels hacky and they pull in a thousand other dependencies. I wish SvelteKit would become batteries-included, but that's not the direction they have in mind -- which is totally fair. It ", "context": "", "use_case": "web backend with ORM and admin", "switched_from": "", "story": "The SvelteKit 3 Release Candidate is here"}, {"id": 754497152, "item_id": 47156072, "url": "https://news.ycombinator.com/item?id=47156072", "by": "blorenz", "date": "2026-02-25", "stance": "recommend", "quote": "The Django admin is a core reason why I still choose Django over other solutions.", "excerpt": "I love the sentiment and ambition in this! The Django admin is a core reason why I still choose Django over other solutions. I tell my team that the Django admin CRUD is our backstop when we encounter issues in our frontend UI. Thank you for tooling it out more!", "context": "leads a team", "use_case": "web apps, admin CRUD", "switched_from": "", "story": "Show HN: Django Control Room \u2013 All Your Tools Inside the Django Admin"}, {"id": 797570321, "item_id": 49848145, "url": "https://news.ycombinator.com/item?id=49848145", "by": "dysoco", "date": "2026-09-25", "stance": "recommend", "quote": "something as batteries-included and expressive like Rails or Django", "excerpt": "But they fill different niches, there's no way I'm going to choose Rust+Axum as much as I love Rust for an ecommerce/CRUD vs something as batteries-included and expressive like Rails or Django.", "context": "", "use_case": "ecommerce/CRUD apps", "switched_from": "", "story": "What About Rails?"}]}, {"text": " and for shipping CRUD web apps quickly with little upkeep.", "cites": [{"id": 775712032, "item_id": 48482002, "url": "https://news.ycombinator.com/item?id=48482002", "by": "acdha", "date": "2026-06-10", "stance": "recommend", "quote": "if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance", "excerpt": "I used to think that was true but I now think it\u2019s only true for very interaction-heavy apps: if you have hundreds of interactions on a page over many minutes, using an SPA is amortized across a lot of time, but if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance and accessibility work.", "context": "", "use_case": "web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 775684544, "item_id": 48480284, "url": "https://news.ycombinator.com/item?id=48480284", "by": "kstrauser", "date": "2026-06-10", "stance": "recommend", "quote": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference", "excerpt": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference, other than that they'd be many times more responsive on slower devices. \"Old\" SSR apps are mature, not obsolete. It's ridiculous when they're not considered even when they'd be the right tool for the job. I wouldn't try to clone Google Docs in Django, but something like Linear could 100% be modeled as a CRUD app with new page loads ", "context": "", "use_case": "server-rendered web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 802802736, "item_id": 50175171, "url": "https://news.ycombinator.com/item?id=50175171", "by": "0xbadcafebee", "date": "2026-10-21", "stance": "recommend", "quote": "most any Python programmer can reliably churn out a Django app as a Microservice and be fairly sure it won't be that hard to make", "excerpt": "> The full benchmark is hard in a way that matters to me: the agents get the main behavior right much more often than they keep all tested behavior working as requirements change So, it's like... software development? 90% of bugs come from unintended consequences of changes after the fact. There's a couple decades of design lessons people had to learn to keep this number low. The agents don't follow those lessons. Go", "context": "", "use_case": "web apps with structure", "switched_from": "", "story": "SlopCodeBench 10/2026 \u2013 Opus 5.5, Astra wins overall, xhigh considered harmful"}]}, {"text": " The most common complaint is that it is slow and memory-hungry,", "cites": [{"id": 795985408, "item_id": 49749088, "url": "https://news.ycombinator.com/item?id=49749088", "by": "biglost", "date": "2026-09-18", "stance": "warn", "quote": "Django is slow, and the filters and custom shit to hit db on the template makes it slower.", "excerpt": "I love Python,i have been writting Python since 2.2 era, Is great. Bit it's slow as hell, Django is slow, and the filters and custom shit to hit db on the template makes it slower. The parameters styles are too many and now instead of removing things they keep adding features, ok no Gil Is great but match? They should stop now. I hope i will never have to use custom cython modules again. I have even used Python in as", "context": "Python user since 2.2", "use_case": "web framework", "switched_from": "", "story": "Flet 1.0 \u2013 Build cross-platform apps in Python"}, {"id": 784895410, "item_id": 49055963, "url": "https://news.ycombinator.com/item?id=49055963", "by": "faangguyindia", "date": "2026-07-26", "stance": "warn", "quote": "I find python django wastes too much resources, just look at memory usage.", "excerpt": "I mostly use Go + SQLite for all the things I used to use Rails, JavaScript, or Python for. I find python django wastes too much resources, just look at memory usage. One of my web app backend (go) is serving approx 100 req/s right now and i look at pprof i see it's not bottlenecked by CPU but mostly IO and i love this. Writing concurrent code in Go is easy, the code i wrote 10yrs ago still compiles with no issue! Th", "context": "", "use_case": "web backend", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 787123840, "item_id": 49195240, "url": "https://news.ycombinator.com/item?id=49195240", "by": "fmind-dev", "date": "2026-08-06", "stance": "warn", "quote": "I'd love Django, if they had a better async story", "excerpt": "I'd love Django, if they had a better async story ... I used it for a recent project. While the framework is overall amazing, I had to switch to Go for better performance and easier async support.", "context": "", "use_case": "web project", "switched_from": "", "story": "What I love about Django"}]}, {"text": " with weak async support also noted.", "cites": [{"id": 787123840, "item_id": 49195240, "url": "https://news.ycombinator.com/item?id=49195240", "by": "fmind-dev", "date": "2026-08-06", "stance": "warn", "quote": "I'd love Django, if they had a better async story", "excerpt": "I'd love Django, if they had a better async story ... I used it for a recent project. While the framework is overall amazing, I had to switch to Go for better performance and easier async support.", "context": "", "use_case": "web project", "switched_from": "", "story": "What I love about Django"}, {"id": 732824928, "item_id": 45801558, "url": "https://news.ycombinator.com/item?id=45801558", "by": "Alir3z4", "date": "2025-11-03", "stance": "recommend", "quote": "However, I love Django and Python in general.", "excerpt": "Async and Django don't mix well and I honestly see the whole Django Async as wasted resources, all those \"a\" prefixed functions etc. To be honest, I never liked the way async is done in python at all. However, I love Django and Python in general. When I need \"async\" in a http cycle flow, I use celery and run it in background. If client side needs to be updated about the state of the background task, the best is to se", "context": "", "use_case": "web backend", "switched_from": "", "story": "Why we migrated from Python to Node.js"}]}], "praise": [{"label": "Batteries included", "summary": "Commenters value how much comes built in, sparing them from rebuilding fragile boilerplate.", "quotes": [{"id": 788746368, "item_id": 49296648, "url": "https://news.ycombinator.com/item?id=49296648", "by": "7bit", "date": "2026-08-14", "stance": "recommend", "quote": "I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages.", "excerpt": "I love Svelte and SvelteKit. But I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages. Nothing in the JS ecosystem comes close to it and using third party modules always feels hacky and they pull in a thousand other dependencies. I wish SvelteKit would become batteries-included, but that's not the direction they have in mind -- which is totally fair. It ", "context": "", "use_case": "web backend with ORM and admin", "switched_from": "", "story": "The SvelteKit 3 Release Candidate is here"}, {"id": 798190224, "item_id": 49886889, "url": "https://news.ycombinator.com/item?id=49886889", "by": "dgroshev", "date": "2026-09-29", "stance": "recommend", "quote": "when things come with Django, there's no need to maintain or worry about subtle yet crucial bugs.", "excerpt": "Fragile boilerplate. I love \"Zero to Production in Rust\", but that's a pretty long book that recreates a fraction of what comes out of the box with Django. Also, when things come with Django, there's no need to maintain or worry about subtle yet crucial bugs.", "context": "", "use_case": "ecommerce/CRUD web apps", "switched_from": "", "story": "What About Rails?"}, {"id": 797570321, "item_id": 49848145, "url": "https://news.ycombinator.com/item?id=49848145", "by": "dysoco", "date": "2026-09-25", "stance": "recommend", "quote": "something as batteries-included and expressive like Rails or Django", "excerpt": "But they fill different niches, there's no way I'm going to choose Rust+Axum as much as I love Rust for an ecommerce/CRUD vs something as batteries-included and expressive like Rails or Django.", "context": "", "use_case": "ecommerce/CRUD apps", "switched_from": "", "story": "What About Rails?"}]}, {"label": "Admin interface", "summary": "The auto-generated admin is a main reason people keep choosing Django and use it as a backstop UI.", "quotes": [{"id": 754497152, "item_id": 47156072, "url": "https://news.ycombinator.com/item?id=47156072", "by": "blorenz", "date": "2026-02-25", "stance": "recommend", "quote": "The Django admin is a core reason why I still choose Django over other solutions.", "excerpt": "I love the sentiment and ambition in this! The Django admin is a core reason why I still choose Django over other solutions. I tell my team that the Django admin CRUD is our backstop when we encounter issues in our frontend UI. Thank you for tooling it out more!", "context": "leads a team", "use_case": "web apps, admin CRUD", "switched_from": "", "story": "Show HN: Django Control Room \u2013 All Your Tools Inside the Django Admin"}, {"id": 783266368, "item_id": 48954148, "url": "https://news.ycombinator.com/item?id=48954148", "by": "mamcx", "date": "2026-07-17", "stance": "recommend", "quote": "Django is the main thing I miss from python.", "excerpt": "This sound fantastic and Django is the main thing I miss from python. htmx+ tailwindcss is the one combo that is right and I use it so seeing is the direction give me hope. Some notes, I hope can be considered!: - The main thing is the auto admin, then `auth`, is great that the `auth` is mean to have a one-to-one connection for your own extensions - The main pain is that everything is tangled to the ORM and the auto-", "context": "", "use_case": "web framework", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 787110752, "item_id": 49194422, "url": "https://news.ycombinator.com/item?id=49194422", "by": "Klonoar", "date": "2026-08-06", "stance": "recommend", "quote": "Django is hands down one of my favorite frameworks ever created", "excerpt": "I feel sufficiently old after having read South in this article. Good god what a throwback. Django is hands down one of my favorite frameworks ever created, and the only one I still reach for in some contexts. For a lot of projects I use it to drive database migrations, and stand up an easy admin portal for others to use - then anything else is driven by an API layer written in (e.g) Rust. I haven't had to care about", "context": "", "use_case": "database migrations and admin portal", "switched_from": "", "story": "What I love about Django"}]}, {"label": "ORM and migrations", "summary": "Some use Django models and migrations even in Go, Java or Rust stacks.", "quotes": [{"id": 784895664, "item_id": 49055979, "url": "https://news.ycombinator.com/item?id=49055979", "by": "ranedk", "date": "2026-07-26", "stance": "recommend", "quote": "I still use Django for models and migration.", "excerpt": "I have been using Django since 0.95 and I haven't seen anything which is so flexible with amazing DSLs while also making it easy to understand the magic behind it. For the last 10 years, even in a Golang stack or Java stack, I still use Django for models and migration. I even have generators which generate Gorm (or other framework) DAO or Java hibernate classes using Django models. With LLMs, it becomes easier since ", "context": "using Django since 0.95", "use_case": "models and migrations", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 787110752, "item_id": 49194422, "url": "https://news.ycombinator.com/item?id=49194422", "by": "Klonoar", "date": "2026-08-06", "stance": "recommend", "quote": "Django is hands down one of my favorite frameworks ever created", "excerpt": "I feel sufficiently old after having read South in this article. Good god what a throwback. Django is hands down one of my favorite frameworks ever created, and the only one I still reach for in some contexts. For a lot of projects I use it to drive database migrations, and stand up an easy admin portal for others to use - then anything else is driven by an API layer written in (e.g) Rust. I haven't had to care about", "context": "", "use_case": "database migrations and admin portal", "switched_from": "", "story": "What I love about Django"}, {"id": 785007712, "item_id": 49062982, "url": "https://news.ycombinator.com/item?id=49062982", "by": "Izkata", "date": "2026-07-26", "stance": "recommend", "quote": "For us, it has absolutely been a major benefit.", "excerpt": "We have a distributed monolith that's 20-30 years old, that has various systems written in various different languages interacting with multiple interconnected databases. We're working on migrating all of it to python, using django models. The key thing in a system like this, that was kind of stumbled upon by previous devs who started the python migrations, is the database should be treated as its own independent uni", "context": "maintains a 20-30 year old distributed monolith", "use_case": "migrating legacy distributed monolith", "switched_from": "", "story": "Some more things about Django I've been enjoying"}]}, {"label": "Fast to build", "summary": "Simple Django apps are seen as quicker to build and cheaper to maintain than SPAs.", "quotes": [{"id": 775712032, "item_id": 48482002, "url": "https://news.ycombinator.com/item?id=48482002", "by": "acdha", "date": "2026-06-10", "stance": "recommend", "quote": "if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance", "excerpt": "I used to think that was true but I now think it\u2019s only true for very interaction-heavy apps: if you have hundreds of interactions on a page over many minutes, using an SPA is amortized across a lot of time, but if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance and accessibility work.", "context": "", "use_case": "web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 775684544, "item_id": 48480284, "url": "https://news.ycombinator.com/item?id=48480284", "by": "kstrauser", "date": "2026-06-10", "stance": "recommend", "quote": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference", "excerpt": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference, other than that they'd be many times more responsive on slower devices. \"Old\" SSR apps are mature, not obsolete. It's ridiculous when they're not considered even when they'd be the right tool for the job. I wouldn't try to clone Google Docs in Django, but something like Linear could 100% be modeled as a CRUD app with new page loads ", "context": "", "use_case": "server-rendered web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 787109488, "item_id": 49194343, "url": "https://news.ycombinator.com/item?id=49194343", "by": "0x4d4c", "date": "2026-08-06", "stance": "warn", "quote": "some non-standard requirements were really difficult to implement or get around", "excerpt": "I remember, when I used it for the very first time in commercial project. Client briefed me in the afternoon, the next day, before the noon, she got ugly app, but with fully working admin backend. She was sold. But I also remember, that some non-standard requirements were really difficult to implement or get around. Having that in mind, the next project was entirely in Pylons. All was good, until we were asked to add", "context": "", "use_case": "commercial web project", "switched_from": "", "story": "What I love about Django"}]}, {"label": "Readable conventions", "summary": "Its conventions make code quick to review, including code written by LLMs.", "quotes": [{"id": 764330400, "item_id": 47770650, "url": "https://news.ycombinator.com/item?id=47770650", "by": "jacktheturtle", "date": "2026-04-14", "stance": "recommend", "quote": "Django code is pretty easy to review quickly. LLMs are good at writing it.", "excerpt": "Nice. Love the idea behind this. I have been using Django for most of my vibe coded side projects just for the reasons stated in this thesis. Django code is pretty easy to review quickly. LLMs are good at writing it. Django is just old and bloated, so the fork is a good idea. Maybe I will use this for my next side project.", "context": "", "use_case": "vibe coded side projects", "switched_from": "", "story": "Show HN: Plain \u2013 The full-stack Python framework designed for humans and agents"}, {"id": 801359232, "item_id": 50084952, "url": "https://news.ycombinator.com/item?id=50084952", "by": "tmnvix", "date": "2026-10-14", "stance": "recommend", "quote": "You'll have to pry Django from my cold, dead hands.", "excerpt": "You'll have to pry Django from my cold, dead hands. Like others, I use AI to write code these days, but that makes it all the more important that I can make sense of it quickly. The conventions of a framework help with that. Also, the boat may be leaving, but I still have one foot on the shore. I'm holding on to my independence - even if I might be kidding myself and it turns out I'll be dependent on AI from here on ", "context": "", "use_case": "web development", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}, {"id": 750809713, "item_id": 46925607, "url": "https://news.ycombinator.com/item?id=46925607", "by": "woeirua", "date": "2026-02-07", "stance": "recommend", "quote": "wow would it be a waste of tokens and your projects surface area would be dwarfed by the complexity of just building your own alternative to Django", "excerpt": "I use coding agents almost exclusively now and I\u2019m going to say yes and no on this one. Yes, I think there\u2019s the potential to replace some frameworks that abstract away too many details and make things way too complicated for basic apps. A good example of this are ORMs like SqlAlchemy. Every time I use them I think to myself it would be easier to just write SQL myself, but it would be a tremendous amount of boilerpla", "context": "uses coding agents almost exclusively", "use_case": "web framework", "switched_from": "", "story": "Software Engineering Is Back"}]}, {"label": "Stable releases", "summary": "Users praise small, manageable changes between versions and good documentation.", "quotes": [{"id": 739449168, "item_id": 46215573, "url": "https://news.ycombinator.com/item?id=46215573", "by": "emzo", "date": "2025-12-10", "stance": "recommend", "quote": "I love how Django just keeps slowly improving at every release.", "excerpt": "I love how Django just keeps slowly improving at every release. 6.0 is especially cool, including lots of really useful new features. Who said dependable tech was dull - this is the way is should be done. Well done all who contribute.", "context": "", "use_case": "web development", "switched_from": "", "story": "Django: what\u2019s new in 6.0"}, {"id": 748742928, "item_id": 46796433, "url": "https://news.ycombinator.com/item?id=46796433", "by": "stuaxo", "date": "2026-01-28", "stance": "recommend", "quote": "Django is pretty nice, the changes between versions are small and can be managed by a human.", "excerpt": "Nice. As a mostly-django-dev for the last 15 years, who's been exposed to FastAPI and various ORMs again recently, I should get round to write a doc about some Django bits. Django is pretty nice, the changes between versions are small and can be managed by a human. Part of the reason that you can have the big ecosystem is that there is a central place to register settings and INSTALLED_APPS, middleware etc. That enab", "context": "Django dev for 15 years", "use_case": "web development", "switched_from": "", "story": "Notes on Starting to Use Django"}, {"id": 737809520, "item_id": 46113095, "url": "https://news.ycombinator.com/item?id=46113095", "by": "ErroneousBosh", "date": "2025-12-01", "stance": "recommend", "quote": "Django was really well-written, and had great documentation, and I could get going with it really quickly.", "excerpt": "Back in the olden days, maybe about 20 years ago, two web frameworks were really starting to change the way a lot of people thought about web development. Not the people at the company I worked for, sadly, which is why I went to work for someone else, but there you go. These were Django, and Ruby on Rails. I already knew Python, and Django was really well-written, and had great documentation, and I could get going wi", "context": "Python developer", "use_case": "web development", "switched_from": "", "story": "Response to \"Ruby Is Not a Serious Programming Language\""}]}], "caveats": [{"label": "Performance", "summary": "Several commenters call Django slow and wasteful of memory.", "quotes": [{"id": 795985408, "item_id": 49749088, "url": "https://news.ycombinator.com/item?id=49749088", "by": "biglost", "date": "2026-09-18", "stance": "warn", "quote": "Django is slow, and the filters and custom shit to hit db on the template makes it slower.", "excerpt": "I love Python,i have been writting Python since 2.2 era, Is great. Bit it's slow as hell, Django is slow, and the filters and custom shit to hit db on the template makes it slower. The parameters styles are too many and now instead of removing things they keep adding features, ok no Gil Is great but match? They should stop now. I hope i will never have to use custom cython modules again. I have even used Python in as", "context": "Python user since 2.2", "use_case": "web framework", "switched_from": "", "story": "Flet 1.0 \u2013 Build cross-platform apps in Python"}, {"id": 784895410, "item_id": 49055963, "url": "https://news.ycombinator.com/item?id=49055963", "by": "faangguyindia", "date": "2026-07-26", "stance": "warn", "quote": "I find python django wastes too much resources, just look at memory usage.", "excerpt": "I mostly use Go + SQLite for all the things I used to use Rails, JavaScript, or Python for. I find python django wastes too much resources, just look at memory usage. One of my web app backend (go) is serving approx 100 req/s right now and i look at pprof i see it's not bottlenecked by CPU but mostly IO and i love this. Writing concurrent code in Go is easy, the code i wrote 10yrs ago still compiles with no issue! Th", "context": "", "use_case": "web backend", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 787158592, "item_id": 49197412, "url": "https://news.ycombinator.com/item?id=49197412", "by": "ranger_danger", "date": "2026-08-06", "stance": "neutral", "quote": "It still selects all fields by default.", "excerpt": "It still selects all fields by default. Very often I have to use defer() or only() to get rid of expensive columns like blob/text that are rarely used and greatly hurt performance when grabbing them. Then it got to where I had to make a reflective function that I use like Model.objects.defer(*all_fields_except(Model, ['field1', 'field2'])), and then add another all_fields_except() for every select_related and prefetc", "context": "", "use_case": "ORM / web development", "switched_from": "", "story": "What I love about Django"}]}, {"label": "Async support", "summary": "Async is seen as a weak spot, pushing some users to Go or Celery.", "quotes": [{"id": 787123840, "item_id": 49195240, "url": "https://news.ycombinator.com/item?id=49195240", "by": "fmind-dev", "date": "2026-08-06", "stance": "warn", "quote": "I'd love Django, if they had a better async story", "excerpt": "I'd love Django, if they had a better async story ... I used it for a recent project. While the framework is overall amazing, I had to switch to Go for better performance and easier async support.", "context": "", "use_case": "web project", "switched_from": "", "story": "What I love about Django"}, {"id": 732824928, "item_id": 45801558, "url": "https://news.ycombinator.com/item?id=45801558", "by": "Alir3z4", "date": "2025-11-03", "stance": "recommend", "quote": "However, I love Django and Python in general.", "excerpt": "Async and Django don't mix well and I honestly see the whole Django Async as wasted resources, all those \"a\" prefixed functions etc. To be honest, I never liked the way async is done in python at all. However, I love Django and Python in general. When I need \"async\" in a http cycle flow, I use celery and run it in background. If client side needs to be updated about the state of the background task, the best is to se", "context": "", "use_case": "web backend", "switched_from": "", "story": "Why we migrated from Python to Node.js"}]}, {"label": "Size and bloat", "summary": "Some find the framework and its docs too large to keep in their heads.", "quotes": [{"id": 785076496, "item_id": 49067281, "url": "https://news.ycombinator.com/item?id=49067281", "by": "melodyogonna", "date": "2026-07-27", "stance": "warn", "quote": "I'm currently migrating a project from Django to Go because Django is too large.", "excerpt": "Django is nice, but I'm currently migrating a project from Django to Go because Django is too large. I would love to stay with it, but simply assimilating the docs has been a chore. The PDF is 3000 pages, and I love working with tools where all the parts can fit in my head.", "context": "", "use_case": "web framework", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 764330400, "item_id": 47770650, "url": "https://news.ycombinator.com/item?id=47770650", "by": "jacktheturtle", "date": "2026-04-14", "stance": "recommend", "quote": "Django code is pretty easy to review quickly. LLMs are good at writing it.", "excerpt": "Nice. Love the idea behind this. I have been using Django for most of my vibe coded side projects just for the reasons stated in this thesis. Django code is pretty easy to review quickly. LLMs are good at writing it. Django is just old and bloated, so the fork is a good idea. Maybe I will use this for my next side project.", "context": "", "use_case": "vibe coded side projects", "switched_from": "", "story": "Show HN: Plain \u2013 The full-stack Python framework designed for humans and agents"}]}, {"label": "Typing and structure", "summary": "Long-time users cite painful typing, a leaky ORM and bloated models.", "quotes": [{"id": 764051936, "item_id": 47753246, "url": "https://news.ycombinator.com/item?id=47753246", "by": "vanflymen", "date": "2026-04-13", "stance": "recommend", "quote": "I've been building in Django for a long time and I love the framework", "excerpt": "I've been building in Django for a long time and I love the framework, but some things have always bugged me: - Typing is exceptionally painful...and getting proper type safety across a Django project is a fight - the ORM leaks throughout your project: it's easy to chain ORM methods in a view, a serializer, a template tag, a Celery task, etc and N+1s end up being difficult to find - models become god objects: custom ", "context": "15 years of Django in production", "use_case": "web backends", "switched_from": "", "story": "Show HN: 15 yrs of Django in prod: patterns I keep using (agent skills)"}, {"id": 758753264, "item_id": 47422079, "url": "https://news.ycombinator.com/item?id=47422079", "by": "EdwardDiego", "date": "2026-03-17", "stance": "warn", "quote": "looking at you Django, don't be so dynamic your brains fall out", "excerpt": "Seeing as we're having a $LANG war, after 15 years in JVM land, I moved to a Python / Go shop, and fuck I miss Java. Not so much the language (although modern Java is pretty slick), but the stuff surrounding it. * No typosquatting issues because every package has a group id verified by real humans and DNS TXT records. * JMX as a standardized mechanism of exposing ways to interact with running code / expose metrics. (", "context": "Moved from JVM to a Python / Go shop after 15 years", "use_case": "web framework", "switched_from": "", "story": "Java 26 is here, and with it a solid foundation for the future"}]}, {"label": "Maintenance burden", "summary": "Upgrading older projects with many dependencies can take a lot of time.", "quotes": [{"id": 757564401, "item_id": 47347775, "url": "https://news.ycombinator.com/item?id=47347775", "by": "f311a", "date": "2026-03-12", "stance": "compare", "quote": "For Django, they can easily go above 100.", "excerpt": "I love the batteries that RoR or Django gives you, but then I also remember how much time it takes to maintain old projects. Updating a project that was started 5-6 years ago takes a lot of time. Part of that is managing dependencies. For Django, they can easily go above 100. Some of them have to be compiled with specific versions of system libraries. Even Docker does not save you from a lot of problems. Right now, I", "context": "", "use_case": "web apps", "switched_from": "", "story": "Returning to Rails in 2026"}]}, {"label": "Non-standard needs", "summary": "Unusual requirements can be hard to implement, and some features like Content Types are best avoided.", "quotes": [{"id": 787109488, "item_id": 49194343, "url": "https://news.ycombinator.com/item?id=49194343", "by": "0x4d4c", "date": "2026-08-06", "stance": "warn", "quote": "some non-standard requirements were really difficult to implement or get around", "excerpt": "I remember, when I used it for the very first time in commercial project. Client briefed me in the afternoon, the next day, before the noon, she got ugly app, but with fully working admin backend. She was sold. But I also remember, that some non-standard requirements were really difficult to implement or get around. Having that in mind, the next project was entirely in Pylons. All was good, until we were asked to add", "context": "", "use_case": "commercial web project", "switched_from": "", "story": "What I love about Django"}, {"id": 787131360, "item_id": 49195710, "url": "https://news.ycombinator.com/item?id=49195710", "by": "thraxil", "date": "2026-08-06", "stance": "recommend", "quote": "As someone who's used Django since 0.97 and loves it", "excerpt": "As someone who's used Django since 0.97 and loves it, Content Types are one of those features that I recommend avoiding. It looks amazing at first but you will eventually regret it.", "context": "long-time Django user", "use_case": "web framework", "switched_from": "", "story": "What I love about Django"}]}], "who": [{"by": "jdboyd", "context": "runs a $5 VPS", "url": "https://news.ycombinator.com/item?id=49990355", "date": "2026-10-07"}, {"by": "curioustinkerer", "context": "Python backend engineer, 7+ years", "url": "https://news.ycombinator.com/item?id=49989699", "date": "2026-10-07"}, {"by": "fluxmatix", "context": "professional software engineer", "url": "https://news.ycombinator.com/item?id=49774058", "date": "2026-09-20"}, {"by": "brainless", "context": "long-time software builder", "url": "https://news.ycombinator.com/item?id=49735737", "date": "2026-09-17"}, {"by": "robomartin", "context": "designed and built industrial test robotic cell", "url": "https://news.ycombinator.com/item?id=49369756", "date": "2026-08-19"}, {"by": "thraxil", "context": "long-time Django user", "url": "https://news.ycombinator.com/item?id=49195710", "date": "2026-08-06"}, {"by": "Izkata", "context": "maintains a 20-30 year old distributed monolith", "url": "https://news.ycombinator.com/item?id=49062982", "date": "2026-07-26"}, {"by": "ranedk", "context": "using Django since 0.95", "url": "https://news.ycombinator.com/item?id=49055979", "date": "2026-07-26"}, {"by": "Induane", "context": "maintains many small one-off apps", "url": "https://news.ycombinator.com/item?id=48504230", "date": "2026-06-12"}, {"by": "Genego", "context": "senior Django/Python engineer", "url": "https://news.ycombinator.com/item?id=47982014", "date": "2026-05-01"}, {"by": "dchuk", "context": "Rails developer", "url": "https://news.ycombinator.com/item?id=47773103", "date": "2026-04-14"}, {"by": "vanflymen", "context": "15 years of Django in production", "url": "https://news.ycombinator.com/item?id=47753246", "date": "2026-04-13"}], "tags": ["for CRUD web apps", "for Python developers", "for internal tools", "for HTMX server-rendered apps", "for AI-assisted coding"], "use_cases": ["web development", "web framework", "web apps", "web backend", "web framework templates", "web apps with structure"], "compared": [{"slug": "ruby-on-rails", "name": "Ruby on Rails", "co": 15, "switched_from": 0, "switched_to": 0}, {"slug": "react", "name": "React", "co": 7, "switched_from": 1, "switched_to": 0}, {"slug": "htmx", "name": "HTMX", "co": 9, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "nuxt", "name": "Nuxt", "co": 2, "switched_from": 0, "switched_to": 1}, {"slug": "celery", "name": "Celery", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "claude-code", "name": "Claude Code", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48997828", "title": "Some more things about Django I've been enjoying", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=49193673", "title": "What I love about Django", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=46210240", "title": "Django: what\u2019s new in 6.0", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=46153116", "title": "Django 6", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49839664", "title": "What About Rails?", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48952067", "title": "Topcoat: The full full-stack framework for Rust", "mentions": 2}], "sentiment_by_month": {"2025-11": {"recommend": 1, "neutral": 2}, "2025-12": {"recommend": 5, "neutral": 7}, "2026-01": {"recommend": 4, "neutral": 1}, "2026-02": {"recommend": 2}, "2026-03": {"neutral": 2, "compare": 1, "recommend": 2, "warn": 1}, "2026-04": {"recommend": 5, "neutral": 1}, "2026-05": {"recommend": 1}, "2026-06": {"neutral": 2, "recommend": 4}, "2026-07": {"neutral": 1, "recommend": 5, "warn": 3}, "2026-08": {"recommend": 6, "warn": 2, "neutral": 2}, "2026-09": {"neutral": 2, "warn": 1, "recommend": 3}, "2026-10": {"neutral": 2, "recommend": 3}}, "quotes": [{"id": 802802736, "item_id": 50175171, "url": "https://news.ycombinator.com/item?id=50175171", "by": "0xbadcafebee", "date": "2026-10-21", "stance": "recommend", "quote": "most any Python programmer can reliably churn out a Django app as a Microservice and be fairly sure it won't be that hard to make", "excerpt": "> The full benchmark is hard in a way that matters to me: the agents get the main behavior right much more often than they keep all tested behavior working as requirements change So, it's like... software development? 90% of bugs come from unintended consequences of changes after the fact. There's a couple decades of design lessons people had to learn to keep this number low. The agents don't follow those lessons. Go", "context": "", "use_case": "web apps with structure", "switched_from": "", "story": "SlopCodeBench 10/2026 \u2013 Opus 5.5, Astra wins overall, xhigh considered harmful"}, {"id": 801359232, "item_id": 50084952, "url": "https://news.ycombinator.com/item?id=50084952", "by": "tmnvix", "date": "2026-10-14", "stance": "recommend", "quote": "You'll have to pry Django from my cold, dead hands.", "excerpt": "You'll have to pry Django from my cold, dead hands. Like others, I use AI to write code these days, but that makes it all the more important that I can make sense of it quickly. The conventions of a framework help with that. Also, the boat may be leaving, but I still have one foot on the shore. I'm holding on to my independence - even if I might be kidding myself and it turns out I'll be dependent on AI from here on ", "context": "", "use_case": "web development", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}, {"id": 799897904, "item_id": 49993619, "url": "https://news.ycombinator.com/item?id=49993619", "by": "ipsod", "date": "2026-10-07", "stance": "recommend", "quote": "I used Django for my most-recent project, and don't regret that decision a bit.", "excerpt": "Same, for sure. I'm not actually sure I've come out ahead. I've probably wasted at least a year of work in each direction. In spite of my above-stated preference, I used Django for my most-recent project, and don't regret that decision a bit.", "context": "", "use_case": "web project framework", "switched_from": "", "story": "Forever junior: Skills AI can't develop for you"}, {"id": 799845687, "item_id": 49990355, "url": "https://news.ycombinator.com/item?id=49990355", "by": "jdboyd", "date": "2026-10-07", "stance": "neutral", "quote": "Run a django web application I wrote for my own use.", "excerpt": "Here are a few things I do: Host static content behind nginx Run filestash as a partial GoogleDrive replacement (I use it for sharing files with other people, like deliverables), files place on an S3 compatible object store. Run vaultwarder for myself and some family members. Run a container registry service backed by an s3 compatible object store. Run a django web application I wrote for my own use. However, it stor", "context": "runs a $5 VPS", "use_case": "personal web app", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}, {"id": 799835184, "item_id": 49989699, "url": "https://news.ycombinator.com/item?id=49989699", "by": "curioustinkerer", "date": "2026-10-07", "stance": "neutral", "quote": "Python, Django, FastAPI, PostgreSQL, Celery", "excerpt": "Location: Lucknow, India Remote: Yes Willing to relocate: No Technologies: Python, Django, FastAPI, PostgreSQL, Celery, LLM APIs (Gemini, Claude), agentic workflows, embeddings/clustering, GCP, Terraform R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1pulNpC8VJnV01pCzg0QRhgqOTazTWhk7/view Email: 5ifocyqgf@relay.firefox.com GitHub: https://github.com/abhiabhi94 Python backend engineer, 7+ years. Lately building LLM system", "context": "Python backend engineer, 7+ years", "use_case": "backend development", "switched_from": "", "story": "Ask HN: Who wants to be hired? (October 2026)"}, {"id": 798190224, "item_id": 49886889, "url": "https://news.ycombinator.com/item?id=49886889", "by": "dgroshev", "date": "2026-09-29", "stance": "recommend", "quote": "when things come with Django, there's no need to maintain or worry about subtle yet crucial bugs.", "excerpt": "Fragile boilerplate. I love \"Zero to Production in Rust\", but that's a pretty long book that recreates a fraction of what comes out of the box with Django. Also, when things come with Django, there's no need to maintain or worry about subtle yet crucial bugs.", "context": "", "use_case": "ecommerce/CRUD web apps", "switched_from": "", "story": "What About Rails?"}, {"id": 797570321, "item_id": 49848145, "url": "https://news.ycombinator.com/item?id=49848145", "by": "dysoco", "date": "2026-09-25", "stance": "recommend", "quote": "something as batteries-included and expressive like Rails or Django", "excerpt": "But they fill different niches, there's no way I'm going to choose Rust+Axum as much as I love Rust for an ecommerce/CRUD vs something as batteries-included and expressive like Rails or Django.", "context": "", "use_case": "ecommerce/CRUD apps", "switched_from": "", "story": "What About Rails?"}, {"id": 796384929, "item_id": 49774058, "url": "https://news.ycombinator.com/item?id=49774058", "by": "fluxmatix", "date": "2026-09-20", "stance": "recommend", "quote": "I figured I'd use my go-to, Django", "excerpt": "Hi all, I'm working on a bigger Python project that I'll release soon, and as part of it I found myself needing a documentation site. Most doc sites are served statically, but every time I fall for the siren song of a static site I end up regretting it the moment I want some dynamic behaviour. So I figured I'd use my go-to, Django, and serve a proper docs site with that. As we say in Dutch: \"Zo gezegd, zo gedaan\"; ro", "context": "professional software engineer", "use_case": "web framework for docs site", "switched_from": "", "story": "Drop-in Django app to serve a decent LLM-ready documentation site"}, {"id": 795985408, "item_id": 49749088, "url": "https://news.ycombinator.com/item?id=49749088", "by": "biglost", "date": "2026-09-18", "stance": "warn", "quote": "Django is slow, and the filters and custom shit to hit db on the template makes it slower.", "excerpt": "I love Python,i have been writting Python since 2.2 era, Is great. Bit it's slow as hell, Django is slow, and the filters and custom shit to hit db on the template makes it slower. The parameters styles are too many and now instead of removing things they keep adding features, ok no Gil Is great but match? They should stop now. I hope i will never have to use custom cython modules again. I have even used Python in as", "context": "Python user since 2.2", "use_case": "web framework", "switched_from": "", "story": "Flet 1.0 \u2013 Build cross-platform apps in Python"}, {"id": 795771793, "item_id": 49735737, "url": "https://news.ycombinator.com/item?id=49735737", "by": "brainless", "date": "2026-09-17", "stance": "neutral", "quote": "Then Python/Django for 10 years.", "excerpt": "I was learning Rust slowly when the LLM enabled coding became good enough. I switched from learning to full on building with Rust. I still learn high level concepts as needed but I will not be able to write Rust on my own at all. And that sounds scary but the way I got over the fear is by realizing there are many things that I do very well but I do not know their internals very well. Driving is an example. I barely u", "context": "long-time software builder", "use_case": "web development", "switched_from": "", "story": "Nvidia announces native GPU programming in Rust"}, {"id": 795186673, "item_id": 49699167, "url": "https://news.ycombinator.com/item?id=49699167", "by": "zelphirkalt", "date": "2026-09-14", "stance": "neutral", "quote": "a Django-based JS-free forum", "excerpt": "I am working on a Django-based JS-free forum[1] that I can self-host. Still need to work on some essential things, but the basic forum functionality is already there. [1]: https://codeberg.org/ZelphirKaltstahl/xiaolong-forum", "context": "", "use_case": "forum backend", "switched_from": "", "story": "Ask HN: What are you working on? (September 2026)"}, {"id": 791084176, "item_id": 49442761, "url": "https://news.ycombinator.com/item?id=49442761", "by": "jherskovic", "date": "2026-08-26", "stance": "recommend", "quote": "And Django is amazing.", "excerpt": "Python has some absolutely kick-ass libraries, even without C. It has Django, for those of us who like developing web apps but never could fall in love with Ruby on Rails. And Django is amazing. I've also yet to see a better language for writing quick ETL scripts and pipelines. Also, an 'I need a script for $SYSADMIN_TASK but I want to be able to read it later.' Anything dominated by external latencies (web, database", "context": "", "use_case": "web apps", "switched_from": "", "story": "Python's pre-declared constants are kinda weird"}, {"id": 789916097, "item_id": 49369756, "url": "https://news.ycombinator.com/item?id=49369756", "by": "robomartin", "date": "2026-08-19", "stance": "recommend", "quote": "Django's capabilities meant such things as multi-user login pages, access controls and remote monitoring were very easy.", "excerpt": "Years ago I used PostgreSQL under Django to drive an industrial test and inspection robotic cell (which I also designed and built) at a major technology company. It worked very well. PostgreSQL maintained machine state, path planning, sensor readings, faults, operator input, etc. I wanted to see how far I could push that toolset. It worked surprisingly well. Django's capabilities meant such things as multi-user login", "context": "designed and built industrial test robotic cell", "use_case": "robotic cell web interface", "switched_from": "", "story": "PostgreSQL for Everything"}, {"id": 788746368, "item_id": 49296648, "url": "https://news.ycombinator.com/item?id=49296648", "by": "7bit", "date": "2026-08-14", "stance": "recommend", "quote": "I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages.", "excerpt": "I love Svelte and SvelteKit. But I keep going back to the batteries-included Django simply for the ORM, the admin backend and authentication packages. Nothing in the JS ecosystem comes close to it and using third party modules always feels hacky and they pull in a thousand other dependencies. I wish SvelteKit would become batteries-included, but that's not the direction they have in mind -- which is totally fair. It ", "context": "", "use_case": "web backend with ORM and admin", "switched_from": "", "story": "The SvelteKit 3 Release Candidate is here"}, {"id": 788564048, "item_id": 49285253, "url": "https://news.ycombinator.com/item?id=49285253", "by": "kukkeliskuu", "date": "2026-08-13", "stance": "neutral", "quote": "As many of these projects, data is kind of central, I use Django.", "excerpt": "In many of my LLM projects, I have been using DSLs for all kinds of purposes. As many of these projects, data is kind of central, I use Django. So for these DSLs, hy (lisp combined with python) has been working quite well. I have not had trouble with Claude Code writing hy code.", "context": "", "use_case": "LLM projects with data", "switched_from": "", "story": "Why vibe code in Common Lisp?"}, {"id": 787158592, "item_id": 49197412, "url": "https://news.ycombinator.com/item?id=49197412", "by": "ranger_danger", "date": "2026-08-06", "stance": "neutral", "quote": "It still selects all fields by default.", "excerpt": "It still selects all fields by default. Very often I have to use defer() or only() to get rid of expensive columns like blob/text that are rarely used and greatly hurt performance when grabbing them. Then it got to where I had to make a reflective function that I use like Model.objects.defer(*all_fields_except(Model, ['field1', 'field2'])), and then add another all_fields_except() for every select_related and prefetc", "context": "", "use_case": "ORM / web development", "switched_from": "", "story": "What I love about Django"}, {"id": 787131360, "item_id": 49195710, "url": "https://news.ycombinator.com/item?id=49195710", "by": "thraxil", "date": "2026-08-06", "stance": "recommend", "quote": "As someone who's used Django since 0.97 and loves it", "excerpt": "As someone who's used Django since 0.97 and loves it, Content Types are one of those features that I recommend avoiding. It looks amazing at first but you will eventually regret it.", "context": "long-time Django user", "use_case": "web framework", "switched_from": "", "story": "What I love about Django"}, {"id": 787123840, "item_id": 49195240, "url": "https://news.ycombinator.com/item?id=49195240", "by": "fmind-dev", "date": "2026-08-06", "stance": "warn", "quote": "I'd love Django, if they had a better async story", "excerpt": "I'd love Django, if they had a better async story ... I used it for a recent project. While the framework is overall amazing, I had to switch to Go for better performance and easier async support.", "context": "", "use_case": "web project", "switched_from": "", "story": "What I love about Django"}, {"id": 787110752, "item_id": 49194422, "url": "https://news.ycombinator.com/item?id=49194422", "by": "Klonoar", "date": "2026-08-06", "stance": "recommend", "quote": "Django is hands down one of my favorite frameworks ever created", "excerpt": "I feel sufficiently old after having read South in this article. Good god what a throwback. Django is hands down one of my favorite frameworks ever created, and the only one I still reach for in some contexts. For a lot of projects I use it to drive database migrations, and stand up an easy admin portal for others to use - then anything else is driven by an API layer written in (e.g) Rust. I haven't had to care about", "context": "", "use_case": "database migrations and admin portal", "switched_from": "", "story": "What I love about Django"}, {"id": 787109488, "item_id": 49194343, "url": "https://news.ycombinator.com/item?id=49194343", "by": "0x4d4c", "date": "2026-08-06", "stance": "warn", "quote": "some non-standard requirements were really difficult to implement or get around", "excerpt": "I remember, when I used it for the very first time in commercial project. Client briefed me in the afternoon, the next day, before the noon, she got ugly app, but with fully working admin backend. She was sold. But I also remember, that some non-standard requirements were really difficult to implement or get around. Having that in mind, the next project was entirely in Pylons. All was good, until we were asked to add", "context": "", "use_case": "commercial web project", "switched_from": "", "story": "What I love about Django"}, {"id": 786750976, "item_id": 49171936, "url": "https://news.ycombinator.com/item?id=49171936", "by": "throw-the-towel", "date": "2026-08-04", "stance": "recommend", "quote": "I love Django's approach to configs: your config is just a plain old Python file with some constants.", "excerpt": "I can't understand for the love of me why our industry settled on env as The Way to store configuration. It's poorly discoverable, it's a shared namespace polluted by everyone and their `libdog`, it's stringly typed, etc. All of that just flies in the face of otherwise accepted dev wisdom. I love Django's approach to configs: your config is just a plain old Python file with some constants. As simple as possible, and ", "context": "", "use_case": "configuration", "switched_from": "", "story": "Where .env Went Wrong"}, {"id": 785076496, "item_id": 49067281, "url": "https://news.ycombinator.com/item?id=49067281", "by": "melodyogonna", "date": "2026-07-27", "stance": "warn", "quote": "I'm currently migrating a project from Django to Go because Django is too large.", "excerpt": "Django is nice, but I'm currently migrating a project from Django to Go because Django is too large. I would love to stay with it, but simply assimilating the docs has been a chore. The PDF is 3000 pages, and I love working with tools where all the parts can fit in my head.", "context": "", "use_case": "web framework", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 785041873, "item_id": 49065117, "url": "https://news.ycombinator.com/item?id=49065117", "by": "dnautics", "date": "2026-07-26", "stance": "warn", "quote": "automatic migrations terrifies me.", "excerpt": "automatic migrations terrifies me. i use elixir/ecto. just write a migration! besides, some times you might want more than one schema for a db table (e.g. one with minimal information, for menus, dropdowns etc, and one with full information for your full CRUD operations)", "context": "", "use_case": "database migrations", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 785015616, "item_id": 49063476, "url": "https://news.ycombinator.com/item?id=49063476", "by": "acdha", "date": "2026-07-26", "stance": "recommend", "quote": "I used to agree with this more strongly but over time decided the Django model was actually more effective", "excerpt": "> It's like hiding the kitchen knives because they might be misused. I used to agree with this more strongly but over time decided the Django model was actually more effective as your cue to ask whether you should have been writing a Python function instead and calling it (which has been super easy since something like 1.4 or so IIRC). Unless you have a small, very diligent development team it always seemed to end up", "context": "", "use_case": "web framework templates", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 785007712, "item_id": 49062982, "url": "https://news.ycombinator.com/item?id=49062982", "by": "Izkata", "date": "2026-07-26", "stance": "recommend", "quote": "For us, it has absolutely been a major benefit.", "excerpt": "We have a distributed monolith that's 20-30 years old, that has various systems written in various different languages interacting with multiple interconnected databases. We're working on migrating all of it to python, using django models. The key thing in a system like this, that was kind of stumbled upon by previous devs who started the python migrations, is the database should be treated as its own independent uni", "context": "maintains a 20-30 year old distributed monolith", "use_case": "migrating legacy distributed monolith", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 784895664, "item_id": 49055979, "url": "https://news.ycombinator.com/item?id=49055979", "by": "ranedk", "date": "2026-07-26", "stance": "recommend", "quote": "I still use Django for models and migration.", "excerpt": "I have been using Django since 0.95 and I haven't seen anything which is so flexible with amazing DSLs while also making it easy to understand the magic behind it. For the last 10 years, even in a Golang stack or Java stack, I still use Django for models and migration. I even have generators which generate Gorm (or other framework) DAO or Java hibernate classes using Django models. With LLMs, it becomes easier since ", "context": "using Django since 0.95", "use_case": "models and migrations", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 784895410, "item_id": 49055963, "url": "https://news.ycombinator.com/item?id=49055963", "by": "faangguyindia", "date": "2026-07-26", "stance": "warn", "quote": "I find python django wastes too much resources, just look at memory usage.", "excerpt": "I mostly use Go + SQLite for all the things I used to use Rails, JavaScript, or Python for. I find python django wastes too much resources, just look at memory usage. One of my web app backend (go) is serving approx 100 req/s right now and i look at pprof i see it's not bottlenecked by CPU but mostly IO and i love this. Writing concurrent code in Go is easy, the code i wrote 10yrs ago still compiles with no issue! Th", "context": "", "use_case": "web backend", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 783266368, "item_id": 48954148, "url": "https://news.ycombinator.com/item?id=48954148", "by": "mamcx", "date": "2026-07-17", "stance": "recommend", "quote": "Django is the main thing I miss from python.", "excerpt": "This sound fantastic and Django is the main thing I miss from python. htmx+ tailwindcss is the one combo that is right and I use it so seeing is the direction give me hope. Some notes, I hope can be considered!: - The main thing is the auto admin, then `auth`, is great that the `auth` is mean to have a one-to-one connection for your own extensions - The main pain is that everything is tangled to the ORM and the auto-", "context": "", "use_case": "web framework", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 783259008, "item_id": 48953688, "url": "https://news.ycombinator.com/item?id=48953688", "by": "jjice", "date": "2026-07-17", "stance": "recommend", "quote": "Django, Laravel, and Rails are very neat.", "excerpt": "Oh man I'd love a nice full stack framework in Rust! Django, Laravel, and Rails are very neat. I used to be a micro framework kind of guy, but having everything integrated is more and more appealing over the last few years. This would take a long time to get feature complete with the core of those big full stack frameworks, but I'm rooting for it! Getting to use the Rust type system with a full stack web framework so", "context": "", "use_case": "full stack web framework", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 780730561, "item_id": 48795660, "url": "https://news.ycombinator.com/item?id=48795660", "by": "teekert", "date": "2026-07-05", "stance": "neutral", "quote": "building a Django app that is all about the data model", "excerpt": "I like reading this, because I love focusing and getting stuff done and vibing with AI in the past has left me feeling exhausted and dirty, like I don't deserve the thing I build. (Btw I'm also an expert at procrastinating! I really need to get into the flow and that is hard but rewarding.) But recently I have been building a Django app that is all about the data model and with complicated RBAC, and I've been discuss", "context": "", "use_case": "web app development", "switched_from": "", "story": "People Who Will Thrive in the AI Age"}, {"id": 779472032, "item_id": 48717002, "url": "https://news.ycombinator.com/item?id=48717002", "by": "nicbou", "date": "2026-06-29", "stance": "recommend", "quote": "those run on a separate Django backend", "excerpt": "So do I, but those run on a separate Django backend. It's a lot easier to implement backend functionality in not-Wordpress", "context": "", "use_case": "website backend functionality", "switched_from": "", "story": "Ask HN: Is WordPress the best way to create new websites for beginner"}, {"id": 779434097, "item_id": 48714631, "url": "https://news.ycombinator.com/item?id=48714631", "by": "kristianp", "date": "2026-06-28", "stance": "recommend", "quote": "For web apps, Rails, Django, Laravel.", "excerpt": "Websites or web apps? For web apps, Rails, Django, Laravel. React is the \"standard\" client framework of the last number of years. Perhaps someone can give advice about those web techs.", "context": "", "use_case": "web apps", "switched_from": "", "story": "Ask HN: Is WordPress the best way to create new websites for beginner"}, {"id": 776067682, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "neutral", "quote": "Thanks to template engines (for me it's Django's, but Jinja or others are grand too)", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "templates and components", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 775712032, "item_id": 48482002, "url": "https://news.ycombinator.com/item?id=48482002", "by": "acdha", "date": "2026-06-10", "stance": "recommend", "quote": "if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance", "excerpt": "I used to think that was true but I now think it\u2019s only true for very interaction-heavy apps: if you have hundreds of interactions on a page over many minutes, using an SPA is amortized across a lot of time, but if it\u2019s something you could do with e.g. a simple Django app you\u2019ll not only be done faster but will spend an order of magnitude less time on maintenance and accessibility work.", "context": "", "use_case": "web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 775684544, "item_id": 48480284, "url": "https://news.ycombinator.com/item?id=48480284", "by": "kstrauser", "date": "2026-06-10", "stance": "recommend", "quote": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference", "excerpt": "90% of the SPAs I use could be Django/Rails/Flask apps with no noticeable difference, other than that they'd be many times more responsive on slower devices. \"Old\" SSR apps are mature, not obsolete. It's ridiculous when they're not considered even when they'd be the right tool for the job. I wouldn't try to clone Google Docs in Django, but something like Linear could 100% be modeled as a CRUD app with new page loads ", "context": "", "use_case": "server-rendered web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 774728578, "item_id": 48420536, "url": "https://news.ycombinator.com/item?id=48420536", "by": "ramshanker", "date": "2026-06-05", "stance": "neutral", "quote": "I ask ChatGPT to ingest the logs into a Django web application", "excerpt": "I can count 2: Dec 2025: We use a commercial 3D modeling software to build refinery. There was no license dashboard in this ancient piece of junk. Fortunately license server provided verbose live status report through a command line. I ask ChatGPT to ingest the logs into a Django web application and generate weekly/monthly/yearly usage dashboard, and It one shorted the whole Backend + Frontend in 4 to 5 shot. There w", "context": "", "use_case": "internal dashboard web app", "switched_from": "", "story": "What was your \"Oh Shit\" moment with GenAI?"}, {"id": 767712224, "item_id": 47982014, "url": "https://news.ycombinator.com/item?id=47982014", "by": "Genego", "date": "2026-05-01", "stance": "recommend", "quote": "Django has been my daily driver since 2018 \u2014 I've only worked with Django-native startups.", "excerpt": "SEEKING WORK | Senior Django/Python Engineer - Platform, Architecture, Ops, Applied AI Location: Thailand (UTC+7) Remote: Only Technologies: Django (daily driver since 2018), Python, PostgreSQL, Redis, Celery, HTMX, Tailwind, Docker, APIs, RAG/MCP Resume/CV: https://edwin.genego.io/about Email: edwin@genego.io Senior full-stack Django/Python engineer for founders and lean teams that need platform, product, architectu", "context": "senior Django/Python engineer", "use_case": "building web platforms and APIs", "switched_from": "", "story": "Ask HN: Who wants to be hired? (May 2026)"}, {"id": 767147088, "item_id": 47946693, "url": "https://news.ycombinator.com/item?id=47946693", "by": "parasmadan", "date": "2026-04-29", "stance": "recommend", "quote": "I still have a lot of good memories with Django.", "excerpt": "I still remember 3-4 years back I built my entire stack of my first startup using Django. There were two platforms, Flask and Django, and everyone at that time suggested I go with Django. I still have a lot of good memories with Django. If I go to my GitHub, there are like 20 different projects right now which were made using Django. Honestly, I kind of forgot the name because of the LLM rush and everything around, b", "context": "", "use_case": "startup web stack", "switched_from": "", "story": "Show HN: Django-Modern-Rest"}, {"id": 764369649, "item_id": 47773103, "url": "https://news.ycombinator.com/item?id=47773103", "by": "dchuk", "date": "2026-04-14", "stance": "recommend", "quote": "I appreciate the value of Django too", "excerpt": "Ignore all the hate in the comments here, anyone denying the direction of software development and it aggressively becoming agentic have their own reckonings to deal with\u2026 I love this concept. While I\u2019m a Rails guy myself, I appreciate the value of Django too, and an agent-optimized version of it makes sense. I feel like the next logical steps are this exact concept but in Go / Rust to get even more performance out o", "context": "Rails developer", "use_case": "", "switched_from": "", "story": "Show HN: Plain \u2013 The full-stack Python framework designed for humans and agents"}, {"id": 764330400, "item_id": 47770650, "url": "https://news.ycombinator.com/item?id=47770650", "by": "jacktheturtle", "date": "2026-04-14", "stance": "recommend", "quote": "Django code is pretty easy to review quickly. LLMs are good at writing it.", "excerpt": "Nice. Love the idea behind this. I have been using Django for most of my vibe coded side projects just for the reasons stated in this thesis. Django code is pretty easy to review quickly. LLMs are good at writing it. Django is just old and bloated, so the fork is a good idea. Maybe I will use this for my next side project.", "context": "", "use_case": "vibe coded side projects", "switched_from": "", "story": "Show HN: Plain \u2013 The full-stack Python framework designed for humans and agents"}, {"id": 754497152, "item_id": 47156072, "url": "https://news.ycombinator.com/item?id=47156072", "by": "blorenz", "date": "2026-02-25", "stance": "recommend", "quote": "The Django admin is a core reason why I still choose Django over other solutions.", "excerpt": "I love the sentiment and ambition in this! The Django admin is a core reason why I still choose Django over other solutions. I tell my team that the Django admin CRUD is our backstop when we encounter issues in our frontend UI. Thank you for tooling it out more!", "context": "leads a team", "use_case": "web apps, admin CRUD", "switched_from": "", "story": "Show HN: Django Control Room \u2013 All Your Tools Inside the Django Admin"}, {"id": 732824928, "item_id": 45801558, "url": "https://news.ycombinator.com/item?id=45801558", "by": "Alir3z4", "date": "2025-11-03", "stance": "recommend", "quote": "However, I love Django and Python in general.", "excerpt": "Async and Django don't mix well and I honestly see the whole Django Async as wasted resources, all those \"a\" prefixed functions etc. To be honest, I never liked the way async is done in python at all. However, I love Django and Python in general. When I need \"async\" in a http cycle flow, I use celery and run it in background. If client side needs to be updated about the state of the background task, the best is to se", "context": "", "use_case": "web backend", "switched_from": "", "story": "Why we migrated from Python to Node.js"}]}