-
-
Notifications
You must be signed in to change notification settings - Fork 702
Description
What’s broken?
When a document contains many blocks, typing starts to feel delayed: the text appears in the editor a bit after the IME/input has already produced it.
This is not just an IME-specific issue on one input method. I can reproduce the same visible echo delay with different input methods, and the same content also lags in the official BlockNote demo.
What seems important is the number of blocks, not only the total character count:
- A long document with relatively few large paragraph blocks is much smoother.
- A document with many
headingblocks starts lagging around ~50k characters total. - A document with many
bulletListItem/numberedListItemblocks also starts lagging around ~50k characters total.
So the current suspicion is that performance degrades with block count / block-level rendering cost, rather than with plain text length alone.
Also relevant:
- The same content reproduced in plain Tiptap does not show the same lag.
- The lag is about typing echo / visible editor update delay, not initial load time or scrolling.
What did you expect to happen?
Typing should remain responsive even when the document has many blocks.
The visible editor echo should keep up with input instead of lagging behind.
Steps to reproduce
Open BlockNote with the latest version.
2. Create a document that has many blocks instead of a few long paragraphs.
3. For example, create:
- many H1 blocks totaling around ~50k characters, or
- many list item blocks totaling around ~50k characters.
- Start typing continuously.
- Notice that the visible editor echo/caret update falls behind input.
Control case:
- Create another document with similar total text length, but keep it as a small number of long paragraph blocks.
- Typing is noticeably smoother there.
Additional comparison:
- The same content also reproduces in the official BlockNote demo.
- The same content in Tiptap is much smoother / does not show the same lag.
BlockNote version
0.47.3
Environment
- React 18 - Reproduced on the latest BlockNote as of March 27, 2026
Additional context
This does not currently look like:
- app-specific autosave logic
- a floating toolbar integration
- one specific IME implementation
It looks more like a BlockNote core/editor performance issue related to many blocks.
Contribution
- I'd be interested in contributing a fix for this issue
Sponsor
- I'm a sponsor and would appreciate if you could look into this sooner than later 💖