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 ahandleCreateOrgquery, which formats the form data, triggers thecreateOrgquery, and then runsloadOrgson success. I can replicate workflow functionality withonSuccessandonFailure, 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!