Skip to main content

SaaSykit Tenancy

SaaSykit Tenancy offers a multi-tenancy implementation of SaaSykit, that allows you to build multi-tenant SaaS applications with ease.

What is Multi-Tenancy?โ€‹

Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers, and each one of those customers is represented as a company or a group instead of being an individual user.

As an example of a multi-tenant application, think of Google Workspace, where each company has an account and can have multiple users within that account. Once the company adds a user to their account, that user gets an email address and access to the services provided by Google Workspace.

The company will have a single billing account and will be billed for all the users they have added to their account (per seat pricing).

SaaSykit Tenancy allows you to build similar multi-tenant applications with ease. You'll be able to define seat-based subscription plans where your SaaS users can subscribe to, and once they do, a tenant will be created for them where they can invite users, assign them certain roles & permissions, remove users, etc.

And once they invite a new useer, their subscriptions seats will be incremented automatically, and once they remove a user, their subscription seats will be decremented automatically, and they will be billed accordingly.

All of that is handled by SaaSykit Tenancy for you, so you can focus on building your SaaS application and not worry about the billing and subscription management.

On top of that you can use Events to get notified when a user is added to a tenant, removed from a tenant, or invited to a tenant, so you can take actions accordingly depending on the functionality of your application.

SaaSykit Tenancy builds on top of the beloved FilamentPHP package, which offers some basic multi-tenancy features out of the box, but SaaSykit Tenancy takes it a step further by seamlessly integrating seat-based subscription, user invitations, team management, roles & permissions, automatic billing with Stripe, Paddle & Lemon Squeezy, and more.

SaaSykit Tenancy multi-tenancy features at a glance:โ€‹

  • Seat-based subscriptions: Define subscription plans with a certain number of seats, and your SaaS users can subscribe to these plans. Once they do, a tenant will be created for them with the number of seats they subscribed to.
  • Flat-rate subscriptions: You can choose to offer your users the ability to have a tenant, invite users, assign roles & permissions, etc without having to subscribe to a plan with a certain number of seats. This is useful if you want to offer a flat-rate subscription plan. You can also limit the number of users that can be invited to a tenant.
  • One-time purchase orders: You can offer your users the ability to purchase one-time products, and once they do, a tenant will be created for them.
  • User Invitations: Tenant admins can invite other users to their tenant, and assign them roles & permissions. Upon invitation, the invited user will receive an email with a link to accept the invitation.
  • Team Management: Tenant admins can manage their team by assigning roles & permissions to team members, and remove them if needed.
  • Roles & Permissions: Define roles & permissions that can be assigned to users in a tenant, those will be available to the tenant admins to assign to their team members.
  • Automatic Billing: Once a user subscribes to a plan, billing will be synced automatically. Billing will be based on the number of seats if they have a seat-based subscription plan, or flat-rate if they have a flat-rate subscription plan.
  • Events: Listen to events that are fired when a user is added to a tenant, removed from a tenant, or invited to a tenant, so you can take actions accordingly.
  • Tenant dashboard: Each tenant has its own dashboard where the tenant admin can manage their team, subscriptions, and more.
  • Same user can be in multiple tenants: A user can be invited to multiple tenants, and can switch between them easily from the dashboard.

SaaSykit Tenancy FAQsโ€‹

Can a user be in multiple tenants?โ€‹

Yes, a user can be invited to multiple tenants, and can switch between them easily from the dashboard.

Can I offer a seat-based subscription plan?โ€‹

Yes, you can offer a seat-based subscription plan where users can subscribe to a plan with a certain number of seats, and once they do, a tenant will be created for them with the number of seats they subscribed to.

Can I offer a flat-rate subscription plan?โ€‹

Yes, you can offer a flat-rate subscription plan where users can have a tenant, invite users, assign roles & permissions, etc without having to subscribe to a plan with a certain number of seats.

Can I limit the number of users that can be invited to a tenant?โ€‹

Yes, you can limit the number of users that can be invited to a tenant, this is useful if you want to offer a flat-rate subscription plan with a certain number of users.

Does SaaSykit Tenancy use 1 database per tenant or shared database?โ€‹

SaaSykit Tenancy uses a shared database architecture, where all tenants share the same database.

Having separate databases per tenant can become complex as this means you will have to execute multiple migrations, and manage multiple databases, and it can be challenging to scale. This might be a certain requirement for some applications as they scale, but for most applications, a shared database architecture is more than enough.

SaaSykit Tenancy will consider adding support for separate databases per tenant in the future.

Can I customize the tenant dashboard?โ€‹

Yes, you can customize the tenant dashboard to fit your application's needs. You can add new pages, resources, etc.

The tenant dashboard is based on FilamentPHP, so you can check the FilamentPHP documentation for more information on how to customize the dashboard.