I read this with great interest. Sometimes technologies come around that make me seriously wonder if I should embrace them or continue on the path I’ve already designed.<p>They include: CRDTs, PouchDB, hypercore, etc.<p>What I currently have is my own, PHP-based implementation of essentially a history of “collaborative documents that evolve through time” — with each document having one machine as a source of truth:<p><a href="https://qbix.com/platform/guide/streamsConcepts" rel="nofollow noreferrer">https://qbix.com/platform/guide/streamsConcepts</a><p>So basically, I think that syncing and CRDTs (y.js and automerge) can be excellent for collaborating on documents, but not so great for chatrooms and smart contracts / crypto where order of operations matters. For those, you can implement <i>optimistic interface updates</i> but when conflicts (rarely) arise, your interface may roll back changes it displayed. This is especially true after a netsplit.<p>I thought about using PouchDB but the thing is that CouchDB is an extra process people have to run and we want our stuff to run anywhere Wordpress does. Ditto for hypercore. These are great technologies, but it seems what we have is great for fhe very reason tht it’s in PHP - still the most widely supported commodity hosting environment in the world by far. What are the stats these days for PHP vs Node, Go etc.?