Early access — Packstub Tenancy
One database per tenant. Any number of database servers.
Packstub Tenancy is the production bridge between Filament v5 panel tenancy and stancl/tenancy v4 — real isolation with one database per tenant, reachable by subdomain, custom domain, or path, async provisioning with a polished waiting room, and a load-balanced database pool that spreads tenants across as many servers as you need.
tenant
Adding a database server is one connection definition and one line of config.
Filament's built-in tenancy assumes one shared database with a team_id
on every row. stancl/tenancy gives you real isolation — but spreading tenants across
servers is left entirely to you: hand-picked hosts, no balancing, no bookkeeping.
Packstub Tenancy makes it a pool: list ordinary Laravel connections and every new
tenant lands on the server with the fewest tenants.
- Placement is persisted per tenant — provisioning, runtime connections, migrations, and deletion all follow it automatically
- Strategies: least-tenants, round-robin, weighted — no proxy, no extra network hop
- Data-residency customer? Pin the tenant to a specific server — pins are never rebalanced
Everything wired, out of the box
The integration you'd otherwise spend weeks building.
- Subdomain, custom domain, or path — zero wiring. The plugin registers its own central-domain-aware middleware, matches verified hosts, and manages the session cookie domain per host at runtime.
-
Custom domains per tenant. Tenants attach
app.their-company.com: DNS ownership verification, full-host routing, and single-origin login handoff with logout-everywhere revocation. - Async provisioning with a real waiting room. Databases are created and migrated through your queue while new tenants watch a polished Livewire-polled page — and are redirected the moment they're ready.
- Ready-tenant gating everywhere. The switcher only lists ready tenants; middleware keeps half-provisioned panels unreachable; failures flip to a retry path — no route in the panel leads to a half-provisioned database.
- Cross-database resource syncing. Mirror users, catalogs, or licenses between central and every tenant database — bidirectional, queueable, with mapping cleanup when tenants are deleted.
Built for production, not the demo
Battle-tested against real servers.
Multi-database tenancy fails in the seams — sessions across hosts, central vs. tenant writes, queue pipelines, slug uniqueness from a tenant subdomain. Those seams are exactly what this plugin tests:
- 300+ tests. Including an end-to-end suite that provisions tenants across three real PostgreSQL servers — not just SQLite in memory.
-
Failure paths first. A failed provisioning job flips the tenant to
failed, surfaces in the waiting room, and retries with one artisan command. -
Octane-safe. Per-request tenancy resets and multi-DB-safe defaults — tenant databases carry no
tenant_idcolumns; isolation lives in the connection. -
Universal migrations. String tenant keys and an adaptive user FK — bring your own
Organizationmodel, keep your existing users table. - Testing helpers included. Boot tenancy in your own test suite with the shipped helpers instead of reverse-engineering the runtime.
Early access
Lock the early-access price.
Packstub Tenancy launches at the prices below. Early-access signups get the first builds, a direct line to the maintainers, and keep launch pricing for life. No payment now — we'll email you when your access is ready.
Solo
Up to 3 devs · updates while subscribed
$99 / year
Team
Up to 10 devs · updates while subscribed
$249 / year
Agency
Unlimited devs · updates while subscribed
$499 / year