A quick background: I run the startup https://www.checkwhatsgood.com/, which is a mobile first information hub for cities. The information on the website comes from a couple of places: AI collected, google maps, user input. All of this information is edited and approved via Retool apps. Retool is really the foundation for an admin to be able to control the data.
We're now talking to a few different cities about white-labeling our software. What this looks like - They have their own name and branding on the web app, and control their own data.
This is exciting but I want to make sure that I'm preparing properly to scale on the Retool side.
What I'd like to do is give each city their own retool admin app to control the data. That being said, I want to avoid having all of the apps separate, because I'm continually adding additional functionality to the retool apps. I'd like for new features to be able to be rolled out to all of the different cities at once. I don't want to get in a place where I notice a bug in one retool app, then need to replicate the same fix each time for each different city.
I'd love to hear ideas for the best way to achieve this goal. Thanks!!
Hi @Drowe003! Right now Retool doesn't have a great way for us to "push" changes into other people's accounts. (That's something we'd like to eventually build as part of an app store: you can browse shared apps, use them into your account, rebase when they are updated, etc.) IMO I think the best strategy for you is going to be either inviting them all into separate Retool accounts (and then showing them the "cities" they have access to, depending on the logged in user).
This could be accomplished by owning the infrastructure and the deployed retool instances for each client while using Retool API to provision and grant access to your customers.
This is how it would work (Enterprise licence would be required in this process)
You start off by having an admin instance where you do all the development work (or multiple environments staging > production)
Once you're satisfied with your application, you source control your environment and push it to a repo (GitHub, GitLab etc)
one takeaway here is you would still need to manage database provisioning and migration scripts across the whole deployment (there are some terraform modules that work with Retool)
worth noting is you're going to rotate and manage credentials / secrets via various available methodologies most notably IAC
Exposing the functionality to certain users or creating interfaces for them to own the data but not have access to Retool's native Admin UI
Conceptually last piece would be connecting newly deployed Spaces to the same branch and using it to deploy further changes
There are certain areas of this concept that you need to work around but it should be doable. I think there are probably a couple enterprises who’ve built their product on Retool already doing this.
Main challenge would be how do you deploy if your customers want to own the infra and you're the one providing them with a package in case they want to be behind a firewall or simply have their data on-premise due to certain regulation.
Wondering what are your thoughts here or if you want to chat on it?