Lambo: Quick New Application Creation with Laravel and Valet
Imagine, if you will, a web developer who, for some reason, wants to spin up a Laravel app to develop in as quickly as humanly possible. Maybe this developer wants to write a blog post about a new feature in Laravel, or wants a quick test application to write some demo code for a potential client. Or, perhaps, our developer wants to throw together a live demo to show a potential employer during a technical interview. Imagine our mythical developer, who wants a presentable MVP as soon as possible, has built so many SaaSes they thought to build a SaaS for naming SaaSes.
Laravel should be an easy choice for that, right?
It's the best there is, for sure, but there are still a lot of steps to a new Laravel application. More than there have to be, anyway.
The number of steps to creating a new Laravel applicaion might end up being just enough work that, next time you find yourself needing a new app to test in, you may instead use an online tool like 3v4l, or one of your existing Laravel projects.
However, as the scope of your "quick little test" grows, you may find yourself regretting you didn't just create a new app. And if you're using an existing project... just pray you remember to
git reset HEAD --hard when you're done.
What if I told you that with only three easy payments of ABSOLUTELY NOTHING you can spin up a Laravel application at will in a single terminal command?
Introducing Lambo. It's called Lambo because it makes your Laravel app creation process mind-blowingly fast.
The Lambo Github Repo has more detailed informaion about installation and configuration options, but here's your general process:
composer global require tightenco/lambo
It installs so quickly, you'll feel the fresh air blowing through your hair in no time.
What does Lambo offer beyond what
laravel new and Valet already offer?
laravel new is a powerful tool that makes installing new Laravel apps much faster. And Laravel Valet is a powerful tool that makes it super-easy to spin up development domains for your local apps.
But even using
laravel new and Lambo, there are still a few steps you need to take manually to spin up a new site. Lambo takes care of those steps for you.
laravel new to initialize your application, but it doesn't stop there. Here are the highlights:
- Initialize your git repository, execute the initial commit
- Fills in your
.envfile, adding database credentials and Valet-correct
- Opens your default browser to Valet-specific application URI.
- Makes it possible (with flags) to automatically open up the site in your editor
How We Use It
We still use Homestead sometimes. But if you're creating a new app in Laravel and planning to serve it with Valet, there's no reason not to use Lambo.
Just like Valet, Lambo is opinionated and takes questions off of your plate. Just use Lambo's defaults. Boom. There's your site.
We use Lambo primarily for proof-of-concept, bug testing, and scaffolding new applications. This is particularly useful when pair programming. Need to workshop an issue in a less-complex environment to see if the problem is your own lunacy, or an actual bug? Need to get a fast-as-possible brain dump from your project lead on the project's function and general code design? Our process usually goes like this:
- Start Screenhero session
- Spin up new project with Lambo
- Do the thing
Some times step 4 is "Delete the folder and move on with your day."
Sometimes step 4 is "Commit the changes, push to GitHub."
Sometimes a Lambo-spun project later moves to a custom Vagrant box or just to Homestead.
Whatever we do, it pretty much goes like this, except instead of a pan, we fry the egg on the engine block of a Lambo: