Modulon Popout SDK
Detach panes, refresh popouts, and try opener-less fallback (copy the popout URL into a new tab). This page uses
createModulonHost() + the popout uses createModulonPopout(), plus a synced-state
primitive.
View product
Hub: …
Desktop recommended
This demo relies on popouts (
window.open) and multi-window behaviors. Mobile browsers often block popouts or behave differently.
Shared state
Move the slider in any window. All panes stay in sync via the bus.
Intensity: …%
Tip: detach panes, then refresh the popout. The host should not incorrectly “reattach” on refresh.
The wiring (high-level)
This is the “minimal boilerplate” path the SDK ships for onboarding.
// Host:
const { bus, syncState } = createModulonHost({
appId: "myapp",
namespace: NS,
syncedState: { id: "app", initial: { intensity: 50 } },
});
// Popout:
const { syncState } = createModulonPopout({
appId: "myapp",
syncedState: { id: "app" },
});