Local-first collaboration infrastructure

The cloud is someone else's computer. Ship apps that don't care.

Mavryx is a CRDT-based sync engine for app developers: offline by default, conflict-free merges, peer-to-peer or relayed sync — with data stored wherever your customer demands. Cloud outages become someone else's incident.

TypeScript · Swift · Kotlin · Rust core · MIT-licensed client

Cloud-only architecture is a liability now.

Your customers learned three lessons the hard way: outages, invoices, and data sovereignty audits.

One region down, all work stops

When a cloud region blinks, every “collaborative” app becomes a spinner. Users with the file on their own disk keep working. Yours could too.

Egress bills that scale with success

Every keystroke round-trips through metered infrastructure. Local-first apps sync diffs peer-to-peer — your COGS curve bends the right way.

“Where exactly is our data?”

Procurement now asks for data residency by contract. “In our cloud” loses deals that “on your servers, synced our way” wins.

The hard parts, as a library.

You build the app. Mavryx handles merge math, transport, and storage policy.

CRDT data layer

Documents, lists, counters, and rich text that merge without conflicts — mathematically, not “last write wins and pray.” Audited Rust core.

Any transport

Peer-to-peer over local network, WebRTC across the internet, or our relay when NAT wins. Devices find the fastest path automatically.

Bring-your-own storage

Sync targets are pluggable: our cloud, the customer's S3 bucket, their on-prem server, or nothing but devices. Residency becomes a config value.

End-to-end encryption

Relays see ciphertext only. Key exchange rides the same CRDT layer, so even key rotation merges cleanly across offline devices.

From npm install to offline-capable in a sprint.

01

Wrap your state

const doc = mavryx.doc(schema) — your app state becomes a synced document with the same API you'd write by hand.

02

Pick transports & storage

Enable P2P, relay, or both; point storage at us, the customer's bucket, or local-only. Three lines of config, swappable per tenant.

03

Delete your conflict code

Optimistic updates, retry queues, “document was modified” dialogs — gone. Merges are deterministic on every platform, guaranteed by test vectors.

Developers ship it, users feel it.

0 ms

perceived latency — every write is local first

−70%

typical sync-related backend code deleted after migration

4 SDKs

TypeScript, Swift, Kotlin, Rust — one merge semantics

“Our field-engineering app gets used in basements and on rooftops with zero bars. We spent two years fighting sync bugs before moving to Mavryx. Now offline isn't a feature we maintain — it's just how the app works. And the on-prem storage option closed two enterprise deals our cloud-only competitors couldn't touch.”

EK
Elias Kovach CTO, Fieldnote Systems
MIT-licensed client Audited Rust core E2E encrypted relays Self-host everything

Build something that survives the next outage.

Get the SDK, the starter templates, and a relay sandbox. Free for development, forever.