Skip to main content

Overlays

Introduction​

The Maestro Web SDK supports overlays — short-lived, animated surfaces that the SDK renders on top of your page to deliver a timely message without interrupting playback. Where a panel is a persistent module the viewer opens and closes, an overlay appears on its own, plays an animation, and dismisses itself a few seconds later.

Overlays are authored and scheduled in the Maestro admin UI, not in code. Your application never renders one — it implements a single delegate method, onOverlayEvent, and the SDK handles the rest.

Your admin UI is at maestro.io.

Overview​

Overlays are lightweight, animated UI components that the SDK mounts over your application to surface contextual moments — a settled bet, a fantasy player update, a promo. They support:

  • Rive animation for rich, resolution-independent motion

  • Auto-dismiss after a configured duration, with no host involvement

  • Call-to-action handling, including opening a Maestro panel when the viewer engages

  • Host-suggested positioning, so the overlay lands clear of your own UI

  • Optional D-pad focus, so remote users can navigate into the overlay and act on it

Overlays vs. Panels​

Overlays and panels are both Maestro-rendered surfaces, but they behave very differently:

OverlayPanel
LifetimeTransient — appears, animates, and dismisses itselfPersistent — stays mounted until the viewer or host closes it
DOM containerThe SDK creates and removes its own #maestro__sdk__overlay elementYour app provides the container and calls renderPanel()
RenderingRive animation on a WebGL2 canvasReact components rendered into the DOM
TriggerA broadcast from Maestro, or a client-side rule evaluated by the SDKThe viewer navigating to the panel, or the host calling setActivePanel
DismissalAn auto-dismiss timer, or viewer engagementThe viewer or the host
FocusOpt-in per overlay via canFocus on the will-appear callbackThe panel sidebar, via startFocusManagement

Key Concepts​

  • Overlays are authored and scheduled in the Maestro admin UI. There is nothing to configure in code.
  • There is no host-side feature flag for overlays on web. They are live as soon as a session starts. In practice, enablement is (a) overlays and client rules configured for your page in the Maestro admin UI, and (b) your delegate implementing onOverlayEvent.
  • Overlays render with Rive, which requires WebGL2 and WebAssembly. On TV browsers that lack either, the SDK logs and renders nothing — overlays simply never appear. See Device & Browser Support.
  • Ready to wire it up? Start with the Overlay Integration guide.

API reference​

MethodDescription
onOverlayEvent(event)Delegate method that receives overlay lifecycle events
setDataToOverlay(overlayData)Push a new suggested position to a live overlay
isOverlayShowing()Check whether an overlay is currently on screen

See more​