Purpose-built SDKs.
Install and ship.
Blueprints are high-level SDKs for common real-time patterns. Each one wraps the NoLag core with a domain-specific API, pre-configured infrastructure, and a working demo app. No wiring, no boilerplate.
From zero to real-time in three steps.
Pick a Blueprint
Choose the SDK that matches your use case. Chat, notifications, tracking, dashboards, or build your own.
Connect with one token
Attach the SDK to a NoLag client with your app slug. Rooms, topics, presence, and lobbies are pre-configured.
const chat = new NoLagChat({ client, appName });
await client.connect();
await chat.ready();
Use the domain API
Call methods that make sense for your domain. No topics, no subscriptions, no low-level wiring.
room.startTyping();
Test every Blueprint in the browser.
Every Blueprint comes with a fully interactive demo app. Edit the code, see the preview update in real-time, and connect with your own access token to test against the live NoLag infrastructure. No local setup required.
- Built-in code editor with live preview
- Reset, save, download, or fork as your own Blueprint
- Connect with your token to test real pub/sub and presence
- Share your test app with a link, no deployment needed

Every Blueprint. Every API.
Select a Blueprint to see its full API surface, events, and infrastructure config.
Chat
availableA complete chat SDK built on the NoLag core. Handles room management, user presence, typing indicators, streamed (token-by-token) messages, unread counts, and online user tracking. Works with any framework.
What's included
Pre-configured infrastructure
import { NoLag } from "@nolag/js-sdk";
import { NoLagChat } from "@nolag/chat";
const client = NoLag(ACTOR_TOKEN);
const chat = new NoLagChat({
client,
appName: APP_SLUG, // the slug returned when you created the app
username: "Alice",
rooms: ["general", "random"],
});
chat.on("connected", () => console.log("Ready!"));
chat.on("userOnline", (u) => console.log(u.username, "online"));
await client.connect();
await chat.ready();API Methods
| new NoLagChat({ client, appName, ... }) | Create a chat instance on an injected NoLag client |
| chat.ready() | Resolves once the wrapper has set up on the connected client |
| chat.joinRoom(name) | Join a chat room (returns ChatRoom) |
| chat.leaveRoom(name) | Leave a chat room |
| chat.getOnlineUsers() | All users online across rooms |
| chat.setStatus(status) | Set online/away/busy/offline |
| room.sendMessage(text) | Send a message (optimistic) |
| room.startTyping() | Signal typing (auto-stops) |
| room.getMessages() | All messages in the room |
| room.getUsers() | All users in the room |
Events
| connected | chat | Connection established |
| userOnline | chat | A user came online |
| userOffline | chat | A user went offline |
| message | room | New message received |
| typing | room | Typing state changed |
| userJoined | room | User joined this room |
| userLeft | room | User left this room |
| streamStart | room | A streamed message began |
| streamEnd | room | A streamed message finished |
What you don't have to build.
Every Blueprint handles the plumbing so you can focus on your product.
WITHOUT BLUEPRINTS
WITH BLUEPRINTS
Built for every real-time use case.
From chat apps to IoT platforms, NoLag powers real-time experiences across industries.
Chat & Messaging
Team chat, customer support, in-app DMs, and social messaging with rooms, presence, and typing indicators.
IoT & Telemetry
Fleet management, smart home, energy monitoring, and industrial sensor data streaming.
Collaborative Apps
Figma, Linear, Notion-style apps with cursor tracking, live document sync, and conflict resolution.
Live Dashboards
Trading platforms, ops centers, observability tools with filtered real-time data.
Live Notifications
Real-time notifications with channels, read/unread tracking, and badge counts.
Vehicle Tracking
Live GPS tracking for vehicles and assets with client-side geofencing.
Remote Terminals
Execute commands on remote devices via browser for DevOps, IoT management, and CI/CD.
Pick a Blueprint.
Ship today.
Every Blueprint works on the free tier. Install the package, connect with your token, and start building.