Embedding New Retool Apps inside Classic Apps?

I’ve built a new app in Retool using the new app builder, but I want to let my users access it via our current Classic app (and slowly rebuild it over time).

I’ve already tried embedding it via an iFrame (in different ways) but nothing seems to work.

Anyone had any luck with doing something similar?

Fundamentally I want to put the new app under the module header I already have in place so I don’t have it feel like it switches to a whole new app.

Summary

Built an app in the new app builder and wants to surface it inside an existing Classic app (under the existing module header) so users don't feel like they're switching apps, but embedding the new app via an iFrame isn't working.

AI Response

Embedding a new app builder app inside a Classic app via the IFrame component is not currently a supported flow. A Retool staff member confirmed this exact scenario is not supported yet, though it is being tracked internally as a high-priority request. The failure is expected: new app builder pages set a restrictive frame-src content security policy, which blocks them from rendering in an iFrame, and the auth callback also breaks in that context. For now, the reliable path is to link out to the new app rather than iFrame it, and to keep classic-app reuse within modules (a Classic app concept). Watching the linked threads is the best way to catch when native support ships.

Sources

:bookmark: Embedding new Retool AI app into Classic app
Same scenario (embedding a new app builder app in a Classic app via iFrame yields an 'Invalid auth callback' error); Retool staff confirm it isn't currently supported but is being tracked as high priority.
:bookmark: New React App Builder Iframe CSP Settings
Explains that the new React app builder page enforces a restrictive frame-src CSP header, which is why iFrame embedding of these apps fails.

The Community Team is testing out a new automation designed to improve resource discovery. Let us know if it's helpful by leaving a :heart: or :+1:. Or by marking this post as the "Solution"! And let us know if you have any feedback here. :rocket: