There are lots of great tools available for managing multiple WordPress sites. I currently use ManageWP which is an amazing tool. Since the beginning of this year I’ve been working on my own WordPress management toolkit call CaptainCore. Development on CaptainCore has been slow and steady with improvements added every few weeks. It’s early days for development however within the next few months I’ll be completely replacing ManageWP with CaptainCore for all Anchor Hosting customers.
While working on CaptainCore I’ve asked myself many times, “Why I am doing this?” Am I crazy? Is this really necessary? I mean ManageWP is mostly free so why do my own thing? Writing this post is probably best thing I could do for myself. It forces me to get my thoughts out.
Let’s start with a few reasons why I’m not.
I didn’t start down this path with financial goals or a desire to make another SaaS product. There are plenty of great paid solutions already. Yes money and sustainability are important for any development projects however that’s not what motivates me. My goals and business model are the still the same. That is to make WordPress hosting hassle-free. So why then?
Reason #1: Solving my own pain points
An example of this happened back on Jan 31st. WooCommerce v3.3.0 was just deployed and right away I noticed all sorts of frontend display issues. Turns out to be pretty big bug with v3.3.0. At that time I decided to rollback all sites to WooCommerce v3.2.6 and wait for a more stable release.
Well with 800 sites how would you do that with ManageWP? You can use some cleaver JS to select the correct sites and manually install the downgraded version of WooCommerce. With CaptainCore I simply ran a one liner from my command prompt which handled the rollback.
captaincore ssh $(captaincore site list --filter=plugin --filter-name=woocommerce --filter-version=3.3.0) --command="wp plugin install woocommerce --version=3.2.6 --force"
Without getting too technical here, CaptainCore can target all customer sites which have a specific version of a specific theme/plugin, then perform a specific action like rolling back a plugin. For geeks, I’ll include usage for
captaincore site list and
captaincore ssh commands.
captaincore site list [--all] [--staging] [--updates-enabled] [--filter=<theme|plugin|core>] [--filter-name=<name>] [--filter-version=<version>] [--filter-status=<active|inactive|dropin|must-use>] [--field=<field>] captaincore ssh <site>... [--command=<commands>] [--script=<name|file>] [--<script-argument-name>=<script-argument-value>]
CaptainCore is me, a web developer, making the WordPress management tools I’ve always wanted ❤️. There are plenty of other CaptainCore specific examples I could give however that will be for another post.
Reason #2: Reducing reliance on ManageWP allows my customers to use their product.
As mentioned ManageWP is an awesome tool. In fact, by me using ManageWP under an Anchor Hosting specific account, it makes it very inconvenient for my own customers who wish to use ManageWP themselves. ManageWP does have a collaborate feature, however it’s not ideal. It creates friction when adding/remove sites. Not to mention a hassle when dealing with paid add-ons (do I pay you or do you pay me for this add-on?).
Reason #3: The desire for better open source options.
There are lots of smart people who have made some fantastic tools for managing WordPress. WordPress is huge. There’s more then enough room for new ideas on how best to manage multiple WordPress sites. I really love open source and personally think it would be amazing if WordPress was also managed by something completely open sourced. CaptainCore will be released under the, do what ever you want, MIT license. For more info about the project see https://captaincore.io.