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/client2. 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 SDKs | JavaScript and TypeScript, React hooks, Swift (iOS, macOS), Kotlin (Android), Flutter |
|---|---|
| Server SDKs | Node.js, Python, Go, PHP and a REST API |
| Transport | WebSocket with automatic fallback to HTTP long polling |
| Typical latency | Under 50 ms between clients in the same region |
| Document size | Up to 10 MB per document, unlimited documents |
| Message history | 24 hours on Free, up to 30 days on paid plans |
| Regions | EU (Frankfurt), EU (Amsterdam), US East, US West, Asia (Singapore) |
| Billing units | Concurrent 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.