This is a toy sync project built to intuit about Conflict-Free Replicated Data Types (CRDTs).
I was considering an approach for real-time sync for Mindbook that allows seamless collaboration, supports offline work (local-first), and end-to-end encryption. So, my only option (at the time) was to use CRDTs. Thus, I decided to first implement toy versions of CRDTs.
Before that, I had created a sync system and conflict resolution protocol for ShapesXR. The approach was simpler as we didn't need decentralization or end-to-end encryption, and syncs were mostly independent (no arrays sync, which are hard to sync properly).
Fun thought: If I were to do it again, I would consider using plain text and LLMs under the hood for text sync instead of CRDTs for conflict resolutions.