I've been using Retool for 3 months now and wanted to get some advice on whether the workarounds I've come up with are best practices, or if there's a better approach I should consider.
-
Navigation as a Module:
I have 10+ apps, and I tried moving my sidebar navigation (7 links) to a module for reusability. However, when I implemented a button to shrink the sidebar, the words and icons started behaving inconsistently. I ended up copying and pasting the navigation across all apps. Is this an acceptable approach? I read that modules don’t improve performance, so am I just losing some maintainability by doing this? -
Workflows vs. Query Handling:
Currently, I use the query library to manage shared queries across apps, along with app-specific resource queries and JavaScript queries for data formatting. For example, I run ahandleCreateOrg
query, which formats the form data, triggers thecreateOrg
query, and then runsloadOrgs
on success. I can replicate workflow functionality withonSuccess
andonFailure
, but would using workflows be better practice? I’m still on the free plan, and 500 workflows per month seems limiting as I know I will fail a bunch of times, so I’ve been hesitant to adopt them widely. Is my reasoning sound? -
Self-Hosted vs. Cloud-Hosted Retool:
How does self-hosting Retool work? It seems I’d still need an enterprise plan for features like workflows and modules. If I self-host and close my network for internal use only, will it still function, or does it need to communicate with Retool servers? My assumption is there is some digital license similar to Windows OS and it would only communicate that to retool to validate my plan. -
Handling a Large Number of Queries:
One app in my setup is accessed by two others, each fetching data and populating it slightly differently. This leads to a lot of JavaScript handling for queries and component management. Would it be better to duplicate this app so each has its own version? It would simplify the queries and code, but it’s a large, multi-layered form, though I could use a module for that. Is duplication a viable solution, or is there a better way to manage this complexity?
Looking forward to your feedback!