5 ms·
ProseMirror is easily the best source code I've ever worked with. The components are so well architected, that inside the codebase there's a 100 page book on so
by lewisjoe 8y ago
ProseMirror is easily the best source code I've ever worked with. The components are so well architected, that inside the codebase there's a 100 page book on software design principles waiting to come out. I'm serious. Marijn Haverbeke should certainly write a AOSA (http://aosabook.org/en/index.html http://aosabook.org/en/index.html) style piece on how & why the software is architected in such way.
What sets ProseMirror apart from the rest (Slate, Quill, Trix, Draft, etc.) is - ProseMirror isn't simply a library. It's an entire platform with all bits and pieces needed to build a simpler rich text library. Rightly named "toolkit" instead of a "library".
Source: We are using it to build our soon-to-be-released rich text feature in comments for Zoho Writer (https://writer.zoho.com https://writer.zoho.com)
- williamstein 8y agoAgreed. Many of the ideas in ProseMirror beautifully reflect many of the best modern trends in frontend web development (e.g., react).
- Existenceblinks 8y agoSorry, what are ideas it reflects, and what's best modern trends? Is React one of the best .. modern trends?
- dman 8y agoIs Zoho funding ProseMirror development at https://marijnhaverbeke.nl/fund/ https://marijnhaverbeke.nl/fund/ ?
- xuejie 8y agoInterestingly, the platform design of ProseMirror is one of the key reason which drives me to Quill in one of my side projects. Don't get me wrong, if your goals mostly align with ProseMirror, it's a perfect tool, but if you want to deviate with ProseMirror in some aspects, the coupling design between different ProseMirror packages is actually a headache. On the other hand, Quill feels more like a simple library targeting exactly one use case. In addition, I feel that Quill's delta format [1] is much more elegant and easier to work with than ProseMirror's changeset [2], especially if your architecture uses a different language that's not JS. [1]: https://quilljs.com/docs/delta/ https://quilljs.com/docs/delta/ [2]: https://github.com/ProseMirror/prosemirror-changeset https://github.com/ProseMirror/prosemirror-changeset
- fiatjaf 8y agoI tried to use ProseMirror for https://coisas.alhur.es/ https://coisas.alhur.es/, couldn't make it do the simplest goal in the world: be a Markdown editor, because documentation was confusing, very confusing. Then I tried to read the code: what I found was thousands of micro-modules, which were impossible to understand how fitted together or what each one did.