// the find
automerge/automerge-classic
A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
The original pure-JavaScript implementation of Automerge, a CRDT library for building collaborative apps where concurrent edits to a shared document automatically merge without conflicts. It's been deprecated — the team rewrote it in Rust (automerge/automerge) and all active development is there. This repo is effectively a museum piece.
The architecture split between frontend and backend modules is clean and made the Rust rewrite tractable. The test suite is substantial — fuzz tests, sync tests, columnar encoding tests — covering the hard edge cases in CRDT merging. The columnar encoding in backend/columnar.js was a real performance win over the naive approach and informed the Rust design.
Deprecated — the README says so in the first line. Last real push was March 2023 and no fixes are coming. Pure-JS CRDT is genuinely slow at scale; this is exactly why the rewrite happened, so adopting this version means inheriting that perf ceiling. The TypeScript types live in a separate @types directory and are incomplete — you'll hit gaps on anything non-trivial.