Here at Atlassian we’ve been using ProseMirror quite heavily for about two years now. It’s an awesome library and it satisfies most of our requirements.
While working on complex features we’ve found that it takes quite a bit of time and effort to get document and selection manipulation right. We’ve found certain patterns that we follow from plugin to plugin, and a copy-pasted pieces of code around the codebase. We wanted an abstraction layer that’d incapsulate that complexity into a set of utility functions that we’d reuse.
We created a small library: prosemirror-utils with the idea in mind that we’d become more efficient and focus on developing features.
I thought the community might be interested in that as well. Feel free to give feedback and contribute!