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.
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.
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]
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.
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:
Put together your desired support interface as a dedicated app and generate a pre-authenticated URL
Built a custom component that utilizes the react-retool package and the above URL to embed your support interface
Pass data from the parent app to the custom component and down into the embedded app, as necessary
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.
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.
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.