← Back to blog
MIGRATION GUIDE6 min read

Migrate from Ably to NoLag

HB
Henco Burger
July 31, 2026

Ably is a mature realtime platform with rich delivery semantics. NoLag shares the same pub/sub foundation and presence model, so moving across is mostly a matter of renaming a few concepts. This guide maps Ably onto NoLag and shows the same flow in both.

Why teams move

NoLag keeps the realtime transport you rely on and adds:

  • Blueprint SDKs for chat, notifications, dashboards, tracking, and more.
  • A coordination layer for AI agents: dispatch, share state, observe, and approve, on the same platform as your app features.
  • One place for human-facing and agent-facing realtime.

Concept map

AblyNoLag
API key / token authActor access tokens
ChannelRoom + topic
channel.subscribe('event', cb)room.on('topic', cb)
channel.publish('event', data)room.emit('topic', data)
channel.presencePresence (per room)
HistoryMessage logging and replay

Before: Ably

import * as Ably from 'ably'

const ably = new Ably.Realtime('API_KEY')
const channel = ably.channels.get('chat')

channel.subscribe('message', (msg) => {
  console.log('Received:', msg.data)
})

channel.publish('message', { text: 'Hello!' })

After: NoLag

import { NoLag } from '@nolag/js-sdk'

const client = NoLag('your_access_token')
await client.connect()

const room = client.setApp('chat').setRoom('general')
room.subscribe('message')

room.on('message', (data) => {
  console.log('Received:', data)
})

room.emit('message', { text: 'Hello!' })

Presence and history

Ably presence maps to NoLag presence, tracked per room with join and leave events and a live member list. If you use Ably history to fetch missed messages, NoLag covers that with message logging and replay, so a client that reconnects can catch up.

Delivery guarantees

Ably is known for its delivery semantics. NoLag offers quality-of-service levels 0, 1, and 2 (at most once, at least once, exactly once) so you choose the guarantee per message rather than paying for the strongest everywhere.

Authentication

Ably authenticates with API keys and tokens, often carrying capabilities in the token itself. NoLag centres permissions on the actor: every credential resolves to a typed actor (user, device, server, session), and its read and write access lives server-side as per-topic ACL rather than in each token. For browser clients, your backend mints a short-lived JWT (client token) signed with a project signing key, so long-lived credentials never leave your servers.

Next steps