antics 2 hours ago
- Cheaper than a Tiptap enterprise license (essentially a 50% discount).
- Dramatically higher quality, in a way that is directly noticeable to users. The "naive" React/ProseMirror integration has terrible state tearing issues that make your text editor feel haunted. Cursors in weird spots, mismatched transaction errors, strange races that happen only sometimes, lots of `setTimeout` and `queueMicrotask` to patch over weird problems. The core issue is a little hard to explain, but React and ProseMirror both have a kind-of virtual representation of the DOM, and when that is updated, they figure out what changes need to be made to the DOM, and then execute them. But these cycles are completely incompatible. The solution is to rewrite the ProseMirror `EditorView` in pure React, which is what `react-prosemirror` has done. Tiptap did not do this, and it is empirically very challenging to manage as a result. I am happy to discuss more if people are interested.
- Collab on ProseMirror is in a very challenging spot, and this is the right team to work on it. Since we spend > $10k/yr funding the project, we have worked with them directly on this, and we know. We wrote about the alternatives in a recently-popular HN thread: https://news.ycombinator.com/item?id=47359712 although as god is my witness, I 100% promise we did not coordinate this in any way.
- Shane is one of the best engineers working in the frontend today. You want his attention, and it is worth paying for.
smoores 3 hours ago
Handle with Care is a software collective that builds and maintains open source rich text editing libraries, including React ProseMirror [1]. We all came from The New York Times’ content management system team, and we spend a lot of time thinking about rich text and collaborative editing.
Now we’re working on something new: Pitter Patter will be a fully featured collaborative rich text editing toolkit, with all of the bells and whistles you need for your own text editor.
The space we’re entering is not devoid of solutions — Lexical, Slate, ProseMirror, and Tiptap are all viable options for building modern, browser-based rich text editors. But we feel pretty confident that we’re going to be able to bring some value, nonetheless.
First of all, Lexical, Slate, and ProseMirror (especially ProseMirror, in our opinion!) are all excellent rich text libraries, but they are also quite low level. You can build nearly anything atop them, but you will have to do quite a lot of the building yourself. Sometimes that’s exactly what you’re looking for — in that case, Pitter Patter can still provide you some value, because we’re going to be releasing individual libraries (like a CodeBlock node view, advanced markdown serialization, and suggest changes) that interop with the existing ProseMirror ecosystem.
But if you want something that’s more batteries-included, you’re mostly left with Tiptap. Tiptap has been dominant in the space for a while, but we think we can do better!
- We’re building on top of React ProseMirror, a truly React-native ProseMirror view, that doesn’t have to make any of the compromises that Tiptap’s React integration currently makes [2]
- We have a deep understanding of ProseMirror’s internals (and we’re not afraid to use it!)
- Pitter Patter will be completely open source
- We’re building on top of prosemirror-collab-commit, the best (only?) rich text collaboration protocol that is both correct and fast [3]
Anyway, we’re posting here for two reasons:
1. Maybe there are some more collaborative rich text editing nerds here that will be exciting (or not!) to hear about this. Sign up for our newsletter if you want updates!
2. Maybe there are some companies that are looking for alternative solutions to what’s out there. Consider sponsoring us on GitHub [4], or reaching out if you want to be more involved!
[1]: https://github.com/handlewithcarecollective/react-prosemirro...
[2]: https://smoores.dev/post/why_i_rebuilt_prosemirror_view/