Automerge: A JSON-like data structure (a CRDT) that can be modified concurrently

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • automerge

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

    Unless I'm mistaken, according to their own TS types[0], `Automerge.merge` should return a `{ readonly [P in keyof T]: Freeze }`. Getting `undefined` here is probably a bug.

    [0] https://github.com/automerge/automerge/blob/main/%40types/au...

  • peritext

    A CRDT for asynchronous rich-text collaboration, where authors can work independently and then merge their changes.

    An interesting challenge in the CRDT era today, is that there isn't an ideal CRDT for rich text yet. When I mean rich text, I expect simple boundary based formattings like bold/italics but more importantly complex block based elements like tables and lists.

    While recent CRDTs like peritext has done an incredible job of focussing on this specific problem of rich text, even that project hasn't extended its types to cover table operations and list operations. I've been thinking about this problem deeply and my intuition is that anything that resembles semantic trees are tricky to deal with using a generic CRDT.

    For example a generic tree/json CRDT cannot be used for an AST tree - and it will most likely fail. I wrote about this a while back - https://news.ycombinator.com/item?id=29433896

    If you have ideas on how to approach this problem, join us on this thread https://github.com/inkandswitch/peritext/issues/27#issuecomm...

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • y-crdt

    Rust port of Yjs

    Kevin is also actively working on a Rust port of yjs [0] which is great for any native app that doesn't run on Javascript but would like to use CRDTs (or interop with other Javascript clients).

    [0]: https://github.com/y-crdt/y-crdt

  • automerge-rs

    Discontinued Rust implementation of automerge [Moved to: https://github.com/automerge/automerge]

  • yjs

    Shared data types for building collaborative software

  • crdt-benchmarks

    A collection of CRDT benchmarks

  • rtc

    Discontinued Real Time Collaboration for Jupyter and beyond (by jupyterlab)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • dokieli

    :bulb: dokieli is a clientside editor for decentralised article publishing, annotations and social interactions

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts