Skip to content

Getting started

Introduction

Syndra keeps data in sync across devices, users and servers with offline support, presence and conflict-free merges built in.

On this page

Syndra is a real-time sync engine for modern apps. You write to a local document, and Syndra makes sure every device, tab and server sees the same state in milliseconds, even through flaky connections.

app.ts
import { createClient } from "@syndra/client"

const syndra = createClient({ project: "acme-notes" })
const doc = syndra.doc("notes/welcome")

doc.subscribe((note) => render(note))
doc.update((note) => {
  note.title = "Hello, Syndra"
})

That’s it. No websockets to manage, no retry logic, no merge conflicts.

Why Syndra

Local-first

Reads and writes hit a local replica first, so your UI never waits on the network.

Conflict-free

CRDT-based documents merge concurrent edits deterministically. No lost updates.

Works offline

Changes queue while offline and sync automatically when the connection returns.

Presence built in

Show who’s online, where their cursor is and what they’re selecting.

Start building