We've certainly had our battles. When we first made Kitemaker[0], we were using the "old" pre 0.5 version of Slate and we built a lot of functionality on that.
When they did the total rewrite, we put off upgrading for a long time and that was probably a mistake because we just kept building up new things that needed to be ported.
Earlier this year we bit the bullet and ported things over to the newest version. I like the API a lot and it works quite well for us. The best part is that internally slate is "ready" for building a collaborative editor, so that's what we did. Work items in Kitemaker are fully collaborative, using operational transformation.
Downsides of slate for me are:
- Docs are lacking still. They were better before the re-write IMO and still catching up
- Memoization of leaf nodes doesn't work properly so you get a lot of unnecessary re-rendering (at least in the version we're using)
Wow I can imagine the struggle of upgrading :D... But you did it, that's awesome! Real time collaboration is something we need to do very soon, glad to hear that. Thanks for sharing!
Happy to have a chat when you start diving into real time collaboration, I worked on this with kevsim and we have some learnings we haven't blogged about yet :)