explaingit

automerge/automerge-classic

Analysis updated 2026-06-24

14,705JavaScriptAudience · developerComplexity · 4/5LicenseSetup · easy

TLDR

Deprecated original JavaScript CRDT library for building collaborative offline-first apps, now superseded by the Rust-based Automerge.

Mindmap

mindmap
  root((automerge-classic))
    Inputs
      JSON-like state
      Local edits
      Remote changes
    Outputs
      Merged document
      Change history
    Use Cases
      Build offline-first apps
      Sync collaborative state
      Study CRDT internals
    Tech Stack
      JavaScript
      TypeScript
      Node
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Sync shared state between offline-first clients without a central server

USE CASE 2

Build a collaborative text or list editor with auto-merging history

USE CASE 3

Study how a JSON CRDT is implemented in JavaScript

USE CASE 4

Migrate a legacy automerge-classic project to the newer Rust-based Automerge

What is it built with?

JavaScriptTypeScriptNode

How does it compare?

automerge/automerge-classicbrowserify/browserifylibrespeed/speedtest
Stars14,70514,71814,692
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyeasymoderate
Complexity4/52/52/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Project is deprecated and new work should target the Rust-based Automerge in a separate repository.

MIT license, free to use and modify for any purpose with attribution.

In plain English

Automerge-classic is the original JavaScript version of Automerge, a library that helps developers build collaborative applications. The README opens with a deprecation notice: active development has moved to a new implementation written in Rust, which lives in a separate repository and can be ported to other platforms more easily. This classic repo is preserved but no longer the focus. The core idea is a JSON-like data structure called a CRDT, which stands for conflict-free replicated data type. In plain terms, it lets several people edit the same piece of data at the same time, even when they are offline, and then merge their changes automatically without losing work. The repository description mentions the same thing: a data structure that different users can modify concurrently and that merges itself back together. The topics listed on the repo are CRDT, JavaScript, and offline-first, which gives a fair picture of who it is for. The README points readers to automerge.org for documentation and to a separate project called automerge-repo for a set of TypeScript examples. There is also a Slack community link for people who want to ask questions or follow the project. Setup is short. If you use npm, you run npm install automerge. If you use yarn, you run yarn add automerge. You can then import the library in regular JavaScript or in TypeScript. If you want to work on the library itself, you clone the repository and use yarn commands to install dependencies, run the test suite in Node, run browser tests, or build a bundled JavaScript file that can be loaded with a script tag. The project is released under the MIT license, with copyright held by the Automerge contributors from 2017 to 2021. Anyone starting a new project today is steered toward the newer Rust-based implementation rather than this one.

Copy-paste prompts

Prompt 1
Give me a 5-minute setup guide for automerge-classic in a Node project
Prompt 2
Show me how to make and merge concurrent edits to an automerge document
Prompt 3
Walk me through building a browser bundle of automerge-classic with yarn
Prompt 4
Explain how automerge-classic differs from the current Rust-based Automerge
Prompt 5
How do I migrate an existing automerge-classic project to the new Automerge

Frequently asked questions

What is automerge-classic?

Deprecated original JavaScript CRDT library for building collaborative offline-first apps, now superseded by the Rust-based Automerge.

What language is automerge-classic written in?

Mainly JavaScript. The stack also includes JavaScript, TypeScript, Node.

What license does automerge-classic use?

MIT license, free to use and modify for any purpose with attribution.

How hard is automerge-classic to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is automerge-classic for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.