Is a multi-tenant SaaS possible?

Hi all,
I’m new to Builder.io and no-code/low-code in general. I’ve been told what I want to accomplish cannot be done with no/low code and I would need a full dev team. I’m hoping someone can clarify.

I have a business outsourcing services company (BPO). My specific service does not have any app in existence dedicated to it. I have the following planned use cases:

UC 1. My team uses the app to provide services for different customers (Think MS Project).

UC 2. The customer gets their own tenant where I provide our services to them from within their tenant (Think your CPA logging into your Quickbooks).

UC 3. I provide a tenant to my customer so they can do the service themselves (Think you doing your own taxes in Quickbooks).

US 4. Allowing customers to use the application to provide outsourcing services to their own clients (Uses it like I do in UC 1).

I have searched all over and have a hard time finding no/low code companies talking about being able to provide multi-tenancy in varying models EXCEPT DrapCode. They emphatically state that they do this.
However, I find Builder.io seems to be much more powerful than Drapcode (No-Code Web Apps Development | DrapCode).

Is multi-tenancy of different kinds possible?
Would I need to pay for a new subscription for each new customer/tenant I provision?
Can you let me know if these use cases are possible without having to build 4 different times?
Or will I need to go the custom-code, developer route?

Thank you so much I tried keeping it as short as possible while still giving the context. Please let me know if i need to post elsewhere.

Nelson

Hello @bearmcg2,

Builder.io is a flexible platform, but it is inherently more focused on providing content management and page/section-based editing and rendering rather than full-scale application development with multi-tenancy features out of the box. Therefore, the capability to handle multi-tenancy at the level described in your use cases (UC 1 to UC 4) would likely require significant custom development and integration work.

Here’s a detailed look at the points raised:

Multi-Tenancy in Builder.io

Is multi-tenancy of different kinds possible?

  • Directly within Builder.io: Builder.io does not natively support advanced multi-tenancy features out of the box, such as isolated customer tenants with varying levels of access and their own distinct data segments.
  • Via Custom Implementation: To achieve multi-tenancy, you would need to implement significant custom logic outside Builder.io. This involves managing tenants at the application or backend level where data separation and tenant-specific functionalities are managed and integrated with Builder.io.

Would I need to pay for a new subscription for each new customer/tenant I provision?

  • Builder.io pricing is typically per workspace. If each tenant/customer requires a separate workspace due to data separation or isolation needs, you might need to subscribe to multiple workspaces.
  • For a unified subscription, you’d need to manage tenants and data isolation within your application logic and use a single Builder.io workspace for UI components without breaking data isolation.

Can you let me know if these use cases are possible without having to build 4 different times?

Achieving these use cases without building four distinct separate setups is feasible, but it would involve:

  • Extensive use of custom code: To handle user authentication, roles, permissions, and data segregation.
  • Leveraging APIs: Builder.io’s API can help fetch and render different data/content based on the active tenant.

Or will I need to go the custom-code, developer route?

Yes, you will likely need to go the custom code, developer route to handle complex multi-tenancy scenarios. Here’s how you can approach it:

Approach to Handle Multi-Tenancy

  1. Build Core Application:

    • User Authentication and Authorization: Implement user authentication and authorization to distinguish between users and their roles (e.g., admin, user).
    • Tenant Management System: Develop a system that provisions and manages tenants. Each tenant would have isolated data and user roles.
  2. Integrate Builder.io:

    • Use Builder for the visual content that can be shared across tenants but rendered conditionally based on the tenant context fetched from your core application.
    • Integrate Builder.io SDK in your custom application, where it fetches and serves content dynamically based on the current tenant context.
  3. Content Data Segregation:

    • Use Builder data models to store content that can be dynamically queried based on tenant information.
    • Define custom fields that can help manage and filter content based on tenant IDs or contexts.
  4. Implementation of Use Cases:

    • UC 1: Implement project management features with Builder sections/pages providing the UI.
    • UC 2 and UC 3: Allow tenants to log in and access their data using a multi-tenant-aware backend.
    • UC 4: Extend similar permissions and tenant logic to allow clients of your customers access, akin to how you manage isolation for your tenants.

Custom Low-Code Platforms

Platforms explicitly supporting strong multi-tenancy capabilities (e.g., Appian, OutSystems) could also be considered if Builder’s focus on content management doesn’t fully align with your needs. These platforms may reduce custom coding requirements for tenant management and application-specific logic.

Summary

  • Builder.io: Ideal for content management, visually editable pages/sections. Requires substantial custom coding for complex multi-tenancy.
  • Custom Development: Required for full-spectrum multi-tenancy features, tenant management, and isolated data access.
  • Consider Low-Code Platforms: Specifically designed for multi-tenancy if minimizing custom development is crucial.

For a high degree of control and flexibility specific to your use cases, a combination of Builder.io for content management and custom development for tenant-specific logic seems to be the most robust approach.