BLUEPRINTS

Purpose-built SDKs.
Install and ship.

Blueprints are high-level SDKs for common real-time patterns. Each one wraps the NoLag core client with a domain-specific API and a ready-made topic layout. MIT licensed, and they run against your own broker. No wiring, no boilerplate.

HOW IT WORKS

From zero to real-time in three steps.

01

Pick a Blueprint

Choose the SDK that matches your use case. Chat, notifications, tracking, dashboards, or build your own.

npm i @nolag/chat
02

Connect with one token

Grant the Blueprint's topics to your actors, then attach the SDK to a NoLag client with your App Slug.

const client = NoLag(token, { url });
const chat = new NoLagChat({ client, appName });
await client.connect();
await chat.ready();
03

Use the domain API

Call methods that make sense for your domain. No topics, no subscriptions, no low-level wiring.

room.sendMessage("Hello!");
room.startTyping();
EXPLORE BLUEPRINTS

Every Blueprint. Every API.

Select a Blueprint to see its full API surface, events, and topic layout.

Chat

available
@nolag/chat

A 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.

$ npm i @nolag/chat @nolag/js-sdk

What's included

Multi-room
Join and switch between rooms with joinRoom() / leaveRoom()
Presence
Per-room user lists and global online users across all rooms
Typing indicators
startTyping() auto-stops after timeout, typing events per room
Streamed messages
Chunk-by-chunk message streaming on the _stream topic for replies that arrive in pieces
Unread counts
Per-room unread tracking with markRead() and unreadChanged events
User status
Online, away, busy, offline with setStatus() and profile updates

Topic layout

TOPICS
messages
_stream
_typing
ROOMS
general
random
help
dev
LOBBY
Online presence tracking
import { NoLag } from "@nolag/js-sdk";
import { NoLagChat } from "@nolag/chat";

const client = NoLag(ACTOR_TOKEN, { url: KRAKEN_URL });
const chat = new NoLagChat({
  client,
  appName: APP_SLUG, // the App Slug from your auth config
  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

connectedchatConnection established
userOnlinechatA user came online
userOfflinechatA user went offline
messageroomNew message received
typingroomTyping state changed
userJoinedroomUser joined this room
userLeftroomUser left this room
streamStartroomA streamed message began
streamEndroomA streamed message finished
BLUEPRINT VS DIY

What you don't have to build.

Every Blueprint handles the plumbing so you can focus on your product.

WITHOUT BLUEPRINTS

Design topic structure for your use case
Build presence tracking from pub/sub primitives
Implement typing indicators with timers
Deduplicate repeated deliveries
Manage room state and user lists
Re-hydrate presence after a reconnect
Build unread count tracking
Map low-level events to domain concepts

WITH BLUEPRINTS

npm install the Blueprint SDK
Connect with one token
Call domain methods like sendMessage()
Presence, typing, lobbies work out of the box
Topic layout designed for you
Lobby presence re-hydrated after reconnects
Unread counts, user lists included
Ship in minutes, customize later
USE CASES

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.

Multi-roomTyping indicatorsUnread countsStreamed messagesPresencePrivate rooms

IoT & Telemetry

Fleet management, smart home, energy monitoring, and industrial sensor data streaming.

Telemetry streamingCommand dispatchAck trackingDevice rolesConfigurable timeoutDevice presence

Collaborative Apps

Figma, Linear, Notion-style apps with cursor tracking, live document sync, and conflict resolution.

Cursor trackingReal-time syncUser presenceOperation logSelection sharing

Live Dashboards

Trading platforms, ops centers, observability tools with filtered real-time data.

Metric streamingRolling aggregationWidget stateViewer trackingTime-series buffer

Live Notifications

Real-time notifications with channels, read/unread tracking, and badge counts.

Multi-channelRead/unread trackingBadge counts

Vehicle Tracking

Live GPS tracking for vehicles and assets with client-side geofencing.

Live GPSCircle geofencesPolygon geofencesZone-based groupingAsset presence

Pick a Blueprint.
Ship today.

Every Blueprint is MIT licensed and runs against your own broker. Install the package, connect with your token, and start building.