[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"branding":3,"analytics":7,"article-loro-labs-adds-mergeable-containers-to-its-crdt-library":10,"sections":36},{"siteName":4,"siteTagline":5,"publisherName":4,"contactEmail":6},"The Revision","Tech news, decoded.","editor@therevision.news",{"gaMeasurementId":8,"adsenseClientId":9},"G-ZW2MV82GYR","ca-pub-8533917693782264",{"article":11},{"id":12,"slug":13,"title":14,"dek":15,"body_md":16,"tags_json":17,"published_at":18,"created_at":19,"updated_at":20,"status":21,"review_note":22,"review_notes":23,"image_url":24,"persona_id":22,"persona_name":22,"section":25,"tags":26,"sources":31,"feedback":35,"feedback_at":22,"cost_usd":35,"total_tokens":35},436,"loro-labs-adds-mergeable-containers-to-its-crdt-library","Loro Asks Whether CRDTs Should Handle Creation, Not Just Edits","The CRDT framework argues that concurrent creation of data structures deserves the same principled merge semantics as concurrent edits.","Loro, the open-source CRDT framework, is making the case that collaborative software has a quiet blind spot: it can merge edits automatically, but creation is still usually a job for a central server.\n\nCRDTs — Conflict-free Replicated Data Types — are the standard tool for syncing concurrent edits in distributed systems without a coordinator. Two users edit the same document; the data structure reconciles the changes without asking anyone for permission. The catch is that this elegance breaks down before the first edit ever happens: when two nodes independently spin up the same logical container, there is no principled CRDT answer for how to merge those two acts of creation. Loro's proposal, which it calls \"mergeable containers,\" extends CRDT semantics to cover that moment — making initialization itself a mergeable operation rather than a step that implicitly assumes one canonical creator.\n\nThis matters most for local-first software, the design philosophy that says an app should work fully offline and sync later, with no server required for correctness. Most local-first tools quietly depend on a server to break the tie at creation time, even when edits are handled peer-to-peer. A workable mergeable-container model could remove that last dependency and close an argument that has followed peer-to-peer collaboration tools for years: that true serverless sync is impractical for anything beyond toy examples.\n\nThe post landed with modest traction, which is fitting — this is the kind of foundational plumbing question that matters enormously if it works and disappears into footnotes if it doesn't.","[\"crdts\",\"distributed-systems\",\"local-first\",\"collaboration\"]","2026-06-09T04:48:10.000Z","2026-06-09T07:12:49.062Z","2026-06-18T06:59:43.577Z","published",null,[],"https:\u002F\u002Fcdn.xyz.onl\u002Farticle-images\u002Floro-labs-adds-mergeable-containers-to-its-crdt-library.webp","dev-tools",[27,28,29,30],"crdts","distributed-systems","local-first","collaboration",[32],{"name":33,"url":34},"Hacker News","https:\u002F\u002Floro.dev\u002Fblog\u002Fmergeable-containers",0,{"sections":37},[38,43,48,53,58,63,68,73,78,82,87,92,97,102],{"name":39,"slug":40,"count":41,"latest_published_at":42},"AI","ai",2602,"2026-07-18T18:30:00.000Z",{"name":44,"slug":45,"count":46,"latest_published_at":47},"Security","security",315,"2026-07-17T19:30:00.000Z",{"name":49,"slug":50,"count":51,"latest_published_at":52},"Deals","deals",179,"2026-06-29T20:02:07.000Z",{"name":54,"slug":55,"count":56,"latest_published_at":57},"Policy","policy",169,"2026-07-17T19:49:53.000Z",{"name":59,"slug":60,"count":61,"latest_published_at":62},"Hardware","hardware",126,"2026-07-16T20:09:48.000Z",{"name":64,"slug":65,"count":66,"latest_published_at":67},"Consumer Tech","consumer-tech",94,"2026-07-16T16:29:46.000Z",{"name":69,"slug":70,"count":71,"latest_published_at":72},"Software","software",72,"2026-07-17T09:42:05.000Z",{"name":74,"slug":75,"count":76,"latest_published_at":77},"Science","science",66,"2026-07-10T10:29:37.000Z",{"name":79,"slug":25,"count":80,"latest_published_at":81},"Dev Tools",60,"2026-07-16T16:59:13.000Z",{"name":83,"slug":84,"count":85,"latest_published_at":86},"Startups","startups",42,"2026-07-16T16:30:35.000Z",{"name":88,"slug":89,"count":90,"latest_published_at":91},"Gaming","gaming",41,"2026-07-09T04:00:00.000Z",{"name":93,"slug":94,"count":95,"latest_published_at":96},"General","general",29,"2026-07-10T22:28:58.000Z",{"name":98,"slug":99,"count":100,"latest_published_at":101},"Reviews","reviews",20,"2026-06-24T12:00:01.000Z",{"name":103,"slug":104,"count":105,"latest_published_at":106},"How-To","how-to",6,"2026-06-16T09:00:00.000Z"]