Use one of the many admin panels that directly build on your data structure. Administrate, RailsAdmin, ... As well as devise for Auth, Postgres as scalable cheap DB, and so on.
I am not sure if any other framework can make a single person or small team this productive (when it comes to CRUD like operations)
I mean laravel new app --jet (jetstream/saas features) gets me:
- authentication/authorization - Including: oauth, tokens, 2fa, etc. - queues w/ choice of redis, memcache, db, etc. - cache w/ choice of redis, memcache, db, etc. - SaaS dashboard w/ teams using something like phoenix's liveview called livewire OR vue + inertia - If you use filamentphp you have the perfect backend dashboard, but without that you still get the consumer saas one with teams, etc.
The only package needed above is filament for the above, and that's to have a resource based admin that's just super easy - try a tutorial it'll take a day what it used to take a week to build. Everything else comes baked into the initial app.
Rails you have to pick a queuing setup, an admin backend, and setup devise, etc. Having auth baked in just makes things super easy.
Right now it's the worst scripting language on the planet.
No one in their right mind would start a new project using PHP.
Most of the things you mentioned is either present in rails by default, such as queues and cache. Yes, you have to install external dependencies such as device for authentication etc, but that takes mere seconds to set up. Like, two or three CLI commands and you're done. Rails has "liveview" too in the form of Stimulus.
Never heard of filament tho, looks kinda neat. I know there are some similar gems for rails, but I have little experience with these kinds of products.
I still pick rails for my private development projects. Laravel and Rails both have their upsides, but none of them are really a game changer enough that I'dd consider dropping rails in favor of Laravel. Some of the things I like with rails in particular are things like
* Interactive repl on exception screens in the browser. I can interrogate the state of my request when the error occurred.
* "Intellisense" in the rails console(and also interactive repl) is kinda nice.
* I find it easier to configure and setup rails in docker than php.
* I like that in rails validations are defined on the model and not on the request.
* I like the built in form_for, form builder in rails, i like that its also very extendable. Which makes it easy to make reusable components with little to no code.
* My IntelliJ is often much better at understanding and parsing my rails projects than my rails projects.
* Lots of small rails things such as route functions instead of the route helper.
* It feels to me like rails has less boilerplate and is better at generating scaffolds, but that might be because of the laravel code I have been working on.
I dont know anything about modern laravel or fancy js frameworks. But that's part of the magic, Rails still does all that for me, as it already did when laravel wasn't more than a toy framework yet and likely still does in 10 years from now.
PHP also is still the worst language I ever had to work with, that's opinionated tho.
But, I think Elixir/Phoenix beats it handily at this point for someone starting from scratch with either one or that is willing to spend a week or two learning something new.
Don’t get me wrong, I would still pick Phoenix a lot of the time over rails, but that is despite the lower productivity. Sometimes even Phoenix + hotwire is not a bad idea.
However, this is not an issue until you have a large app. It’s a small downside compared to the upside. It’s also less of an issue today as servers have become cheaper and more powerful. As DHH said, “…sure, I'd like free CPU cycles too. I just happen to care much more about free developer cycles and am willing to trade the former for the latter."
> Rails leans heavily on reflection. Starting a large Rails app can take 10+ seconds
This is nothing compared to the spring boot project at my job, takes like a whole minute to start haha