Skip to main content

Targets

The targets field in lumio.config.json declares which surfaces your extension renders on. Only listed targets are bundled and deployed.

Available targets

TargetSurfaceEntry filePurpose
"editor"Dashboard sidebarsrc/editor.tsxConfiguration UI for the streamer
"layer"Browser Sourcesrc/layer.tsxTransparent visual overlay on stream
"interactive"Standalone page /ext/\{slug\}src/interactive.tsxAudience interaction page
"designer"Fullpage designer overlaysrc/designer.tsxSplit-pane designer with live preview

Common combinations

{ "targets": ["editor", "layer"] }

The most common setup. The editor lets the streamer configure settings; the layer displays the overlay in the stream.

{ "targets": ["editor"] }

Configuration-only. Useful for bot modules or integrations that have no visual overlay output.

{ "targets": ["layer"] }

Layer-only widget. No custom editor UI — settings come from config_schema in lumio.config.json and the host auto-generates a settings panel. Most system extensions use this pattern.

{ "targets": ["editor", "layer", "interactive"] }

Full extension with audience participation. Viewers can interact via the standalone page.

{ "targets": ["editor", "interactive"] }

Interactive audience experience with editor configuration, but no overlay layer.

{ "targets": ["layer", "designer"] }

Layer with a fullpage designer. The designer provides a split-pane view with live preview alongside configuration fields. Designer fields can be defined via designer_schema in lumio.config.json (host-side form) or via a custom designer.tsx using SDK Editor Components.

Minimum requirement

At least one target is required. An extension with no targets is invalid.

Entry files

Each listed target requires a corresponding entry file:

TargetRequired fileCalled by
"editor"src/editor.tsxDashboard overlay editor sidebar
"layer"src/layer.tsxBrowser Source iframe
"interactive"src/interactive.tsxLumio webapp /ext/{slug} route
"designer"src/designer.tsxFullpage designer overlay

If a target is listed in lumio.config.json but the entry file is missing, the build fails with an error.

Adding targets later

You can add targets to an existing extension by:

  1. Adding the target to "targets" in lumio.config.json
  2. Creating the corresponding entry file
  3. Running lumio build and lumio deploy

Removing a target from "targets" removes the surface from the deployed bundle. Existing Browser Sources pointing to the removed layer surface will show an error until the user removes them.