Dev tools that rule
Simplify Local Dev with Lando
A Brief History of Bad Deployments
One thing that I’ve learned in my 14 years as a web developer is that every developer has Very Strong Opinions about everything. Spaces vs tabs (tabs), the best text editor (Sublime), or how to structure CSS (there’s literally no right answer) all can turn friendly devs into ravenous monsters at the flip of the switch.
One of the most enduring challenges that every dev loves to argue about is tooling. Here at Linea, though that argument is settled since the adoption of Lando, an elegant tool for a more civilized time.
Say goodbye to vagrant up and docker compose!
In the early days of local development, we were all using *AMP stacks running locally. We’d move directories in and out of our webhost root and have tons of SQL databases on our machines. It was pretty frustrating to manage, but it beat the idea of SFTPing into a site and cowperson coding it. Once the idea of easily managed VMs came along, it seemed like everyone moved to Vagrant overnight.
Vagrant was great! It isolated the entire development environment into one configurable VM. It was possible to ship configs via VCS to ensure consistency across development teams. It also added tons of bloat and redundancy, and switching between projects took time and it was very resource heavy.
When Docker burst on the scene, everyone was thrilled. Now we had configurable containers that were much smaller than VMs and way more scalable. Containers could use upstream images to create the exact kind of environment you’d see in production and the configuration was easy to ship in VCS. The biggest drawback with docker was that it’s complicated to get the configuration and tooling perfect.
Enter: Lando
Lando takes the idea of Docker and adds an abstraction layer on top of it. Through a simple YAML configuration, you can configure all of the services and tools you need. If you want to test how an update to, say, PHP 8.2 from 8.0 will impact a project, it’s a one-line change. Lando also serves the project through an appserver on an isolated proxy address meaning you have an easy URL to remember to get to your local site (like linea.lndo.site).
Even better, you can extend it with whatever tools you want. If you want to bolt on a way to engage with your host’s SSH gateway to sync files or databases, you can script it and ship it as part of the config. If you want to install PHPmyadmin or mailhog, it’s simple. Through prebuilt recipes, you can get a working WordPress site in minutes.
As a team, we have fully adopted Lando to ensure our devs using Ubuntu, OSX, and Windows all have identical environments and methods for communicating with our tools. It’s as essential to our workflow as our CI/CD flows (which also run on Docker, thanks Docker!).
If you want a good starter kit that works with WPEngine, you can check out this WordPress Lando Build Github repository that has a lot of the same tools and choices we’ve made.