Just 👏 use 👏 Django
I like to build hobby projects in my spare time and I'm always looking for something more exciting, whizzy or interesting than Django. No matter what I experiment with I always come straight back to Django. It is just TOO overpowered. Below are some reasons why...
Batteries included
Django comes with everything you could possibly need to get started on most projects (the batteries included approach). Django's ability to neatly encapsulate templates, forms, database models, migrations, APIs all in one is frankly unrivalled. The fact this all happens in one "joined-up" approach is one of Django's biggest strengths.
If for whatever reason there is functionality you don't need you can just rip out some of the included batteries. Recently I built a project that just uses Django's ORM. I could have used SQLAlchemy (or a generic SQL query builder), but I went with Django and just ripped out and disabled the parts I didn't need. Shortly after this a colleague said "This is really impressive. If you add some APIs we could send all our CRUD updates through this service". I doubt this suggestion would have popped up if I had just used a standalone ORM. If the suggestion had still arisen, I would now have to add some API package to integrate with my ORM. This isn't an issue, but by using Django you can focus your efforts on getting stuff done, not choosing and configuring tooling.
Just use Django.
Huge ecosystem
Django comes with all of the "obvious" batteries included. If there is something more niche that you want to add someone has probably already tackled it for you. Authentication through SAML/OAuth/other? Already done. Fine-grained CORS protection? Sorted. Need a nice way to manage websocket connections? No problem. Need to queue tasks in the background? Lots of options are already available!
If you're trying to do something that doesn't already have a helpful package you are either doing something novel and groundbreaking or you're probably doing something weird/wrong.
Just use Django.
Impressive community
Django has a huge community due to just how long it has existed. There are tons of tutorials, articles, blog posts and, of course, StackOverflow solutions ready for you to leverage.
Some exciting libraries are gathering communities really quickly (fastapi is a great example) but the amount of support Django has experienced because of its long lifespan is unparalleled.
Just use Django.
Focus on business logic
There are lots of new tools popping up all over the place. If you can keep a fairly consitent set of tools that serve the "core" stack needed for your application to operate then you can allow your mind to focus on executing the business requirements well. There are very few scenarios where you need something other than Django to get up and running. By defaulting to using Django, it means you only have to think about the valuable bits (the bits that are unique to your business). You don't have to think about tooling or research which set of packages might combine best for your needs.
Just use Django.
Learn one tool, contribute to any team
The point that inspired the article... Some companies take the approach of agreeing to only use specific languages/tools for the majority of their work. Quite often you'll see companies adopting python and React to serve all their backend/frontend needs. There might potentially be a better tool for one particular function, but for consistency across the org we'll just use python and React. Among other benefits like better hiring practises, the main benefit of doing this is that any developer can jump into any project safe in the knowledge that they know enough to be productive (they don't have to learn a language or a tool along the way).
Extending this (in the python space) to say "we're a Django shop" just means that you are amplifying the benefits of "we are a python shop". By "just using Django" you all of a sudden have a set of team members that can be super productive on any project they are thrown into. They'll still be python specialists and they'll still get to learn a plethora of other tools along the way, but by consistently using Django the ability for the team to flex their knowledge, hit the ground running and make an impact is of huge benefit.
Just 👏 use 👏 Django