Show HN: Domain-tailored CRDTs for collaboration without server involvement
Hi HN! I wanted to research more elegant ways to enable document sync and collaboration in my apps sometime last year, and ended up discovering a new class of data structure that made it possible to build collaboration into documents right on the data level, completely separate from the network architecture. (Maybe you&#x27;re already familiar with CRDTs. Well, these aren&#x27;t just ordinary CRDTs, but almost <i>meta-CRDTs</i> that can represent a variety of convergent data types in a generic way. They also make it super easy to implement things like past revision viewing and delta patches.) As a proof of concept, I built a basic real-time collaborative text editor for iOS that works equally well over regular iCloud sync, CloudKit Sharing, and offline, as well as a simple mesh network simulator for macOS that has support for collaborative text editing and simple Bézier editing.<p>The code is strictly educational for the time being, but I&#x27;m working on a Swift library that can hopefully put this stuff to use in real apps. Hope to start dog-fooding in release software by the end of the year!