I haven’t explored this space in a while, but I have a couple of examples that could be helpful. A Clojure library of mine [0] has a decent README with some background reading on how to use operational transform.
I also reimplemented it in a surprisingly tiny amount of OCaml [1] which was a fun way to learn that language :)
[0]: https://github.com/jahfer/othello [1]: https://github.com/jahfer/othello-ocaml