Nesting an app in an app

I am developing a client budget and support system app in my company's Retool account. This tracks projects and support for our clients.

Each of our clients has their own Retool account. I am currently building a support module within the client's Retool account that links to our company's app. Ideally, I would like to build this and distribute this module to our clients.

Is there a way to have this client module in my company's account and nest it in the client's account?

The goal is to keep the development clean and 1 version for all clients. It is also to lock down the code so only our company can modify it.

This looks like it could be a very interesting discussion. Watching :eyes:

:eyes:

I think you could do this using the custom component library. This would let you add the same component to multiple apps no matter which retool account needs it. You would also have 1 'source of truth', so any updates to the component in the library are propagated to all apps that use it

Do you mean add the module to a "shell" custom component then import it in the client accounts?
I haven't set up a custom component since the previous type was deprecated.:sweat_smile:

This is a brilliant idea!!! One more reason for me to get more familiar with custom components.

This is similar to what our friends at Weavy are doing @MarkOfRespect

2 Likes

basically ya that's it. since the new custom components are defined in React JS you would need to recreate the module in code. Weavy is actually a perfect example of what you'd be trying to accomplish: www.weavy.com [docs]

1 Like

If I understand correctly you would use a custom component to code everything in React JS and not just the shell to integrate the module? I'm sure that would work but wouldn't it defeat the purpose of building the module in Retool? ie the module is also a variation of an admin module we will be using internally.

This is a really cool concept and discussion! :sunglasses:

I'll try to coalesce my thoughts into something coherent. To start, though, there are a limited number of ways to propagate content between Retool instances in a controlled manner:

  • Source Control
  • Custom Components
  • Embedding

As powerful as it is, the first option does require an Enterprise-level plan and isn't necessarily an accessible solution, as a result. Instead, I propose that you use a combination of the two remaining options:

  1. Put together your desired support interface as a dedicated app and generate a pre-authenticated URL
  2. Built a custom component that utilizes the react-retool package and the above URL to embed your support interface
  3. Pass data from the parent app to the custom component and down into the embedded app, as necessary
  4. Distribute and update the custom component using the sync functionality

This is obviously a very high level outline, but it should be a feasible path forward! Let me know if you have any follow-up questions about specific steps. I'm excited to see where this goes. :+1:

1 Like

Thanks for chiming in @Darren.

2 and 3 together make sense! I'm working on the main part of the app (internal) and am building the client part in the same app temporarily. This will likely take a couple more weeks.

Given it is a custom component and I haven't yet familiarized myself with the new method, I could definitely use a link or 2 to get me started.

1 Like

I'd recommend starting with the page in our docs and then checking out the handful of examples that we have here. :+1:

I'm curious to hear a status update, @Shawn_Optipath! Have you had a chance to work on this?

Hi @Darren. Not yet. I reached out early March to @Chris_Riley and he mentioned there was a possibility of publishing a Custom component course. I won't "need" this for another month or 2 so hopefully the timing will work out.

1 Like