My co-founder and I moved on to a new project a year ago, but this thing is still buzzing along on a cheap DO box and works like a charm with basically zero maintenance. Frontend is vanilla JS, backend in Go and the protocol is our slight modification of differential sync[0] to (re-)synchronize all text and metadata.