Skip to main content
Real-time collaboration on webAI is split across four focused facades. Each one handles one aspect of the shared experience:
FacadePurpose
sdk.roomHost or join a space. Get the room code, list public rooms, send chat messages, subscribe to room state.
sdk.messagingUnified chat — conversations, messages, AI send (streaming), reactions, typing indicators, unread counts.
sdk.canvasShared app state inside a space (CRDT-synced). Read, update, and subscribe to app state scoped by app and project.
sdk.filesFile and folder storage, including files shared within a space.
Apps access them through the platform bridge object:
const sdk = window.apogeeSDK || null;
if (!sdk) return;
const roomCode = await sdk.room.host();
Declare any facades you use in your shell manifest under requires.managers.

Full reference

The complete reference for each facade — method signatures, parameter tables, event payloads, and return types — lives in the in-app Developer panel.

Open the Developer panel

  1. Open Settings → Experimental and toggle Developer Mode on.
  2. A terminal icon appears in the top right of the app. Click it to open the Developer panel.
  3. Go to the Documentation section → Docs tab and select the facade you need.

Best practices

Design your state model to handle partial participation — peers can drop out at any time. For CRDT-backed shared state (via sdk.canvas), conflicts merge automatically, but your app should still handle concurrent edits and incoming remote updates gracefully. Use the Lab tab in the Developer panel to experiment with each facade against a live runtime before wiring it into your app.

Learn more

Build apps

Build your first app using the webAI SDK and platform facades.

Spaces

Shared spaces for real-time collaboration.