I really love this article. I made the transition in the opposite direction: I am a distributed systems engineer who found himself working on a collaborative text editor, and initially it was <i>very</i> unintuitive to me that text editors were not a completely solved problem.<p>One of the most confusing things about the space is that you only learn after using every high-level editing library (Lexical, <i>etc</i>.) that ProseMirror really is the right abstraction, a masterpiece of engineering and architecture. The reason this is unintuitive is because ProseMirror is essentially the same level of abstraction as a compiler middle-end, and it's surprising that there are no higher-level abstractions that seem to work better in practice. If you are doing something remotely non-trivial, you will need the customization that only ProseMirror provides, and you will learn that the hard way. You will need the decade of bug-fixes for various touch devices and old browsers, you'll need the careful work that has gone into performance, and so on.<p>For a long time the missing piece was that (1) PM defaults are not what the vast, vast majority of users want, and (2) it is nearly impossible to get it to work cleanly with React. react-prosemirror, in my view, <i>is</i> the solution. Every day I am happy that I get to work with it, and I am not sure what we'd do without it.