Roots
roots.io · Company blog · on HN since 2013
Roots is a team building WordPress developer tools such as Sage, Bedrock, Trellis and Acorn, and its blog documents them.
What HN saysCommenters recommend its tools as the way to do modern WordPress development, and people asking for theme starting points are pointed to it.
44HN people shared it
39linked it in comments
9stories submitted
114story points
1 year agolast shared
2013people per year2026
Most-shared posts
- 1Homepage21 people · first shared 2013
- 2Bedrock: Modern WordPress Boilerplate14 people · 4 points · first shared 2015 · discussion on HN
- 3Trellis4 people · first shared 2016
- 4Acorn – Use Laravel Inside WordPress3 people · 60 points · first shared 2024 · 30 comments on HN
- 5Sage – Advanced WordPress Starter Theme with Tailwind CSS and Laravel Blade3 people · 2 points · first shared 2023 · discussion on HN
- 6Improving WordPress Password Security1 people · 42 points · first shared 2016 · 35 comments on HN
- 7New Website, Sage, and the Future – Roots1 people · 2 points · first shared 2015 · discussion on HN
- 8Twelve-Factor WordPress App1 people · 2 points · first shared 2013 · discussion on HN
- 9Use Laravel Livewire with WordPress1 people · 1 points · first shared 2024 · discussion on HN
- 10Radicle: Opinionated starting point for WP projects with the Roots stack1 people · 1 points · first shared 2023 · 1 comments on HN
- 11Theme wrapper1 people · first shared 2016
- 12About1 people · first shared 2024
What HN people wrote when they linked it
rob · 2023-12-11
And if you want to be "modern" with WordPress, the roots.io (https://roots.io/) tools are great — Sage, Bedrock, etc.
j_s · 2017-11-03
My favorites as an outsider:
· Vagrant for WordPress dev | https://github.com/Varying-Vagrant-Vagrants/VVV
· https://versionpress.net version control plugin beta | https://news.ycombinator.com/item?id=11439173
It was that discussion that mentioned https://roots.io/ as relevant to "modern" Wordpress dev practices.
Any additional resources people are willing to share would be appreciated!
callmeed · 2013-12-17
I've been recently looking to build a theme or have one built. It's been a bit of a pain trying to track down the best practices and tools to use for theme development.
Can anyone offer some guidance? Does a framework like Genesis help or hurt in the long-run? Are tools like http://roots.io getting traction?
What are the essential things to require when hiring someone to build a theme for you?
Implicated · 2021-11-26
I would say some contributors comply with standards - but the stuff coming from Automattic is scary.
I ended up in a position where I've become responsible for a very high volume WooCommerce/Wordpress store and the things that I've seen in _brand new code_ is mind boggling. Their new, branded, in-house paypal plugin/integration is currently at 1.5/5 rating on the wordpress plugin marketplace [0]. It just doesn't work for various reasons for various people. It's 2021, how do you screw up a payment gateway for wordpress when you _are_ wordpress? But wait, there's more. They already had PayPal integration, built into the core and already included in all WooCommerce installs. So what to do? Force disable the already existing, working-properly, integration and recommend their new plugin to be used. [1] This is hostile.
If your woocommerce webhook delivery fails 3 times in a row, woocommerce will just turn off that webhook/stop delivering them. Silently. No option for any sort of alert to be sent/logged, no way to store/replay the missed webhooks. Just off. This is irresponsible.
Our installation happens to have a lot of details that go into each line item on an order - which, in turn, turns into many rows of meta data. Woocommerce doesn't rely on dedicated tables for orders or related metadata, it's all stuffed into 'posts' and 'post_meta'. It doesn't scale well, terrible really. It's a large enough problem that LiquidWeb starting working on a fix for high volume sites that…
pbowyer · 2024-05-28
What's the best skeleton theme to build your own theme on in 2024, that supports Full site editing, Gutenberg etc?
After a decade away from WP I wanted to set up a new site. The default 2024 theme doesn't meet my needs, and I couldn't find a modern skeleton theme where I could add in Tailwind and build what I wanted. I've used https://roots.io/sage/ previously but they're moving further and further away from the WP way of doing things.
Edit: or instead of a skeleton theme, a good free FSE theme to build on?
maremmano · 2023-09-16
Hey there!
Using Django or Flask might be overkill for what you're trying to do. I suggest you to stick with WordPress, but check out the Sage/root style over at https://roots.io/sage.
It's not the classic WordPress; it's a modern, more secure version (not more secure but less prone to some common automatic attacks).
Also only use plugins when you absolutely have to, and if you do, stick with the pros (i.e. Gravityforms).
I've used WP alot (more than 1000s of websites) and I'm also using Python with Flask and FastAPI (but never used Django).
joe5150 · 2023-07-09
Plus if it matters to you, the Roots stack makes the whole Wordpress experience much more coder-y.
https://roots.io/
b0ner_t0ner · 2021-05-28
That's why a whole dev ecosystem on a modern stack exists: https://roots.io/
onion2k · 2019-02-08
Projects like https://roots.io bring modern PHP practices to WordPress development.
jaredandrews · 2017-05-18
I recently deployed a wordpress site, using Trellis[0], on to Digital Ocean. The site has a pretty low traffic volume, but so far it has been working great. Considering switching all future sites I work on to DO but I'll be interested in seeing how this first one turns out.
[0] https://roots.io/trellis/ - If you have to work with Wordpress at all I strongly recommend you give Trellis and the other Roots.io projects a try. Coming from more "sophisticated" tools to Wordpress was a real struggle until I found roots.
Log1x · 2017-01-01
https://roots.io/
Problem(s) solved.
Disclaimer: not affiliated in any way.
theSpaceOctopus · 2016-12-25
> It's difficult to migrate, have multiple environments, deploy, and so much more.
Sorry, that's kind of silly. WordPress can be incredibly frustrating, for sure, but there's a multitude of migration, deployment, and local development options.
We use Roots tools exclusively -
https://roots.io/
mountaineer22 · 2016-05-27
Also the http://roots.io project is pretty interesting with their "alternate" template implementation and workflow.
franze · 2016-03-15
apache server, wordpress, https://roots.io/ theme, pretty old school
joeyspn · 2015-05-14
I'm not a big fan of wordpress but it is undoubtedly a great tool to have in your toolbox, specially when your customers need user-friendly blogging tools or a quick CMS. I've installed for some of my clients Django blogs (with Django-CMS), rails-based blogs, and even a couple of Ghost installs. Nothing has beaten wordpress so far, clients love its versatility...
What I do to fly under the radar of many of the bots and automated scripts targeting wordpress sites is using a modern wp framework: roots bedrock[0]. This gives you a convenient time windows to update wp when you have the time (although with bedrock it is really easy with a couple of commands)
[0] https://roots.io/bedrock/
drewda · 2014-06-17
If you want to use version control for your theme development, there's already Roots: http://roots.io/
bretthopper · 2013-12-18
I'm one of the creators of this (we're the same people behind http://roots.io) so I'm happy to answer any questions. We're just trying to make developing WordPress sites a little more bearable :)
retlehs · 2013-12-17
You shouldn't be hardcoding CSS/JS into the template files - look into wp_enqueue_style and wp_enqueue_script.
Could use a better directory structure, too. Assets should be in a different folder, things like the walker should be in a lib/includes folder.
Being a starter theme, it doesn't make sense to just reference the Bootstrap CSS from a CDN. Shouldn't you have the LESS files so people can easily make changes without having to do overrides in their CSS?
ps. It's "WordPress", not "Wordpress" (http://codex.wordpress.org/Function_Reference/capital_P_dangit)
Disclaimer: I made Roots (http://roots.io), a Bootstrap starter theme that's been around for a while
o_____________o · 2024-05-28
It sure seems that way until you need to get just a little bit deeper and you realize what a dumpster fire WordPress is.
You want metadata on posts, you install ACF. You want to filter on that metadata, good luck if it's over a couple filters simultaneously, the SQL queries will time out. Take a look at WP's insane schema to figure that one out.
Gutenberg promises to have WYSIWYG editable React components, which is a big deal, but they made insane decisions like storing the attributes in HTML, rendering HTML in the database, and requiring component developers to keep an array of deprecated changes when they want to modify anything on the component.
There are some people trying to untangle Wordpress by refactoring and bolting Laravel onto it[1], but every layer is just a nightmare; the authors of different parts can barely assess why things randomly break.
You might find WP appealing for the plugin ecosystem, but the plugins are completely random in implementation, so you're likely to get a bloated scramble of CSS and JS pushed to your users.
I moved to Directus and Astro, but I would probably use a Laravel-based CMS like October or Statamic for more generalized PHP deployment.
[1]: https://roots.io/
rasso · 2021-05-28
Check out https://roots.io/
daniellarusso · 2021-04-03
I have enjoyed working with https://roots.io/.
0xbadcafebee · 2021-01-24
WordPress is definitely the Jenkins of the CMS world. Easy for a desktop user to set up, absolutely trash for literally every best practice, but nobody's made anything better [for free] yet.
If you are trying to deploy WordPress today with DevOps best practices (version control/12 factor app/etc): set it up with Bedrock (https://roots.io/bedrock/), manage dependencies with Composer, and use environment variables for the runtime configuration. Then use Phinx (https://phinx.org/) to do database migrations. A custom db migration script will be needed to change database settings based on the environment you're deploying to.
Containerization is pretty annoying, because apparently php-fpm will not serve non-PHP content (without creating security concerns). So you need a web server to serve all the static content that comes with Wordpress/Plugins/etc, and php-fpm to serve the PHP. This means you have to either 1) duplicate the static content between two different containers, 2) duplicate the static content into some other storage medium (S3?) and serve it using some web server, or 3) create a frankenstein's monster container of both php-fpm and a web server, and pick your poison on how to make that suck as little as possible.
I have opted for #3 as operationally it's the simplest. You build one container with all the dependencies, static content, and sql migrations, and deployments therefore become just a single container with a single port (http/https) and passing in the env…
jawngee · 2016-11-01
This is one way to do it, though I can't recommend it as the best way.
The first step is building your WordPress site correctly, and for me, that starts with using trellis (https://roots.io/trellis) and bedrock (https://roots.io/bedrock).
He's partially correct about S3 for media and uploads, but you want to take it one step further and use Imgix for actual image (jpeg/png) delivery because it'll do all of the transformations, cropping, etc. for you without WordPress mucking it up. At that point you have a fairly stateless WordPress installation and can spin up any number of instances of it. Here's my plugin for handling both S3 and Imgix: https://github.com/jawngee/ilab-media-tools/
CloudFlare is really the best thing to happen to WordPress since Imgix. Using CloudFlare's ability to cache at the root and sending correct caching headers from WordPress to CloudFlare, you are virtually indestructible.
We run a news site that gets about 500K uniques a month off a $20 instance on Digital Ocean this way. Granted, it's static, eg no user directed dynamic content like comments, votes, etc.
We build a lot of WordPress sites this way.
smpetrey · 2016-11-01
No thanks. I'll stick with Roots. [1]
[1] https://roots.io
joemaller1 · 2015-06-08
PHP isn't as bad as it used to be. Yes fundamental operator order is erratic and I'm forever googling basic functions, but the ecosystem has produced some good stuff over the past couple years.
Read up on Composer and Packagist. It's basically NPM, Gems, or PyPi for PHP. There are now solid interoperable libraries for most common tasks.
- https://getcomposer.org
- https://packagist.org
Laravel is a great framework, but quite a bit of what's out there seems to be built on the Symfony foundation.
- http://laravel.com
- http://symfony.com
There are also great coding guidelines and tools that are evolving. The PHP Framework Interoperability Group has produced some solid coding standards and tooling has followed.
- http://www.php-fig.org
WordPress...it makes me sad. But it's ubiquitous. If you're stuck doing WP work, take a look at the Roots project. It's a sane, modern approach with good tooling.
- https://roots.io
pan69 · 2015-04-09
How does this compare to Roots?
https://roots.io
koberstein · 2014-06-10
Check this out: http://roots.io/
looks cool.
chuckadams · 2024-09-29
They're all going to hit wordpress.org for plugins and themes. I would definitely stay away from Debian's packages, which are outdated the moment they're installed, and the setup looks painfully fiddly and manual anyway.
An alternative to wp.org's infrastructure would be the likes of https://roots.io/bedrock, which uses composer to install and update plugins and themes along with wordpress itself. The infrastructure it uses is called WordPress Packagist, which is run by outlandish.com using github as the distribution infrastructure. The whole thing is open source, so you could run your own wpackagist service if you like.
Using bedrock in a container, I upgrade the site by building and uploading a new container image. Anything goes wrong, I roll back to the previous image. Cattle, not pets.
TheCapeGreek · 2024-06-27
Would Acorn not also fall under the same utility? It's been around for a while. https://roots.io/acorn/
amiga-workbench · 2023-07-26
I really wish Wordpress would ditch the shared-hosting first deployment model and grow up a bit.
Thankfully https://roots.io/bedrock/ exists to bridge the gap if you're absolutely forced to use WP.