We're migrating our Connect app to Forge and hit a fundamental platform gap.
The problem: Our Connect app uses staticContentMacro to display Confluence page content inline — with full rendering fidelity (tables,
panels, task lists, embedded diagrams, video embeds). This works because static content macros inject their output directly into the page
DOM, inheriting all Confluence CSS and JavaScript.
In Forge, the only option for complex rendering is Custom UI (iframe). But the iframe sandbox means:
- No Confluence CSS (panels, status macros, table styles all broken)
- CSP blocks nested iframes (embedded videos, document viewers gone)
- No script execution (interactive macros like diagrams, task checkboxes dead)
UI Kit's AdfRenderer is limited to simple ADF nodes and can't render arbitrary page content.
The result: Migrating from Connect to Forge means a massive regression in rendering quality for any app that displays Confluence content.
This isn't a bug in our code — it's a platform limitation.
What we need: A Forge rendering mode that can display Confluence content with the same fidelity as Connect's staticContentMacro — either:
1. A Forge-native staticContentMacro equivalent
2. A way to render storage-format content natively (not in an iframe)
3. An extended AdfRenderer that handles all ADF node types including macros
With Connect EOL approaching (Q4 2026), this is blocking our migration. We suspect many other developers face the same issue.
Has anyone found a workaround? Is Atlassian planning to address this gap?