Automerge är ett bibliotek med datastrukturer designat för att bygga kollaborativa applikationer, vilket tillåter användare att oberoende uppdatera applikationstillståndet lokalt, även offline, och synkronisera ändringar när en nätverksanslutning är tillgänglig. Biblioteket hanterar automatisk sammanslagning av samtidiga ändringar från olika enheter utan dataförlust, liknande Git men med stöd för komplexa filformat, och spårar ändringar för versionshantering, jämförelse och förgrening. Automerge är nätverksagnostiskt, använder oföränderlig tillståndshantering (immutable state) och är en konfliktfri replikerad datatyp (CRDT) som möjliggör automatisk sammanslagning utan behov av en central server. Det är portabelt med implementeringar i JavaScript (kompatibel med Node.js, Electron, webbläsare) och Rust (kompilerar till WebAssembly, exponerar C API för iOS och andra plattformar), samt erbjuder typdefinitioner för TypeScript. Automerge är primärt designat för 'local-first software' som prioriterar lokala datakopior för offlinearbete, förbättrad integritet och prestanda, men kan även integreras med centraliserade servrar för liknande fördelar.