Multiple instances of single app

Hi there, we have developed quite large app. At the moment we plan to offer the app to other Clients. But certain set of the features doesn't allow us to accomodate all the Clients in single app (for example to require unique value...). On the other hand we assume that the app development will continue and we do not want to redo every single change on all the app copies. Were anybody solving similar issue? Any recommendation or workarounds? thanks so much, Martin

Haven't sold it but I can see us having the same problem! That's a hard challenge to solve in a low code world.

Hi,

My team has 1 instance of 1 app, that’s used by multiple clients “Multi-tenant”. We provide our users with the ability to white label it with their own logo, and color scheme as well. Essentially, this is done with code that wraps our apps and then gets injected when the app gets loaded.

Regarding your issue with unique values. I wouldn’t know what the issue is, without seeing what unique values you’re referring to.

But we’ve gotten around this by improving on how our data is connected. So, if it’s a multiple-choice field that’s unique to your one, standalone client. You could pull that multiple-choice field out into its own database object, then assign those new values to your client.

One caveat is it will require an update to your forms, tables, etc (anywhere you need to edit the value), but it is well worth it if you’re taking your product to market.

For example:

We’ll call your one-client “Client A” and any new client will be referred to as “Client B”

If your multiple-choice field is “Services” and those services are scoped to your “Client A”. You might have values like “Website Development, Digital Marketing, Etc.”

But “Client B” comes along and you don’t want “Client A’s” values to display for “Client B”, then you can create a many-to-many database to store those values and assign them to clients.

DB - Clients:

  • Client A
  • Client B

DB - Client_Services:

  • Client A :twisted_rightwards_arrows: Website Development
  • Client A :twisted_rightwards_arrows: Digital Marketing
  • Client B :twisted_rightwards_arrows: Logistics
  • Client B :twisted_rightwards_arrows: Procurement

Hope that makes sense. If not, or you’d like to learn more, feel free to reach out.

Thanks,
Taylor Wise

We like to push Knack to it’s limits. Our most recent project converted our Knack tables into an online excel spreadsheet. Learn how it increased our client retention and made our users happier :slight_smile:

2 Likes

Hi Taylor,

Many thanks for your response. I really appreciate the time you had spent writing your response. Her is the issue I have:

  • I would like to have multitenant app… to be clear lets call them Tenant A and Tenant B. Both tenants will be accomodated in one Knack app (ideally)
  • The database stores Clients, Users, Agreements, Vehicles etc.
  • Each Client has some unique identifier (for example social insurance number)
  • There is connection between Tenant and Client. Tenant B cannot see the Clients connected to Tenant A.
  • The Knack database is checking the unique values like social security number. So the are no duplicates.
  • But I need duplicates because Tenant B mignt want to create Client that already exists in the database. And at the same time Tenant B cannot somehow access or update information that are tight to Client that was created by Tenant A.
  • Also quite often I do need to import decent amount of information… that might be for exaple 25000 Agreements for Tenant C. Before importing agreements and have to import Clients to be able to create connection to Client when importing Agreements. And again all the imported data cannot overwrite existing Client information and should keep the Agreements available only to Tenant C.

When I am writing this summary I clearly see that did few mistakes in database structure… but unfortunately the mistakes has been done 6 years ago and now my database for single Tenant is almost 350000 records.

Best,

Martin