Forum Academy Marketplace Showcase Pricing Features

Multi-tenant subapp, one main app, or something else?

Right now I’m working on an application that provides a customer-facing dashboard for users of the company I work for so that my user’s customers don’t see the core app that is being used. At the moment I’m stuck on deciding how exactly to build out the rest of the app to fulfill the needs of my users.

Each user can create a team for their coworkers, and they will have multiple customers underneath them that can also create their own team. These customers and their teams should have a dashboard showing the logo, colors, etc. of the company that is providing services to them.

I have a main application that will be good for most users, but there are a decent number of users that will want customization options (color schemes, logos, etc.). What would be the best way to have an application that has customization options for users that pay for this feature? The domain may not be critical as the name of my app is in no way associated with the tool that we are creating the dashboard for, and a subdomain would probably be just fine.

One main app is by far the easiest approach here. If you need hard data boundaries between users you can look into sub-apps but it’ll add a bunch of overhead.

If your customizations are settings that can apply for everyone, I would go with one app.

If your customizations require different versions of the UI / features then you should do sub-apps but that’s asking for a lot of work imo.

1 Like

One main app does seem to be the easiest approach. For some users I do expect to have a sub-app for them for data security reasons but also so they can have a custom domain if necessary.

What would be best if I want to have each user just customize logos and colors then? This should be the most common feature that will be requested and I’d rather avoid sub-apps if possible because, like you said, a lot of sub-apps will be a lot of overhead. I’d rather only use sub-apps for customers that are paying a premium.

I agree. A single App is feasible and also easier to manage.

Regarding customizations, I implemented an app that did that recently.
I created a data type called ‘customizations’. I also modified the ‘User’ type to contain a ‘customization’ entry. The ‘Customization’ type contained fields like

  • logo
  • banner image
  • brand color 1
  • brand color 2
    and more such customization fields.

On the user dashboard (and other pages you want to customize), you can set the colors of the customizable elements from the ‘conditional’ tab.

Say you’re customizing the user’s banner color, you can do this:
Condition: When the current user’s Customization’s brand color 1 is not empty
Action: Background color: Current user’s Customization’s brand color 1

Since this element has a standard default color, things won’t break even if the current user hasn’t set up their customizations.

Hope this helped!

Ranjit
Blur Apps

1 Like

This would be the best approach, agreed.

1 Like