I just tried crdt.el[^1] and holy crap that's cool. I love that it's all built in Emacs, like, there's no special server I have to run to get this to work. I'm blown away.
I use straight.el[^2] and use-package[^3] for package management; if you want to give crdt.el a whirl, just use this:
(use-package crdt
:straight (crdt :type git :repo "https://code.librehq.com/qhong/crdt.el"))
A fun alternative if you're in the terminal is tmate[^4], which is a fork of tmux. That one uses a central server to negotiate the connection though, I believe.[^1]: https://code.librehq.com/qhong/crdt.el
[^2]: https://github.com/raxod502/straight.el
[^3]: https://github.com/jwiegley/use-package
[^4]: https://tmate.io/