There are a plethora of fantastic projects online to learn from, and to start from, when developing software. Google just released a new Web Starter Kit; a set of tools and a template for building user interfaces that look great on all types of devices.
Bootstrap, a project that’s been around much longer, provides a set of templates to make standard web sites and applications shine without investing a ton of money in designing an interface.
Many of these projects are growing increasingly complex with prerequisites just to get started. Usually there are decent examples to look at online. Occasionally an online demo environment to change things and see the effects. But, to really understand what these projects can provide, often requires installing them into a local development environment. An environment where we can use the tools we’re familiar with and start incorporating the ideas into our own work.
Unfortunately, the excitement wanes with the need to set aside time to go through the provided documentation and wrangle it to work on our own computers. Matt hit on this point with his reaction to all the dependencies in the new Web Starter Kit:
"If you’re using the Web Starter Kit tools, make sure your system has Node, Ruby, Gulp & the Sass gem installed", ok, nm
— Matt Aimonetti (@mattetti) June 20, 2014
If only we had a way to easily run these projects locally. And that’s where Vagrant comes in. Vagrant can provide the mechanism to codify, literally, a local environment to operate the sample. We still get to use the tools we love. But, we don’t have to deal with the hassle of installing prerequisites.
Of course, when we first install Vagrant, and a virtualization provider like VirtualBox, it may seem like just as many steps as a typical sample project. But, once we’ve paid this small entry fee into the world of Vagrant, every other project that leverages Vagrant, is now at our fingertips, at the push of a button.
With a basic understanding of Vagrant, it’s easy to configure a virtual environment. I created a vagrant configuration for the web starter kit in under an hour. Imagine how much easier it would be for the project maintainers, who already know what’s needed.
With automated configuration of a sample environment, we could ditch the outdated documentation and READMEs. Others can learn from the self documenting scripts that create the actual environment to run the sample.
I’d love to see more open source projects provide sample environments with Vagrant. This would make these projects accessible to an even wider audience. It would make the installation steps self documenting. It would provide maintainers of open source projects with tools to test what they are creating. And, it would start educating everyone about how they can use Vagrant in their own day to day development.