Why I use Laravel as a Rails aficionado
Tags: laravel, rails, php, productivity
Published: 2021-08-05 19:26:05

I've been building web products professionnally and for fun for more than 7 years now. Despite being a complete Ruby on Rails fan (my first love) and having first experienced Laravel in the worst ways possible (taking over a legacy SaaS that was a complete mess), I still decided to use Laravel for my next major projects.

Both present similar MVC structures and similar functionalities, but they have quite different ecosystems. To me, being a good developer means choosing the right tool for the job, here are some reasons why I chose Laravel over Rails for those applications.

# The ecosystem
![The Laravel Ecosystem](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j9a2dyy84jm7qe8ipn9o.png)

Thanks to Tailor Otwell and others, there are a lot of VERY powerful satellite packages and tools that'll make you win precious time when building web products. Here are some of the ones that drove my decision :

### Laravel Sail
Super easy development environment : `$ sail up` and you're good to go ! It spins up a web server, database, redis server and even mailhog to monitor your emails. All through Docker🐋 so you don't pollute your computer with useless servers that will clash with your other development projects.

### Laravel Breeze & Jetstream
Thanks to those, you can start your application with all the boring authentication part pre-made for you. This includes signup, login, profile settings, dashboard, email verification & forgot password, password change, 2FA, .. Such a huge timesaver !

### Laravel Nova
Powerful, beautiful & customizable admin ! Quite easy to install and to extend, with a lot of very useful plugins that'll make your life way easier. Building admins for web apps is a big part of the development time and any time saved is a big money saver, as long as the quality remains.

### Laravel Vapor
Vapor turns your app into a Serverless app that autoscales in a hearthbeat. It manages your AWS ressources for you and allows you to change things in your Cloud with simple commands. It will save you weeks of handling your servers, I really think it has a crazy good Return On Investment for small to mid-sized applications. Focus on building your app and not on fiddling in AWS !

### Statamic
Statamic is a pretty powerful and modern CMS that'll get you out of your Wordpress nightmares. Simple and efficient ! It recently saved me when I needed to build a BIG application that was a mix of a Website, CMS, CRM and E-commerce. Statamic made it possible for my client to edit pages & products in an efficient way while giving me the whole power of Laravel to meet requirements for the CRM aspect of things.

### Laravel Spark
I personally never used it but it seems to be the Laravel Jetstream of SaaS products ! (It actually plays along well with Jetstream & Breeze) It handles subscriptions, payment providers & invoices for you so you can focus on the actual value your app brings.

# The community

Pretty simple and straightforward but as there are more people using Laravel, it's easier to find answers to your problem on the web as well as finding help !

But that was not the deciding factor for me as, in my opinion, Rails is often easier to understand and more logical than Laravel. The main reason why the community is so important to me is that I'm making it easy for my clients to find new developers later on, as they will need someone to maintain and improve on the application that I built someday. There are a lot more people that use PHP in the world than Ruby and it's important to keep that in mind when you build an application that will be the epicenter of someone's business.

# Conclusion

I'm still in love with Rails ! And I love that it keeps growing so well and evolving (can't wait to try Hotwire and compare it with Livewire), and it still is one of my favourite tools. 

I just think it's important to be flexible and to be able to avoid getting stuck with one framework the becomes a Bible you franctically shake in front of everybody that uses something else! 

Be curious and open to new things, give it a look and objectively assess if it's for you, or not, and if it actually brings new value to the programming world. There are tons of frameworks popping up everyday and while a lot are probably good, only a few will really fit you and make your work more efficient.

What's your take on this ? How do you position yourself in this world of frameworks ? 😜