My favorite way of building web apps is to use Laravel, a PHP framework.
I learned Laravel in the summer of 2020, but since then I’ve had phases of being on and off of it many times. I keep getting this feeling that other tools out there might be better, but every time I’ve returned back to Laravel.
The biggest reason why I keep coming back is how fast it is for me to build things in Laravel. It’s one of those everything-included frameworks: you can generate pre-built login and password reset pages, and it comes with built-in ways to interact with the database, queue jobs to be executed in the background, send emails, etc.
There’s frameworks that don’t come with so much stuff built-in, where people enjoy making individual technology choices. With those frameworks, you can choose what you use to interact with the database, which library you use to send emails, etc. But I’ve found myself more drawn to Laravel because I don’t need to make those choices. Everything has been chosen for me already, which makes me faster.
Being able to scaffold out user logins immediately has been huge for me. Most of the non-Laravel projects that I’ve abandoned have died in that first stage: building user accounts. Knowing that I can get everything in one command through Laravel makes it a lot harder to stomach building it by hand in another framework. (Especially annoying: password hashing and sending password reset emails.)
I learned Laravel alongside Livewire, a framework that lets you make more interactive Laravel apps. It happened to come out around the time that I learned Laravel, which was lucky for me. Nowadays I write all interfaces in Livewire, which blurs the line between frontend and backend quite nicely for me.
The other half of building a web app is hosting it. I’m a big fan of how Laravel (the company) has built their own hosting solutions specifically for Laravel (the framework): Forge and Vapor. It’s easy to get an idea built and up on the internet in a couple hours, with everything configured correctly.
I wonder sometimes why more people don’t use Laravel (or similar frameworks in other languages: Rails or Adonis). They organize everything in a predictable spot, and minimize the number of choices you have to make. Bringing new people in to a Laravel app is much easier than giving them a tour of your custom setup.
For me, working with Laravel just makes me way faster. My goal is to make stuff fast and with the least possible mental strain and stress, and Laravel’s the best way I’ve found to do it so far.