@zxch3n.com.bsky.social
Founder of @Loro.dev https://github.com/zxch3n
Loro Inspector is here! Now you can directly browse the current state and complete edit history of your Loro documents in the browser. You can also use this tool to time travel to any version in the history of your Loro document.
30.04.2025 07:28 โ ๐ 19 ๐ 4 ๐ฌ 1 ๐ 0Code screenshot: // First we define our components const Name = defComponent( // Components should all have globally unique identifiers. "01JNVY76XPH6Q5AVA385HP04G7", // Components are defined in terms of a Loro type LoroMap<{ first: string; last?: string }>, // We pass a function to initialize the component state to match it's type. (map) => map.set("first", "unnamed") ); // Let's make age a counter const Age = defComponent("01JNVYC0T0V6SDKDWQP51MYKS1", LoroCounter, (age) => age.increment(1) ); // Now we can create our entity, which is internally a Loro document. const ent = new Entity(); // We can check which components an entity has ent.has(Name); // false // We can get a component, initializing it if it doesn't exist. const name = ent.getOrInit(Name); // We get then get fields on the component name.get("first"); // unnamed // And set them too! name.set("last", "person"); // Happy birthday ๐ฅณ ๐ ent.getOrInit(Age).increment(1);
Just implemented the first working attempt at an Entity-Component API on top of the @loro.dev CRDT.
It's a super work-in-progress start to the new Leaf SDK that will be powering @roomy.chat and a.weird.one.
Personal software has been trending recently.
I enjoyed reading @leerob.com's "personal software" and @edmarferreira.bsky.social 's "selfish software". Hope you enjoy them too!
xuanwo.io/links/2025/0...
Diving into Loro on stream today. Local-first, CRDT library written in Rust. Excited to explore it deeper! Starting in one hour.
28.01.2025 15:30 โ ๐ 8 ๐ 1 ๐ฌ 1 ๐ 0It's so hard to feel this warmth from interactions on social platforms these days ๐ฅน
16.01.2025 18:25 โ ๐ 3 ๐ 0 ๐ฌ 0 ๐ 0The animated gifs and illustrations in @loro.dev's docs are delightful. Finding these docs to be an enjoyable and readily comprehensible introduction to CRDTs. Thanks @zxch3n.com!
14.01.2025 21:55 โ ๐ 10 ๐ 1 ๐ฌ 0 ๐ 0New version control primitives have been added to Loro:
- diff(from, to): calculate the differences between any two versions
- revertTo(version): Generate ops to revert to the target version
- applyDiff(diff): Apply differences
You can use them to implement functions like git squash and revert.
Joseph Gentle
04.01.2025 10:46 โ ๐ 4 ๐ 0 ๐ฌ 0 ๐ 0They were using github.com/tidalcycles/...
12.12.2024 17:35 โ ๐ 5 ๐ 0 ๐ฌ 0 ๐ 0just watched DJs coding Haskell live?!
12.12.2024 17:25 โ ๐ 18 ๐ 1 ๐ฌ 2 ๐ 183 GB
02.12.2024 11:53 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 0diagram showing how two phones will use a new app called "skyroh" to talk to each other over p2p communications channels, and the regular bluesky API
Ok, a rundown of how we get p2p ATProtocol going:
1. Run *standard* ATProto services, locally
2. Use p2p to holepunch TCP connections
3. Add a thin layer for peering management
Bundle all that up in an app, and we have a recipe for adding resilience & scaling to Bluesky. ๐งต teim:
No, they are expected to be deleted
30.11.2024 00:51 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Sounds like a binding error
28.11.2024 10:32 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0@loro.dev is also worth a try!
28.11.2024 10:31 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0They can stick with the old version
28.11.2024 09:00 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0They have to provide the best timeline with an acceptable privacy policy (though it sounds hard). Otherwise, consumers may leave, putting them in a very different position than previous products. If this becomes a trend, I wouldn't be surprised if people call it the next generation of the Web.
27.11.2024 17:53 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0From another perspective, we can also think that their design forces them to compete more fairly for advertising business with other app views or recommendation streams without the network effect advantage.
27.11.2024 17:53 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0Thanks for the elaboration!
27.11.2024 16:31 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0bisecting issues is much easier in a linear history
27.11.2024 13:57 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 1Was listening to *City of Stars* and saw this ๐ญ
27.11.2024 10:02 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Yeah, I'd like to build upon that
27.11.2024 08:46 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0Once ATProtocol has formed network effects and is sustainable, future companies can explore more ethical business models in this decentralized ecosystem.
27.11.2024 03:57 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0Although I am excited about the next generation of the web, such things have never been accomplished by a single company alone. I hope that Bluesky can take a pragmatic approach (rather than pursuing innovation in everything) and prioritize the sustainability of the ATProtocol ecosystem.
27.11.2024 03:57 โ ๐ 1 ๐ 0 ๐ฌ 2 ๐ 0I also look forward to seeing different business models or using user devices to provide computing power to reduce marginal costs. But if Bluesky has to make another bet on a different business model for reasons like "ethical" considerations, the chances of failure would be too great.
27.11.2024 03:57 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0Bluesky has already made a significant bet on ATProtocol and may have exhausted its innovation budget. It's unrealistic and unfair to require a company to build everything in an innovative and "ethical" way.
27.11.2024 03:57 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0The slides for the talk are available here: loro-slidev.vercel.app
26.11.2024 19:05 โ ๐ 12 ๐ 4 ๐ฌ 0 ๐ 0I don't see it that way. Google also profits from ads, but I consider it a great product. Companies can choose how 'evil' they want to be. And if Bluesky can make ATProtocol popular and sustainable, that's already a great achievement.
26.11.2024 11:55 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0It's also rather simplistic to categorize the evolution of the Web into different generations merely based on broad business model classifications
26.11.2024 11:44 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0