I was excited to hear about the new app building experience. I have only been working with it for a day, so take my comments with a grain of salt - these are only my first impressions. I also know it was just released and in beta so curious to hear how much of these comments will become stale.
Being able to see the underlying components in code is awesome. This is what I was most excited about - the drag/drop classic interface makes building apps easy but sometimes you want custom logic. Custom components filled the gap but the experience (building outside Retool) had some friction. Really nice to be able to do this inside the Retool UI.
However, supporting only natural language querying + manual code editing actually makes the whole app building experience more frustrating. I came to Retool because I was an engineer more focused on data and backend logic and saw the platform as a way to build slick frontends without having to write a lot of Javascript. The classic builder was a really nice blend between drag/drop while still supporting custom logic with code where needed. The new experience limits you to either writing the code yourself or asking AI to do it. AI code gen tools are rarely one-shot perfection, so if you’re not comfortable editing the code yourself then you have to re-prompt the model to build to spec which will get expensive and frustrating quickly, especially for small changes like “move this component above the other one”. In addition, the UI for drag/drop was always a good way to actually understand what’s possible with a component - I can see a checkbox for “expandable rows” in a table and click it and see what that feature is - almost like living/interactive documentation. Now I don’t really know how to see documentation for the components. And there is no UI now to change a component - it has to be code or through the AI.
Editing multiple components and queries with one prompt is also awesome. If I want to say “change all my redshift queries that use X table to use Y table instead” then I can do that with a prompt and just let it go. Love that, big time saver. However, I am missing a way to see the changes being made. When I use the drag/drop editor, I know what’s changing because I did it. If there’s no way to check diffs then I am just trusting that the whatever the model is doing is correct which is probably not the correct assumption often enough for it to be able to be ignored. I can see the process of course and I can get a summary of the files that were changed but when it comes time to publish, I’m really blind as to what changes I’m really publishing.
To me, I am not really sure who this new experience is for. If I wanted to use only AI + code editing to build the app, why would I use Retool at all? Why not just develop locally using the same AI models where I can have more control over the process without paying a middle-man fee to Retool? Of course there are features on top like the database, authentication, hosting, etc. but there are plenty of platforms out there that fill this need already. This problem will become worse if tokens become more expensive (which they are likely to) and end-users will have no choice but to either 1) hand-write the code 2) move to a different platform
Theming is less flexible than the classic format and it’s disappointing that we can’t import a theme from classic. My classic app theme specifies that one font is to be used for H1 - H3 and the rest of text is another font. I don’t believe I can set that same config in the new experience. I can prompt the model to override that but it’s within the app rather than the theme, so I’d have to do this for every app every time. There is no native way to import a classic theme, I had to use an LLM to take my classic export and convert it into the format for the new version.
Modules are a missing feature. If I’m creating multiple apps and I want to use the same component in multiple places, I don’t see a way to do that now.
Classic app conversion is a big miss so far. I tried converting two things: a module I created and my core app that I maintain. In both cases, nearly all the queries were broken and required extra prompting ($$$) to fix. Some I’m not able to fix at all currently. The conversion tool took many liberties with the app layout and functionality - it’s not really useable without a ton of work. It seems to me that unless the app being converted is incredibly simple, the conversion will be disappointing and like your best path forward is to build it manually step-by-step. I think Retool should build a tool that converts deterministically rather than off-loading to an agent.
Queries seem to have more limitations. One of the issues I’m running into is that I’m suddenly getting OOM errors on certain queries. Admittedly, these query results are large but they did run in classic where now they just give an error.
Those are my current thoughts - would love to hear if there are ways to fix these issues either currently or on the roadmap.
