ECHO · SYNC

Memory that follows you across devices.

Client engine v0.1 · event-sourced CRDT vault · converges through the relay

The relay stores sealed boxes; the vaults hold memory. This is what connects them — so your memory follows you from device to device without the relay ever seeing your key or your content.

Two devices. Concurrent edits. One shared memory. The relay learns nothing.
Governed by the Core Laws. Sync is where Laws 6, 10 & 11 become a loop — local-first ownership, hostile infrastructure, proof never data — across more than one device.Read the Laws →
CRDT SYNC · LIVE · REAL RELAY

Edit on two devices at once. Lose nothing.

Device A creates a vault and seals a memory. Device B pairs — the vault key is wrapped device-to-device over ECDH, so the relay only ever stores ciphertext. Then both go offline and edit at the same time. Watch them converge to byte-identical state, with matching fingerprints and no dropped edits.

Two devices, real Ed25519 + ECDH + AES-256-GCM in your browser. They pair, both edit while offline, then converge through the real relay — which never holds the key or a word of the content.

HOW IT WORKS

An append-only log, folded into agreement.

vault — event-sourced CRDT

The vault is an append-only log of events; state is a pure fold of that log with deterministic ordering. Same events in, byte-identical state out — regardless of arrival order. Capsules are an OR-Set; fields are last-write-wins registers.

sync — the client engine

Ed25519 signs every relay request; ECDH transfers the vault key during pairing; AES-256-GCM seals each event into a padding bucket. push() and pull() move sealed events with a cursor.

the clean split

The relay moves opaque boxes — it cannot read or merge. The client decrypts and merges. The relay never resolves conflicts; that rule from the spec is what keeps your memory yours.

HONEST SHARP EDGES

What this reference does not yet solve.

LWW within a field

Two devices editing the same capsule's text concurrently resolve last-writer-wins on that field. Edits to different capsules always both survive. The standard CRDT trade-off; richer field-merge is a later upgrade.

Clock skew

Ordering uses wall-clock timestamps with deviceId/id tiebreaks. Large skew between devices can reorder near-simultaneous edits. A logical clock (Lamport/hybrid) is the hardening path.

No compaction yet

The event log grows forever in this reference. Production folds to periodic snapshots and drops superseded events below the min synced cursor.

None of these touch the two core guarantees: the key stays off the relay, and concurrent edits don't lose data. Everything else is a known, stated upgrade path — not a surprise.