But what does Sprout offer?
Sprout aims to provide as much as possible, allowing you to implement multitenancy within your Laravel application, in the way that you want.
-
Tenant Identification
Sprout comes out of the box with support for subdomain, path, session, HTTP header, and cookie based identification. You can easily extend this functionality by writing your own identity resolver.
-
Full Eloquent Support
Using Eloquent? Well Sprout seamlessly integrates with your Eloquent models, whether the model is a tenant, or belongs to one or more. Letting you carry on with your Eloquent workflow, without any hassle.
-
Laravel, but multitenanted
Do you need tenant-specific authentication, filesystem disks, cache stores, cookies, or sessions? Well Sprout provides all of this and more, without overriding your config!
-
Shared Database
By default Sprout takes a shared database, shared schema approach, where tenant data is separated based on database foreign keys. For most use-cases, this approach is more than enough.
-
Multi-Database (Coming Soon)
If you need to take a shared/separate database, separate schema approach, than Sprout Seedling is for you, providing a seamless multi-database experience, with a whole host of supporting functionality.
-
Tenant Domains (Coming Soon)
Sprout Terra provides tenant-specific domain support, with a fallback to subdomains. It also comes with functionality to confirm domain ownership, validate DNS, generate SSLs and more!
-
Tenant Config (Coming Soon)
There's also Sprout Bud which Seedling is built on top of. Bud let's you have tenant-specific config for Laravel's core services, like auth providers, mailers, queues, and more!
-
Need support for something else?
Sprout was built with flexibility in mind, so you can config, expand upon, replace, and add to, all of Sprouts features and functionality.