Hey HN, I'm Philip from the Tiptap team. We've just released Tiptap 2.5, our most performant editor yet. This latest release comes with major performance improvements and is much faster than Tiptap 2.4 in React!
For developers using Tiptap in React, we've heard about performance issues. So the key to building a faster Tiptap editor is the new, more performant API for re-rendering the editor. Tiptap 2.5 is fully backwards compatible, and you can now use new options to optimize the rendering behavior of your editor.
We've created a demo that visualizes the difference in re-render frequency between the old and new versions in React. You can see it in action and play around with it here: https://tiptap.dev/docs/examples/advanced/react-performance
While this release primarily benefits React users, we've also made some performance improvements for Vue 3.
Feel free to try out Tiptap 2.5 and let us know what you think. We're here to answer any questions and are always open to contributions.
Happy coding,
Philip and the Tiptap team
Most React prosemirror-based editors were making the same mistake a couple years ago; re-rendering everything on each keystroke. Particularly the tool bars, and then the node views of course.
I created an observable(MobX) "fact cache" that I populate with extra state information necessary to drive the toolbars and other complex editor UI after each keystroke. Active node types, active marks, nodes fully in selection, and etc. Super fast to update, can even prune search space based on doc diffs, and minimizes React work.