Lexical at 100 blocks
76.7% faster than TiptapBenchmarks / Editor engines
Architecture dashboard
✓ Verified runView methodology
Widget-first before activation
73% less than full TiptapDropped across every engine
No scrolling winnerFix subscriptions and virtualize blocks
Read the decision →Live comparison
Performance by workload
100 blocks · warm cache · native CPU
Compare
Typing latency
20-character input · lower is better
MetricFull TiptapLexicalWidget-first
Ready time53.9 ms44.6 ms44.3 ms
Idle heap3.18 MiB2.36 MiB2.05 MiB
Type 20 characters41.2 ms9.6 ms45.1 ms
Paste 2,000 characters1.8 ms0.9 ms1.3 ms
Scale curve
Widget fan-outTyping cost as blocks grow
Native CPU · 20-character input
10
100
500
1k
2k
Full TiptapLexicalWidget-first
Production bundle
Widgets −73%Initial JavaScript
Gzip · isolated builds
Initial loadLazy rich-text chunk
Recommended architecture
Keep the widget document model
Widgets are the right abstraction for packageable, typed content. The benchmark exposed implementation work, not a reason to return to one full-document rich-text editor.
- 01Key subscriptions
Notify the changed block or editing channel, not every mounted widget.
- 02Virtualize idle blocks
Keep thousands of off-screen wrappers out of the DOM.
- 03Test Lexical inside one widget
Compare editors after document bottlenecks are gone.
Methodology
Measured in the browser, not estimated from package names.
Each engine received a separate production build. Five cold and five warm samples ran at every document size and CPU profile.
- 300
- validated samples
- 10–2k
- paragraph blocks
- 1× / 4×
- CPU profiles
- 0
- invalid results
immediatelyRender for a comparable client-ready point. The Lexical build intentionally contains fewer product features.