src/overlay.config.ts, then use the shared package APIs from @overlay/app-core, @overlay/extension-sdk, @overlay/api-client, @overlay/ui, @overlay/chat-core, @overlay/chat-react, and @overlay/modules-react.
Brand, Theme, And Navigation
src/overlay.config.ts is a serializable app registry. It can replace brand metadata, add navigation destinations, hide feature-gated surfaces, register settings panels, and describe custom tools or integrations.
id. If you provide an item with the same id, Overlay replaces that item’s metadata. Unspecified default items remain available.
Component Keys
Bootstrap returns serializable metadata only. React renderers are local to each surface and are referenced by stablecomponentKey strings. For example, a settings panel can declare componentKey: 'acme.settings.security'; the web app maps that key to a local React component, while mobile can map the same key to a React Native renderer or ignore it.
Build-Time Extensions
Use@overlay/extension-sdk for trusted extensions that are bundled at build time:
extendOverlayAppConfig, map React renderers in src/extensions/registry.tsx, and keep authenticated API handlers under /api/v1/extensions/:extensionId/:path.
Feature Visibility
UsefeatureFlags for coarse product areas and policyGates for enterprise policy. Feature flags remove gated registry entries from bootstrap when disabled. Policy gates let surfaces show disabled states, warnings, or hidden entries without changing backend route behavior.
Model Providers
Register model provider metadata inmodelProviders. Use modelPolicy hooks for local model filtering and defaults. Hooks are not serialized to bootstrap; only serializable model provider metadata is returned to other surfaces.