syndicatetheory/multi-tenant-bundle
A Symfony bundle for multi-tenant PHP applications, providing tenant-aware configuration and infrastructure to isolate data and serve multiple customers from one codebase, simplifying SaaS architecture.
Important caveat for the decision record: the brief frames this as a Laravel/PHP package, but the repository is a Symfony2 bundle. It is not a drop-in for a Laravel codebase, and Symfony 2.x is long past end-of-life. Any product decision here should be recorded as "not applicable to a Laravel stack" and the evaluation redirected.
Consider it only under narrow, non-production circumstances:
composer require.Look elsewhere when any of the following is true — which, for most teams, is all of them:
stancl/tenancy or Spatie's multitenancy) or build tenant scoping with global scopes and a tenant-aware connection resolver.To executives: We evaluated a candidate multi-tenancy component and are recommending against adoption. It is flagged as in development, built for an obsolete Symfony generation, has essentially no adoption (zero dependent projects), and has no visible maintenance. The cost of adopting it is not the integration — it is inheriting long-term ownership of unmaintained infrastructure in a security-sensitive layer. Multi-tenancy is a real product requirement, but this is not the vehicle; the correct next step is a short build-vs-buy study against maintained, framework-appropriate options.
To engineering: This is a Symfony2 bundle, not a Laravel package, so it is out of scope for our stack. Use it only as a design reference for how tenancy boundaries were modeled. For our implementation, compare against maintained Laravel tenancy packages and a home-grown tenant-scoped approach; evaluate on migration ergonomics, tenant provisioning and teardown, isolation guarantees, and test strategy. Flag tenancy as an architectural decision requiring an ADR, not a dependency choice made in a pull request.
Bottom line: Low score, low adoption, in-development status, and framework mismatch all point the same direction. Document the rejection, keep the requirement, and spend the evaluation budget on maintained alternatives.
How can I help you explore Laravel packages today?