Comment by Genego
5 days ago
Django has been one of the biggest reasons why web development has been so enjoyable to me. Whenever I switched to something else, I just felt too spoiled by everything that Django gives you. So I always ended up back with Django, and have no regrets at all specializing deep down that path.
Have you tried Ruby on Rails. That's my experience with Rails. Everytime I've tried something else (for web dev), I just felt too spoiled with Ruby & Rails and went back. This includes Django and Phoenix (Elixir).
Edit: The only thing that Rails lacks is a decent Admin UI included as part of Rails. I know that there are some external gems that can be used, yet that's something that should be part of the framework in my opinion.
Even before you get to the lacking Admin UI, the first thing Rails asks me to do is implement authentication. Coming from a true batteries-included framework like Django that feels like a complete non-starter.
Rails now provides an authentication generator that creates a super terse but fully customisable auth capability. Here’s an example: https://insidertrades.directory/built-with-rails/google-sign...
I use Django a lot and it's great, but even I have to admit that Ruby on Rails is better. It's just that I don't really do a lot of Ruby, so I ended up on the familiar tech stack, and also finding other developers to join a project is much easier with Python.
That’s true as long as you are only talking about the backend.
Frontend wise, Django is in the Stone Age.
Look at Laravel or rails if you want a really complete full stack solution.
I feel very comfortable with Django on the frontend, what are you missing there? I usually use Tailwind or Bulma, with HTMX and AlpineJs. I feel like the experience can be very much React like, even if you leave out HTMX. The frontend game of Django really changed about 2 years ago (at least for me).
Laravel's Blade templates are just absolutely phenomenal. The partial rendering, the integration with Livewire, the first class component paradigm. It's just far beyond stock Django / Jinja at this point and delivers some serious dev experience performance boosts.
https://laravel.com/docs/12.x/blade
1 reply →
Glad to hear that works for you. But nothing of what you are mentioning is part of Django, nor an official package,etc.
And I’m not going to get into the details of whether that stack would work for non backend developers, developers working on medium/large projects and/or medium/large teams. That’s a separate and unrelated discussion.
But compare what Django brings you (Stone Age templating system and that’s it) to what Laravel provides out of the box (or via official packages) like assets bundling, live reloading, an amazing and modern template system with proper “component like” partials or even if you need them, the “big guns” such as Inertia or Livewire. More or less the same is true for Rails with the Hotwire stuff.
There’s absolutely no point of comparison here. Even if that works for you, Django is not even in the same league.
It is still a great backend framework though, which was my point.
3 replies →
Both Laravel and Django use Active Record, great for CRUD but I have yet to see a project where it worked with more complex domains.
Never understood the appeal. I started with the web before there were any frameworks, in PHP, and Django was always very meh.