WordPress platforms aren’t what we normally do when we partner with 48in48.org to build 48 websites in 48 hours for 48 non-profits, we build systems. Specifically, we build a WordPress multitenancy system.
What is a WordPress multitenancy setup? Well, first let’s ask what is multitenancy… Wikipedia has this defined as:
The term “software multitenancy” refers to a software architecture in which a single instance of software runs on a server and serves multiple tenants. A tenant is a group of users who share a common access with specific privileges to the software instance.
In layman WordPress terms, it is one copy of WordPress (wp-core, plugins and themes) serving up multiple websites. The whole system resides in multiple Git repositories (WordPress is a repository, each plugin is a repository using Composer/Satis, each theme is a repository using Composer/Satis), so deploying updates and “forcing” functionality via MU-plugins is easier.
Note: This is not WordPress multisite. WordPress multisite, even though it works, it is somewhat of a pain to deal with. Yes, we could easily allow 48in48 to use multisite, but I’m a fan of freedom. The easiest way to let people leave the platform is by giving them a full blown WordPress zip file containing all of the files and database. Exporting a site out of multisite is a mess…I mean, a mess!
Who needs WP Multitenancy?
Well, honestly, very few people need it, but some organizations sure could use it. I can think of a few scenarios where multitenancies could come in handy:
- Agencies: If you are an agency that uses standard themes and plugins and also host the site, you could benefit from this platform. It is very scalable, easy to onboard and offload clients, and easy to maintain.
- Universities: Universities often have multiple departments and department blogs that could use a central system like this.
- Custom: Let’s say you are interested in creating a system for bands to have a simple place to have a band website, where they have all of the “music” and “event” plugins already setup and configured and you wanted to charge $30 a month for the use of the system.
Why use it? Why not use WordPress multisite?
Besides the fact that Multisite is difficult to manage, is it easily scalable? Maybe, but by using a system like what we built for 48in48, we can easily add more servers to the platform using an Ansible playbook. It is all automated.
For our use case, multitenancy works great. We have successfully deployed 96 websites for two 48in48 events in Atlanta and New York. I’m not 100% sure what the future holds when it comes to the platform, but my guess is that we will continue to spin up 48 sites multiple times each upcoming year.