I'm currently writing an app with Django. It's such a breeze. Everything just works and I only have to think about the problem I want to solve. The documentation is as fantastic as it was 10-15 years ago.
I'm not even really fan of Python and I really miss static typing (renaming things is painful) but oh well, I'm so productive with it that I can live with this.
Honestly, I think it's the only framework that I've ever used (never tried RoR though) which allows total flexibility while never bothering you with technical thoughts.
It's still as shitty to deploy as it was a decade ago but now we have containers so who cares.
I'm writing this app during a pause in my career (mainly frontend) after a burnout and it's reigniting my love for writing web apps.
Django is truly amazing. It’s as you said - you don’t have to think about anything else other than the business problem. Authentication, session, databases, RBAC, everything is handled for you.
Unfortunately, if you want to use react, it usually means you’ll write APIs that are consumed by a browser-rendered app.
The holy grail for me would be a Django backend that renders react on the server. A Django nextjs.
Phoenix looks really cool too but I’d have to learn Elixir and while that’s something I want to do (already started some years ago), my main prerequisite for this project was not to struggle and going comfy. Building something out of my hand with no roadblocks was more important to me than to learn something new.
It's a very simple language. I've worked on half a dozen projects where I helped an experienced dev new to Elixir ramp up to 80%-90% productivity within a few days.
Learning Phoenix (and a few other libraries like Ecto and now LiveView) is what would eat up your time.
Phoenix used to be very easy for Rails/Django/Laravel devs to pick up a few years ago, but now that LiveView is thoroughly built-in and Phoenix.View has been replaced by Phoenix.Component, it's much less familiar to those learners.
I've been a Laravel guy mostly, but tried Flask for a project last year, and it was so incredibly easy to get up and running.
Still not really sure how the two compare, but there was just something about the extremely tried and battletested code. Nothing got in my way, the code told you what it did, it was fast etc.
Flask is the hard one to get up and running alternative, where you must look at every detail, that lets you create an application exactly as weird as you need.
The fact that you found it so simple coming from another framework speaks loudly about your previous one. But they do compare in that Django is the easy one to start where most choices are already done for you.
Actually, FastUI is repeating the same thing. It's cool but don't we get the same thing if we return HTML instead of JSON, combined with HTMX? We rely on the browser and battle-tested Django forms. No need to invent the wheel.
> htmx
Htmx went 1.0 a little over three years ago. Is it really something you can call old fashioned?