automerge-classic
by
automerge

Description: A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

View automerge/automerge-classic on GitHub ↗

Summary Information

Updated 4 minutes ago
Added to GitGenius on June 1st, 2026
Created on April 19th, 2017
Open Issues & Pull Requests: 79 (+0)
Number of forks: 459
Total Stargazers: 14,698 (+1)
Total Subscribers: 194 (+0)

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,764 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • design-discussion (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The automerge-classic repository provides a JavaScript library designed to facilitate collaborative applications by enabling concurrent modifications to shared data structures. At its core, Automerge-classic implements a Conflict-free Replicated Data Type (CRDT), specifically tailored for JSON-like data structures. This allows multiple users or devices to make changes independently and concurrently, without the risk of conflicts or data loss. When these changes are later synchronized, Automerge automatically merges them, ensuring that all participants see a consistent and up-to-date view of the shared data.

Automerge-classic is particularly useful for applications where real-time collaboration is essential, such as document editors, shared whiteboards, or any system where users need to work together on the same data. The library abstracts away the complexities of conflict resolution, version tracking, and merging, making it easier for developers to build robust collaborative features. By leveraging CRDTs, Automerge-classic guarantees that all changes are merged deterministically, regardless of the order in which they arrive, and without requiring a central server or complex coordination protocols.

The repository offers straightforward installation and usage instructions. Developers can add Automerge-classic to their projects via npm or yarn, and then import it using standard JavaScript or TypeScript syntax. The build process supports both Node.js and browser environments, with commands for installing dependencies, running tests, and creating bundled JavaScript files for browser use. This flexibility ensures that Automerge-classic can be integrated into a wide range of application architectures.

While Automerge-classic was the original implementation of Automerge, it is now deprecated in favor of a newer, Rust-based version found at github.com/automerge/automerge. The Rust implementation offers improved performance and portability across platforms, and all ongoing development has shifted to that repository. Nevertheless, Automerge-classic remains a valuable reference for understanding the principles and mechanics of CRDTs in JavaScript, and it continues to be available for legacy projects or educational purposes.

The repository is supported by comprehensive documentation available at automerge.org, and there are additional resources such as the automerge-repo for TypeScript examples. The project is open source, released under the MIT license, and has an active community accessible via Slack. The codebase includes automated test suites for both Node.js and browsers, ensuring reliability and correctness.

In summary, automerge-classic is a pioneering library for collaborative data management in JavaScript, implementing CRDTs to enable automatic, conflict-free merging of concurrent changes. Its ease of integration, robust merging capabilities, and focus on collaborative use cases have made it a foundational tool for developers building real-time, multi-user applications. Although superseded by a newer implementation, automerge-classic remains an important milestone in the evolution of collaborative software and distributed data structures.

automerge-classic
by
automergeautomerge/automerge-classic

Repository Details

Fetching additional details & charts...