Categories: Trellis, Sage Theme, Roots, Bedrock

We have a love-hate relationship with Roots.

What we've learned in the past 18 months of developing WordPress ecosystems with Trellis, Bedrock and Sage is that Roots claims to be a faster way to develop WordPress websites, but that's not the whole story.


Our experience has been that lack of clarity on what technology, exactly, is being used. And what aspects of that technology you actually need to know, was completely unclear. As a result, this left us ignorant and dozens of times with a bricked application at critical moments in the development process with little to no help (even when we were willing to pay for it).


Here's a few things we believe Roots should communicate to people who are ready to try it out:

  1. Roots is a WordPress ecosystem. Not just a way to build WordPress sites faster. Similarly to Laravel, though on a much smaller scale.
  2. Roots is far from "the fastest way to develop WordPress websites" - but - it is probably the fastest way to build a WordPress ecosystem and / or a WordPress site following the best practices in all areas (security, speed, process, server-side, client-side, code-level, etc...)
  3. Roots has a massive learning curve for a typical WordPress developer and an impossible one for a WordPress power user. Despite their documentation making it look easy, if there is a problem you're probably on your own. Just look at our past Blog Posts for examples.


Those are the big three things. But here's the one that we think will help people the most:

Roots isn't really a thing in and of itself. Like WordPress is a custom-written code library in PHP, HTML and JS. Rather, it's probably best describe as a book of rules about how to develop WordPress ecosystems. It's always advancing (which is great in some ways) and on the bleeding edge (not great in a lot of ways).

So, after almost 2 years, now, of developing sites with Roots we've found that the biggest problem, in the end, we had with Roots was that no one told us "Hey! Before you start using Roots you need to get an education in the following things, or you're going to be frequently confused and get in perilous trouble!"


So here's our advice on that note:

  • Read the documentation on Ansible from start to finish.
  • Take a course on Ansible, for free, on Pluralsight.
  • Repeat these steps for:
    • Git
    • Python's Pip
    • Gulp
    • Bower
    • Node Version Manager (NVM)
    • Node Package Manager (NPM)
    • NodeJS
    • Etc...
  • Skim through our Blog Posts in the Roots tag, do the same on StackOverflow. Just being aware of the keywords and titles will help you when you encounter the issues. Our experience has been that Windows, Ubuntu and Mac all have hyper-specific issues that are not mentioned in the documentation and do not have complete solutions for. Leaving you with a worthless pile of code with no where to go.


Lastly, sadly, our experience was that Ben, the founder of Roots, doesn't respect some basic etiquette rules in their forums - namely allowing someone to pay for support or to share their opinion if it challenges his. So, to circumvent this, we created a StackOverflow tag which we've found to be useful and growing. Hopefully you'll have a more inclusive and professional experience than we did on the official Roots forums, but we hope that StackOverflow's communal moderation will be safer and stronger than Ben's all-powerful approach.


In the end, Ben has stated that they have no intention of working with WordPress core to try and move it forward. So we feel it's an ecosystem that will diverge more and more from WordPress because of arrogance. Which is so sad because almost everything about Roots is a true improvement. And the WordPress Core team is fully of open-minded, helpful, eager-to-improve contributors.

All that to say: we're now developing websites and applications with Laravel. :D