{"slug": "loro", "name": "Loro", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 6, "warners": 0, "score": 3.36, "rising": -0.98, "first": "2025-11-13", "latest": "2026-08-02", "why": "I love Loro and its probably my favorite open source project", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 4, "compare": 0, "warn": 0}, "spark": [1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I love Loro and its probably my favorite open source project", "kind": "", "icon": true, "domain": "loro.dev", "github_repo": null, "official_url": "https://loro.dev/", "pricing": "", "aliases": ["Loro"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 759843584, "item_id": 47490224, "url": "https://news.ycombinator.com/item?id=47490224", "by": "metmac", "date": "2026-03-23", "stance": "recommend", "quote": "Loro a lovely CRDT library", "excerpt": "https://loro.dev/ Relevant. Loro a lovely CRDT library, explored implementing VCS semantics with CRDTs.", "context": "", "use_case": "CRDT-based version control exploration", "switched_from": "", "story": "A Coherent Vision for the Future of Version Control"}, {"id": 758478800, "item_id": 47404925, "url": "https://news.ycombinator.com/item?id=47404925", "by": "mlysk", "date": "2026-03-16", "stance": "recommend", "quote": "build the basis of loro which allows to prune history", "excerpt": "Great article - you mentioned \"two most popular families of collab editing [...] OT and CRDT\". One thing you should look into is the work of https://braid.org - Its combining crdt with ot. Work that is inspired by that build the basis of loro which allows to prune history (helping with the tombstone issue you mentioned)", "context": "", "use_case": "CRDT collaborative editing", "switched_from": "", "story": "Lies I was told about collaborative editing, Part 2: Why we don't use Yjs"}, {"id": 737444032, "item_id": 46090252, "url": "https://news.ycombinator.com/item?id=46090252", "by": "fellowniusmonk", "date": "2025-11-29", "stance": "recommend", "quote": "I love Loro and its probably my favorite open source project", "excerpt": "I love Loro and its probably my favorite open source project (you can see me refer to it as such in my comment history), I have a very specific multi CRDT and search indexing architecture that precluded me from using it.", "context": "", "use_case": "CRDT library", "switched_from": "", "story": "The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 737480785, "item_id": 46092549, "url": "https://news.ycombinator.com/item?id=46092549", "by": "satvikpendem", "date": "2025-11-29", "stance": "warn", "quote": "I like Loro (https://loro.dev) but the fundamental problem remains that they're document based without a good query engine", "excerpt": "Well yeah, who expected them not to be a full blown CRDT? Similarly, I like Loro (https://loro.dev) but the fundamental problem remains that they're document based without a good query engine, ie you have to literally target a specific nested entry in the CRDT to get the data you want.", "context": "", "use_case": "CRDT document sync", "switched_from": "", "story": "The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types"}]}], "who": [], "tags": [], "use_cases": ["crdt data store", "crdt sync engine", "crdt-based version control exploration", "crdt collaborative editing", "crdt document sync", "crdt library"], "compared": [{"slug": "automerge", "name": "Automerge", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46087022", "title": "The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49142794", "title": "Show HN: Syncular \u2013 offline-first SQL sync with TypeScript and Rust cores", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48884984", "title": "Ask HN: What Are You Working On? (July 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47478401", "title": "A Coherent Vision for the Future of Version Control", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47359712", "title": "Lies I was told about collaborative editing, Part 2: Why we don't use Yjs", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46937696", "title": "Ask HN: What Are You Working On? (February 2026)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {"neutral": 1}, "2026-03": {"recommend": 2}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"neutral": 1}, "2026-08": {"neutral": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 786307888, "item_id": 49144243, "url": "https://news.ycombinator.com/item?id=49144243", "by": "satvikpendem", "date": "2026-08-02", "stance": "neutral", "quote": "currently for Flutter I use Loro via flutter_rust_bridge as the CRDT data store", "excerpt": "Looks interesting, was looking for something like this as currently for Flutter I use Loro via flutter_rust_bridge as the CRDT data store, but it's not SQL so some things like big queries are annoying. How are you handling CRDTs in a SQL database? I thought those were notoriously hard as relational wasn't built for CRDT style syncing?", "context": "", "use_case": "CRDT data store", "switched_from": "", "story": "Show HN: Syncular \u2013 offline-first SQL sync with TypeScript and Rust cores"}, {"id": 782171936, "item_id": 48885746, "url": "https://news.ycombinator.com/item?id=48885746", "by": "aguacaterojo", "date": "2026-07-12", "stance": "neutral", "quote": "It sends bundles of Loro CRDT operations.", "excerpt": "https://github.com/airdaydev/airday Underpinning my current app is an e2ee local-first sync engine, basically it is a traditional client-server sync (encrypted logs + snapshots sequenced with integers). It sends bundles of Loro CRDT operations. I wrapped the client side in WASM to power the web app and the CLI and have started a swift wrapper to port to native iOS. Bundle size is 3MB/1.2MB g-zipped so pretty happy wi", "context": "", "use_case": "CRDT sync engine", "switched_from": "", "story": "Ask HN: What Are You Working On? (July 2026)"}, {"id": 759843584, "item_id": 47490224, "url": "https://news.ycombinator.com/item?id=47490224", "by": "metmac", "date": "2026-03-23", "stance": "recommend", "quote": "Loro a lovely CRDT library", "excerpt": "https://loro.dev/ Relevant. Loro a lovely CRDT library, explored implementing VCS semantics with CRDTs.", "context": "", "use_case": "CRDT-based version control exploration", "switched_from": "", "story": "A Coherent Vision for the Future of Version Control"}, {"id": 758478800, "item_id": 47404925, "url": "https://news.ycombinator.com/item?id=47404925", "by": "mlysk", "date": "2026-03-16", "stance": "recommend", "quote": "build the basis of loro which allows to prune history", "excerpt": "Great article - you mentioned \"two most popular families of collab editing [...] OT and CRDT\". One thing you should look into is the work of https://braid.org - Its combining crdt with ot. Work that is inspired by that build the basis of loro which allows to prune history (helping with the tombstone issue you mentioned)", "context": "", "use_case": "CRDT collaborative editing", "switched_from": "", "story": "Lies I was told about collaborative editing, Part 2: Why we don't use Yjs"}, {"id": 751357558, "item_id": 46959847, "url": "https://news.ycombinator.com/item?id=46959847", "by": "robcohen", "date": "2026-02-10", "stance": "neutral", "quote": "It uses Loro CRDTs", "excerpt": "https://github.com/rustledger/rustledger I'm building a Rust implementation of Beancount, the double-entry bookkeeping language. It covers the full Beancount syntax, all the booking methods, a BQL query engine, plugins (including rust and python). It works as both a CLI tool and a Rust library, and it compiles to WebAssembly too. https://github.com/rustledger/rustfava This is a fork of Fava, the web UI that Beancount", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (February 2026)"}, {"id": 737480785, "item_id": 46092549, "url": "https://news.ycombinator.com/item?id=46092549", "by": "satvikpendem", "date": "2025-11-29", "stance": "warn", "quote": "I like Loro (https://loro.dev) but the fundamental problem remains that they're document based without a good query engine", "excerpt": "Well yeah, who expected them not to be a full blown CRDT? Similarly, I like Loro (https://loro.dev) but the fundamental problem remains that they're document based without a good query engine, ie you have to literally target a specific nested entry in the CRDT to get the data you want.", "context": "", "use_case": "CRDT document sync", "switched_from": "", "story": "The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types"}, {"id": 737444032, "item_id": 46090252, "url": "https://news.ycombinator.com/item?id=46090252", "by": "fellowniusmonk", "date": "2025-11-29", "stance": "recommend", "quote": "I love Loro and its probably my favorite open source project", "excerpt": "I love Loro and its probably my favorite open source project (you can see me refer to it as such in my comment history), I have a very specific multi CRDT and search indexing architecture that precluded me from using it.", "context": "", "use_case": "CRDT library", "switched_from": "", "story": "The CRDT Dictionary: A Field Guide to Conflict-Free Replicated Data Types"}, {"id": 734719105, "item_id": 45919944, "url": "https://news.ycombinator.com/item?id=45919944", "by": "satvikpendem", "date": "2025-11-13", "stance": "neutral", "quote": "I use some CRDTs like Loro and Automerge", "excerpt": "Looks great. I use some CRDTs like Loro and Automerge, are there any learnings or collaboration you're taking from them to improve DeltaDB? Also the name, I thought it was a database with CRDTs due to the \"DB\" at the end of DeltaDB, but it's a version control system, I thought that was somewhat misleading, any reason why it's named so?", "context": "", "use_case": "", "switched_from": "", "story": "Zed is our office"}]}