Real-time Sync API

Live, shared state for every app you build

Add multiplayer editing, presence and offline sync to web and mobile apps with a few lines of code. SyncBlaze stores each document, merges concurrent edits and sends changes to every connected client in milliseconds.

What you get

Everything you need to turn a single-player app into a collaborative one.

Shared documents
JSON documents that many users edit at once. Edits merge automatically using CRDTs, with no locking and no lost updates.
Presence
See who is online, what they are looking at and where their cursor is. Presence clears itself when a client disconnects.
Channels and messages
Publish and subscribe to events for chat, notifications and live dashboards. Message history is kept for replay.
Offline first
Clients queue changes while offline and sync when they reconnect. Your app stays fast on slow networks.
Access rules
Sign short-lived tokens on your server to control who can read or write each document or channel.
Webhooks and server SDK
Receive change events on your backend, validate edits or write documents from a server job.

Start in three steps

1. Install the client

npm install @syncblaze/client

2. Connect and open a document

import { SyncBlaze } from "@syncblaze/client"

const blaze = new SyncBlaze({ key: "pk_live_…", token: await getToken() })
const doc = blaze.doc("board:42")

doc.on("change", (state) => render(state))
doc.set("cards.c7.title", "Ship v2")      // merges with edits from other users
blaze.presence("board:42").update({ cursor: { x: 120, y: 48 } })

3. Authorize users from your server

// Node, Python, Go and PHP server SDKs available
const token = blaze.server.createToken({
  user: "u_812",
  allow: { "board:42": "write", "room:ops": "read" },
  expiresIn: "1h",
})

Specifications

Client SDKsJavaScript and TypeScript, React hooks, Swift (iOS, macOS), Kotlin (Android), Flutter
Server SDKsNode.js, Python, Go, PHP and a REST API
TransportWebSocket with automatic fallback to HTTP long polling
Typical latencyUnder 50 ms between clients in the same region
Document sizeUp to 10 MB per document, unlimited documents
Message history24 hours on Free, up to 30 days on paid plans
RegionsEU (Frankfurt), EU (Amsterdam), US East, US West, Asia (Singapore)
Billing unitsConcurrent connections and messages per month. See pricing.

Common uses

Collaborative editors
Whiteboards, design tools, docs and spreadsheets with live cursors.
Live dashboards
Push metrics and status to every open screen without polling.
Field and mobile apps
Crews keep working without signal and sync when they are back online.
Chat and comments
Threads, typing indicators and read receipts on top of channels.
Multiplayer games
Shared game state and lobbies for turn-based and casual games.
Shopping carts
One cart across phone and laptop, updated instantly.

Questions

How is a message counted?

Each change or event delivered to one client counts as one message. A change sent to 10 connected clients counts as 10 messages. Presence heartbeats are free.

What happens when I hit the connection limit?

On paid plans, extra connections are allowed and billed at the published overage rate. On the free plan new connections are refused with a clear error until others disconnect.

Can I export my documents?

Yes. Every document is available as JSON through the REST API, and you can schedule exports to your own S3 bucket.

Do you support end-to-end encryption?

You can encrypt document fields on the client before syncing. SyncBlaze will then store and relay them without being able to read them, though server-side merging works only on unencrypted fields.

Works with the rest of SyncBlaze

Every plan includes all four services. Usage from each counts against the same plan limits, so you pay for one account, not four.

Start on the free plan

No card needed. Upgrade when your project grows, or talk to us about a custom setup.