← Back to choco.tools

Pillar 01

Unbreakable

Real-time collaboration without merge conflicts. Not eventually consistent. Immediately consistent. Every keystroke, every device, every time.

For teams

Write together. Never lose work.

Traditional documentation tools force you into lock-step editing — one person writes, everyone else waits. Or worse, everyone writes simultaneously and someone's changes get silently overwritten.

choco.tools uses Conflict-free Replicated Data Types (CRDTs) at the document layer. Every character insertion, deletion, and formatting change is a discrete operation that merges deterministically — no matter the order, no matter the network conditions.

What this means in practice

5 writers, 1 document, 0 conflicts

Your entire team can edit the same page simultaneously. Changes merge in real-time.

Offline-first by design

Write on a plane, in a tunnel, on the subway. Your changes sync the moment you reconnect.

Sub-100ms sync latency

Changes propagate across all connected peers in under 100 milliseconds.

No "someone is editing" locks

There are no locks, no checkout, no "merge my changes" buttons.

For business

Eliminate the documentation bottleneck

Documentation delays ship dates. When only one person can write at a time, docs become the bottleneck. CRDT-native collaboration removes that constraint entirely.

3x faster reviews

Writers and reviewers work in the same document simultaneously. No round-trip PRs for typo fixes.

Zero data loss

Every keystroke is persisted locally before syncing. Network failures never cause lost work.

Measurable ROI

Teams report 60% reduction in time-to-publish after switching from lock-based editors.

Under the hood

How CRDTs work in choco.tools

choco.tools implements Y.js, a high-performance CRDT framework. Each document is a Y.Doc — a shared data structure where operations are commutative and idempotent. This means:

  • Operation-based merging: inserts and deletes are encoded as operations with unique IDs and causal ordering.
  • No central authority: any peer can generate operations independently. The result is deterministic regardless of reception order.
  • Garbage collection: tombstones are compacted periodically to keep document size bounded.
  • Binary encoding: Y.js uses a compact binary protocol — a 10,000-word document with full edit history is ~50KB.

SLO target: <100ms CRDT sync latency | <200ms API response | 99.9% availability

Ready to write without compromise?

Unbreakable — choco.tools | choco.tools