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
Initialize the SDK with your token. Rooms, topics, presence, and replay are pre-configured.
await chat.connect();
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, presence, and replay
- 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, message history with replay on reconnect, unread counts, and online user tracking. Works with any framework.
What's included
Pre-configured infrastructure
import { NoLagChat } from "@nolag/chat";
const chat = new NoLagChat(token, {
username: "Alice",
rooms: ["general", "random"],
});
chat.on("connected", () => console.log("Ready!"));
chat.on("userOnline", (u) => console.log(u.username, "online"));
await chat.connect();API Methods
| new NoLagChat(token, options) | Create a chat instance |
| chat.connect() | Connect and set up presence |
| 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 |
| replayStart | room | Message replay beginning |
| replayEnd | room | Message replay 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.