Why We Use Roots for WordPress Development

The opening tagline on the Roots site is, “Roots helps you build better WordPress sites faster” and we totally agree with that statement from the Roots team. Here at Eastmont Group, we use Roots almost exclusively for our WordPress projects. We had been searching for a process/workflow that would allow us to work better and more efficiently as a team and Roots was the answer.

In the early stages there was a bit of a learning curve, but once we got the hang of the workflow there was no looking back. It is important to note that the community supporting Roots is excellent. The Roots team is made up of very passionate and intelligent people who continue to improve the project and provide support in the Roots discourse forums.

Tools that cover the full WordPress stack for the professional developer.

Roots consists of three main components that cover the entire WordPress Development workflow: Trellis, Bedrock and Sage.

We use all three together but it is certainly possible to use them separately.

Trellis WordPress Development

Trellis allows you to quickly and easily setup your local, staging and production environments for your project and it does so the right way.

For your local development, Trellis uses Vagrant to automatically create a self-contained virtual machine that will mirror your staging and production environments. MAMP is often used for local WordPress development but that environment is not the same as what will be on your production server(s) which can create unforeseen issues when it’s time to deploy.

For your staging and production servers Trellis uses Ansible to automatically configure a VPS (our preferred VPS provider is Digital Ocean) with all of the software configured in accordance with best practices and then allows you to deploy to said servers with just a single command.

Trellis allows you to be confident that if your WordPress site works locally then it will work in production and that is a great feeling.

Bedrock WordPress Development

Bedrock brings modern development tools and folder structure to WordPress development.

Managing different WordPress and plugin versions across multiple computers and environments can quickly escalate to a confusing mess. Bedrock takes care of that common problem by managing WordPress and WordPress plugins with Composer, which if you don’t know is a PHP dependency manager. Composer makes collaborating with team members much better as well as helps to keep your Git repository much cleaner.

Bedrock also uses Dotenv to make configuring WordPress much easier by allowing for environment specific config files and leveraging environment variables.

Sage WordPress Development

At the beginning of just about every WordPress project someone would bring up the idea of trying a different WordPress starter theme. Sage helps put an end to those conversations, at least for us.

Sage provides an advanced workflow with modern frontend development tools like Gulp and Bower. It also comes packaged with the latest version of Bootstrap but you can certainly change that if you’re fond of a different fronted framework.

The theme wrapper is a big aspect of Sage that should not go unmentioned. Unlike typical themes, your markup is handled by one file instead of being repeated in every template file. The idea is to stay DRY (Don’t Repeat Yourself)!

For those of you that have heard of or used Underscores in the past, the Roots team has put together a pretty informative page as to why Sage is the winner – Sage vs. Underscores

Summary

In summary, Roots has greatly improved our WordPress workflow and allowed us to produce better WordPress sites and become better WordPress developers in the process. If you haven’t figured it out yet, we really like Roots and suggest you give it a try for your next project.

Check them out on Github, Twitter and Roots.io