Skip to content

Repository files navigation

GrabWP Tenancy

WordPress Multisite Alternative — Multi-tenant WordPress with shared MySQL, domain and path routing, and isolated uploads. No Multisite complexity. No per-site server overhead.

🌐 Website & Documentation: grabwp.com

WordPress PHP License WordPress.org


What Is GrabWP Tenancy?

GrabWP Tenancy turns a single WordPress installation into a multi-tenant platform — perfect for freelancers, agencies, and SaaS builders who need to host multiple client sites without spinning up separate servers.

  • No WordPress Multisite required — avoids network admin complexity and shared-database risks
  • Shared MySQL with tenant prefixes — cost-effective isolation, each tenant gets its own table prefix
  • Flexible routing — domain-based or path-based (e.g., yoursite.com/site/abc123) with zero DNS changes
  • Isolated uploads — each tenant's media is stored in a dedicated directory
  • Lightweight — loads before WordPress core hooks for minimal overhead

📦 Download & Resources

Resource Link
📥 WordPress.org Plugin Directory — official distribution
🌐 Documentation grabwp.com — complete guides and support
💬 Support Forum WordPress.org Forum — community help
🐛 Issues GitHub Issues — bug reports
⭐ Reviews Rate on WordPress.org

Core Features (Free)

Feature Details
Shared MySQL Tenant isolation via unique table prefixes ({tenant_id}_)
Separated Uploads Each tenant gets wp-content/grabwp-tenancy/{tenant_id}/uploads/
Domain Routing Map any custom domain to a tenant
Path-Based Routing Host tenants on subdirectories — no DNS changes needed
Shared Themes & Plugins All tenants share the same extensions
Tenant Cloning Duplicate any tenant (or mainsite) including DB + files
Admin Interface Full tenant CRUD with list table, edit, delete, clone
Security Controls Hide plugin/theme management, disallow file edits per tenant
One-click Setup Auto-install MU-plugin and wp-config.php loader from admin

🚀 Upgrade to Pro

Need complete isolation for your client sites or Wordpress SaaS platform? GrabWP Tenancy Pro takes you from shared infrastructure to per-tenant independence:

Pro-Only Features

Feature Description
Dedicated MySQL or SQLite per tenant Complete data isolation — zero cross-tenant risk, no shared tables
Full wp-content separation Each tenant gets isolated themes, plugins and uploads
AJAX Backup & Restore 7-step backup and 8-step restore with real-time progress UI
Cross-database migration Move tenants freely between shared MySQL, dedicated MySQL, and SQLite
Extension sync & management Sync plugins/themes with filesystem; switch between symlink and copy installs
Broken symlink auto-repair One-click detection and repair for broken plugin/theme symlinks
Custom tenant data location Store content anywhere — outside wp-content/uploads via settings or wp-config.php
Per-tenant config files Each tenant gets its own wp-config.php; new tenants inherit master defaults

Pricing

From $9.99/month — all plans include every Pro feature.
Use code **EARLYBIRDPRO** at checkout for 20% off.

👉 Get GrabWP Tenancy Pro →


Requirements

  • WordPress 5.0+ (tested up to 6.9)
  • PHP 7.4+

Quick Start

Installation

From WordPress.org (Recommended)

  1. Go to Plugins > Add New in your WordPress admin
  2. Search for "GrabWP Tenancy"
  3. Click Install Now then Activate
  4. Add to wp-config.php:
require_once __DIR__ . '/wp-content/plugins/grabwp-tenancy/load.php';

The plugin's Status page provides a one-click auto-installer for both the MU-plugin and wp-config.php line.

Manual Installation

  1. Download from WordPress.org Plugin Directory
  2. Upload grabwp-tenancy to /wp-content/plugins/
  3. Activate and follow the Status page setup wizard

📖 Need help? See the complete documentation or the support forum.


Architecture

File Structure

wp-content/
├── grabwp-tenancy/          # Tenant data (outside uploads for security)
│   ├── tenants.php          # Domain/path mappings
│   └── {tenant_id}/
│       └── uploads/         # Isolated uploads per tenant
└── plugins/
    └── grabwp-tenancy/      # Base plugin

Database Architecture

  • Shared MySQL with tenant prefixes ({tenant_id}_)
  • Cost-effective isolation — no extra databases needed (Pro adds dedicated DB option)

Tenant Structure

$tenant = [
    'id'           => 'abc123',       // 6-char alphanumeric
    'domains'      => [               // Array, primary domain first
        0 => 'client1.example.com',
        1 => 'alias.example.com',
    ],
    'status'       => 'active',       // active | inactive
    'created_date' => 1714000000,
];

Routing

Tenants can be served on custom domains or path-based subdirectories using the nodomain.local placeholder:

$tenant_mappings = [
    'abc123' => ['tenant1.example.com'],
    'def456' => ['nodomain.local'],   // → yoursite.com/site/def456
];
flowchart TD
    A[HTTP Request] --> B[Extract domain or path]
    B --> C[Load tenants.php]
    C --> D[Search tenant mappings]
    D --> E{Found?}
    E -->|Yes| F[Set tenant context]
    E -->|No| G[Use default/main site]
    F --> H[Set DB prefix]
    F --> I[Set content paths]
    G --> J[Continue as main site]
    H --> K[Initialize WordPress]
    I --> K
    J --> K
    K --> L[Process request]
Loading

FAQ

Does this work with WordPress Multisite?
No — it's a standalone alternative. It provides multi-tenancy through routing and DB prefixes without Multisite's network admin overhead.

Do I need a custom domain for every tenant?
No. Path-based routing lets you host tenants at yoursite.com/site/{id} with zero DNS changes.

How is this different from WordPress Multisite?
Multisite shares one DB, one plugin set, and one theme set. GrabWP Tenancy gives each tenant separate table prefixes and separate uploads. Pro adds dedicated databases and fully isolated wp-content per tenant — something Multisite cannot do.

Can I manage 50+ client sites?
Yes. GrabWP Tenancy is built for agencies and freelancers. Pro adds per-tenant backup/restore for easy management at scale.

Is it compatible with other plugins?
Most plugins work out of the box. Plugins that hardcode DB table names (without $wpdb->prefix) may need configuration.


Development

Naming Conventions

  • Functions: grabwp_tenancy_ prefix
  • Classes: GrabWP_Tenancy_ prefix
  • Constants: GRABWP_TENANCY_ prefix

Contributing

See WordPress.org Changelog or readme.txt for full history.


License

GPLv2 or later — see LICENSE


Need enterprise isolation, dedicated databases, and per-tenant backups?
→ Upgrade to GrabWP Tenancy Pro · From $9.99/month · Code EARLYBIRDPRO for 20% off

About

GrabWP Tenancy provides the foundation for multi-tenant WordPress with essential isolation features. This plugin focuses on cost-effective multi-tenancy with shared resources and basic tenant separation. Download at https://wordpress.org/plugins/grabwp-tenancy/

Resources

Stars

21 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages