A few years ago I evaluated rebasing Notion’s editor on various editor frameworks. ProseMirror came out at the top of my list, but I wasn’t sure how to rank TipTap.
Having more batteries included is good, but I’ve found that layers of abstraction can really get in the way. For example if I need to fix a bug with Android Gboard input, without a framework I can exactly control the DOM structure and input handling, but the downside is no one fixes the bug for me. With ProseMirror, I’d need to tunnel through 1 layer of abstraction and/or patch 1 layer of abstraction. With Tiptap, maybe I’d need to fork-and-patch both you and ProseMirror? Each layer also increases our maintenance liability. If the ProseMirror author decides to retire or take the library in a direction that doesn’t work for us, then we need to fork and maintain it. If both you and the ProseMirror do that, we have more code we need to maintain.
Ultimately I decided adopting a library was too risky, and opted to improve our native ComtentEditable handling. Because our product’s selling point is an editor, we want to control our own destiny.
For others who can afford a library but still need to weigh the risks of that abstraction stack, can you share some insights?