Skip to main content
<UI> lets a workflow carry its own Gateway UI declaration in the workflow TSX instead of registering a separate UI from the launcher. The component renders nothing in the workflow graph; the Gateway discovers it during gateway.register(), bundles the client-side React entry, and serves it from the workflow UI route.
entry paths resolve relative to the workflow source file when the Gateway was given entryFile. This is the default for smithers gateway and generated .smithers/gateway.ts files.

Props

Inline literal children must be serializable DOM elements and text. Use entry when the UI needs gateway-react hooks, Gateway actions, or TanStack collection state. Use source for a small component export that receives serialized props and boot metadata from the Gateway.

Existing UIs

Existing .smithers/ui/<workflow>.tsx files that call createGatewayReactRoot(<App />) should use entry:
For a component-export module, use source:
See Migrate to Workflow-Owned UIs for the launcher and workflow changes.