TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Automerge: a new foundation for collaboration software [video]

68 pointsby mr_tyzicover 3 years ago

7 comments

thunderbongover 3 years ago
Relevant github link:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge</a>
评论 #29508299 未加载
adeptimaover 3 years ago
How Yjs works from the inside out <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=0l5XgnQ6rB4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=0l5XgnQ6rB4</a>
yuchiover 3 years ago
I really love Automerge, had some fun in the last months with building some small experiment. Some major problem I see currently is the lacking ecosystem.<p>I had to roll my own persistence implementation on top of IndexedDB and I still haven’t touched the backend synchronization part.<p>I would love to see Y.js or Automerge more throughly supported by a wider ecosystem of elements that make building a production app easier.
评论 #29507831 未加载
评论 #29507776 未加载
评论 #29507787 未加载
adeptimaover 3 years ago
Main takeaways from toying with both Yjs and Automerge:<p>1. Extremely difficult to build backend in other programming languages than Nodejs<p>Rust implementations <a href="https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge-rs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge-rs</a> <a href="https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;y-crdt" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;y-crdt</a><p>You will cry looking at source code <a href="https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;y-crdt&#x2F;blob&#x2F;main&#x2F;yffi&#x2F;src&#x2F;lib.rs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;y-crdt&#x2F;blob&#x2F;main&#x2F;yffi&#x2F;src&#x2F;lib.rs</a><p>C-binding, FFI, etc<p>2. Both communities are great. Before committing recommend to go through issues and discussions<p>Yjs forum <a href="https:&#x2F;&#x2F;discuss.yjs.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;discuss.yjs.dev&#x2F;</a><p>Automerge Slack <a href="https:&#x2F;&#x2F;join.slack.com&#x2F;t&#x2F;automerge&#x2F;shared_invite&#x2F;zt-e4p3760n-kKh7r3KRH1YwwNfiZM8ktw" rel="nofollow">https:&#x2F;&#x2F;join.slack.com&#x2F;t&#x2F;automerge&#x2F;shared_invite&#x2F;zt-e4p3760n...</a><p>3. Watch out implementations of underline libraries. Trace lib0 libraries usage and internals in Yjs for example<p><a href="https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;yjs&#x2F;blob&#x2F;7bd764fba73fecb8bacd1eb82a4bd7c9e15a33ee&#x2F;src&#x2F;utils&#x2F;ID.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yjs&#x2F;yjs&#x2F;blob&#x2F;7bd764fba73fecb8bacd1eb82a4b...</a> <a href="https:&#x2F;&#x2F;github.com&#x2F;dmonad&#x2F;lib0" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dmonad&#x2F;lib0</a><p>JavaScript engines use UTF-16 encoding. Golang (my main backend language) is using UTF-8 ... reimplementing Yjs code in Golang with algorithms and optimization and futher scaling might become impossible for small startups.<p>Build parallels with Automerge<p>4. Rich editing similar to Google Doc is very very complicated subject with lot of landmines<p>BitPhinix seems making a progress on updated example <a href="https:&#x2F;&#x2F;github.com&#x2F;BitPhinix&#x2F;slate-yjs&#x2F;tree&#x2F;next" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BitPhinix&#x2F;slate-yjs&#x2F;tree&#x2F;next</a><p>However there is a surprise waiting for you on backend <a href="https:&#x2F;&#x2F;github.com&#x2F;BitPhinix&#x2F;slate-yjs&#x2F;blob&#x2F;next&#x2F;examples&#x2F;backend&#x2F;package.json" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BitPhinix&#x2F;slate-yjs&#x2F;blob&#x2F;next&#x2F;examples&#x2F;ba...</a><p>See &quot;@hocuspocus&#x2F;server&quot; <a href="https:&#x2F;&#x2F;tiptap.dev&#x2F;hocuspocus&#x2F;" rel="nofollow">https:&#x2F;&#x2F;tiptap.dev&#x2F;hocuspocus&#x2F;</a><p>5. There&#x27;s ProseMirror editor for collaborative editing. However you might not like its internals compare to Slatejs (which is far from perfect and lot of people rely on hard forks)<p>Feel free to ping me on Telegram @reactima if you are committed to build something similar to Notion.so or thinking to add collaborating editing with Slatejs and Reactjs. I&#x27;m really curious how other people plans to live with Yjs and Automerge impressive foundation.
评论 #29508184 未加载
评论 #29519653 未加载
评论 #29509307 未加载
评论 #29511292 未加载
ImprobableTruthover 3 years ago
One sort of issue is that this only directly supports documents&#x2F;DAGs, so representing many-to-many relationships is a bit iffy. This is similar to how Rust can&#x27;t directly represent cyclic data structures.<p>It&#x27;s not a <i>huge</i> deal, because working with indices works well enough, but it is a bit annoying.
picturover 3 years ago
what problem does this solve?
aogailiover 3 years ago
MeteorJS solved this 12 years ago...but good to see more thoughts being put into this.
评论 #29509519 未加载
评论 #29508754 未加载
评论 #29521416 未加载