High-Level SDKs
Domain-specific SDKs built on top of @nolag/js-sdk. Each SDK provides a purpose-built API for a specific use case, handling topics, presence, reconnection, and state management out of the box.
All high-level SDKs share the same architecture: a MainClass manages the connection, lobby presence, and rooms, while a RoomClass handles topic subscriptions and domain-specific state. Each SDK peer-depends on @nolag/js-sdk ^1.0.0.
Communication
Chat
@nolag/chatMulti-room chat with presence, typing indicators, message replay, and user mapping.
Notify
@nolag/notifyReal-time notifications with channels, read/unread tracking, and badge counts.
Signal
@nolag/signalWebRTC signalling: peer discovery, offer/answer exchange, and ICE candidate relay.
Voice
@nolag/voiceA live phone call as a room: stream its transcript and steer the agent mid-conversation.
Engagement
Data
Infrastructure
Collaboration
Architecture
Every high-level SDK follows the same invariant pattern:
| Layer | Role | Example |
|---|---|---|
| MainClass | Wraps NoLag() client, manages lobby presence, room join/leave, reconnect restoration | NoLagChat, NoLagSignal |
| RoomClass | Wraps RoomContext, subscribes to domain topics, delegates to managers | ChatRoom, SignalRoom |
| Managers | Handle domain-specific state (stores, trackers, resolvers) | MessageStore, PeerManager |
Installation
Each SDK is published as a separate npm package:
All SDKs peer-depend on @nolag/js-sdk ^1.0.0, which must be installed alongside.