Most classic web services don't have this requirement because they do in fact have a central authority -- the service itself.
Moreover, for web services, it is crucial that the central authority actually be authoritative. You don't want client and server state kind of gets smooshed together arbitrarily, but for the client's view of the state to be a mere suggestion - one which the server always overrides.
So my view is that CRDTs are not really an appropriate basis for building this kind of feature in a web service.
However I think the tech is awesome (Replicache actually started out as a true CRDT and moved to its current design after extensive iteration with customers).
See https://www.figma.com/blog/how-figmas-multiplayer-technology... for how Figmas came to same conclusion wrt CRDTs for their service.
--
(P|C)ouchDB:
- Using couch as your backend db ends up being a nonstarter for most applications. A distributed multitenant database is a big big thing and a hugely important technical decision. Most orgs are not going to go with couch just to get sync. See https://medium.com/wandering-cto/mobile-syncing-with-couchba... for an example of this.
- The couchdb replication protocol offers no help with conflict resolution. It just tells you there was a conflict and gives you two conflicting documents. This isn't practical for most applications.