ZeeCreatives MultiSites
Turn WordPress into a subdomain-based multisite platform with separate databases per site, isolated upload directories and a REST API for programmatic creation.
Why it exists
WordPress Multisite gets you most of the way to a SaaS product. Where it stops short is isolation. Every site in a standard multisite network shares one database, distinguished only by table prefix. For a magazine network that is fine. For a product where each subdomain is a paying customer's workspace, it means one customer's data sits in the same database as everyone else's, backups are all-or-nothing, and migrating a single customer out means extracting their tables by hand.
ZeeCreatives MultiSites addresses that directly: each subdomain gets its own database and its own uploads directory, provisioned automatically, with a REST API so provisioning can be triggered by your signup flow rather than by an admin clicking through screens.
What it does
Why it matters
The REST API is the piece that makes this a platform rather than an admin tool: your billing or signup system calls the endpoint when a plan is purchased and the workspace exists moments later. Nobody waits on manual setup, and the provisioning path is the same one every time, which is what makes it debuggable.
How it works
The plugin sits on top of WordPress Multisite in subdomain mode rather than replacing it. When a new site is requested — through the admin or the REST API — it provisions the database, creates the uploads directory, registers the site in the network, and activates the configured default theme and plugins.
Because provisioning is exposed over REST, the natural architecture is that your billing or signup system calls the endpoint when a plan is purchased and the workspace exists moments later. Nobody waits on manual setup, and the provisioning path is the same one every time.
The database-per-site design is the significant architectural decision and the one to be deliberate about. It buys real isolation and per-tenant operations. It costs you a database count that grows linearly with customers, and any cross-site reporting has to be built rather than being a single query.
Requirements and limits
- MySQL 5.7 or MariaDB 10.3 or higher
- WordPress Multisite enabled in subdomain mode
- Hosting that permits programmatic database creation and wildcard subdomain DNS
- Licensed GPLv2 or later
What it does not do
Read the hosting requirement carefully, because it disqualifies a lot of shared hosting. The plugin creates databases on demand, which means the MySQL user needs CREATE DATABASE privileges. Many managed hosts do not allow this at all. Confirm it before planning around this plugin.
Subdirectory multisite is not supported — this is subdomain-only by design. Existing multisites can use it, but it is optimised for new installations where every subdomain gets its own database from the start; retrofitting an existing shared-database network means migrating data.
It handles provisioning and isolation. It is not a billing system, does not manage subscriptions or plan limits, and does not meter usage. Those are yours to build or integrate.
The isolation trade-off, honestly
Choosing a database per tenant over shared tables with prefixes is the decision that shapes everything else, so it is worth being explicit about both sides.
What you gain is operational. Backing up one customer means backing up one database. Restoring one customer does not touch anyone else. When a customer leaves and asks for their data, you hand over a database rather than writing an extraction script. If one tenant's data is corrupted, the blast radius is that tenant. On a shared-table network every one of those operations requires filtering by prefix and hoping nothing was missed.
What you pay is also real. Database count grows with every customer, and some hosts price or limit on that. Cross-tenant reporting — how many workspaces used a feature this month — cannot be one query any more; it is a loop over databases, or a separate aggregation layer you build and maintain. Schema migrations have to run against every tenant database rather than once, so a migration runner becomes infrastructure you need rather than a nice-to-have. And connection management needs thought at scale.
The honest summary: this design is right when tenants are paying customers whose data needs to be separable, and wrong when you are running a network of related sites that mostly want to share content and users. Decide which one you are building before adopting it, because moving between the two models later is a migration, not a setting.
Frequently asked questions
Does it work with subdirectory multisite?
No. Subdomain-based setups only.
Can I use it on an existing multisite?
Yes, though it is optimised for new installations where each subdomain gets a separate database from the start.
What are the hosting requirements?
PHP 7.4 or higher, MySQL 5.7 or MariaDB 10.3 or higher, WordPress 5.8 or higher, Multisite in subdomain mode, wildcard subdomain DNS, and a database user permitted to create databases. That last one rules out much of shared hosting.
Why separate databases instead of table prefixes?
Real per-tenant isolation, per-customer backup and restore, and clean migration of a single customer. The trade-off is database count and no free cross-site queries.
Can sites be created programmatically?
Yes, through the REST API rather than only through the admin screens.
Does it handle billing?
No. It provisions and isolates sites. Billing and plan limits are separate.
How do I get it?
It is not in the WordPress.org directory. Contact us to discuss a deployment.
Related plugins
LIGNA Integration
Form submissions on a WordPress site become structured leads in LIGNA CRM automatically, through a REST endpoint and an authenticated API call. Built for a client, published here as an example of the integration work we do.
View UtilitiesSite Extensions Snapshot
View every installed plugin and theme with status, version and author, then export the lot to CSV in one click. Built for audits, compliance checks and client handovers.
View MaintenanceZignites Sentinel
Create a checkpoint of your active theme and plugins before updating, validate that the checkpoint is sound, and restore it if an update breaks the code layer.
ViewInterested in ZeeCreatives MultiSites?
Tell us about your site and we will send you a build or quote the work.