Releases: TypeCellOS/BlockNote
Release list
v0.54.2
0.54.2 (2026-09-09)
🩹 Fixes
- xl-typst-compiler: Package wasm without Rust build artifacts (220544ffd)
❤️ Thank You
- Nick The Sick (@nperez0111)
v0.54.1
0.54.1 (2026-09-09)
🚀 Features
- Typst-powered accessible PDF export (PDF/UA-1) (#2992)
- pdf: base PDF export on self-hosted Typst compiler (#3020)
🔥 Performance
- core: Resolve block changes from changed range only (#2981)
🩹 Fixes
- xl-docx-exporter: Use distinct bullet symbols per nesting level (#2977)
- core: Only attach table handles to actual table blocks (#2972)
- xl-docx-exporter: Give each list its own numbering instance (#2976)
- exporters: Editor-parity rendering fixes + shared-document ground truth tests (#3021)
- core: Stop schema.extend() mutating the shared default specs (#3039)
- mantine: Restore compact AI menu items (#3027)
- Ignore only Dark Reader's writes in node views (#3062)
❤️ Thank You
- Yousef yousefdardiry@gmail.com
- Adarshsm adarshmudugal@gmail.com
- Nick Perez nick@blocknotejs.org
v0.54.0
0.54.0 (2026-08-13)
💖 The math block and diagram block has been sponsored by DINUM 🇫🇷
Math Block
A long requested feature, you can now add block & inline math to a BlockNote editor. They are driven by Katex & support much of Latex for all your notation needs.
math-block.mp4
Diagram Block
We've also added support for a diagram block driven by Mermaid.js, allowing you to add diagramming to the editor.
diagram-block.mp4
Source Block with Preview
Both the Math block & Diagram block are built on a primitive that you can build your own custom blocks from. The Source Block with Preview primitive allows you to build a pair of a block which renders content with an inline editor for the content being rendered. This can enable other sorts of preview-like features in the future, exposed as an API for you to build your own custom blocks with.
🚀 Features
- Adds a Math block (2a34f7d70)
- Adds a Diagram block (0fca0ee7a)
- core: Source-with-preview, syntax highlighting & exporter images (503c796d3)
🩹 Fixes
- ai: Operations on collaborative documents (#2952)
- ai: Operations on blocks containing comments (#2953)
- pdf: Add custom font and fontFamily options for CJK (#2945)
- Expose first suggestion as active descendant (#2965)
- xl-docx-exporter: Clamp list nesting to the levels DOCX defines (#2969)
❤️ Thank You
- Adarshsm adarshmudugal@gmail.com
- Nick The Sick (@nperez0111)
- Pupuking723 2318857637@qq.com
v0.53.0
0.53.0 (2026-08-06)
🚀 Features
- shadcn:
⚠️ Use base-ui instead of radix (BLO-1279) (#2913)
🩹 Fixes
- getCellSelection throwing error in positions (BLO-1193) (#2911)
- Multi-column slash menu items within a column (BLO-905) (#2914)
- Suggestion menu behaviour (BLO-1283, BLO-955) (#2930)
- Ignore useless block/inline content mutations (BLO-1224) (#2912)
- slash-menu: Better overflow behavior (BLO-1192) (#2909)
- Slash menu item selection behaviour (BLO-1222) (#2838)
- HTML export/parse round trip ignoring empty blocks (BLO-873) (#2931)
- core: Guard getBlock() calls to prevent TypeError on stale blocks (#2941)
- Stop stale node view positions crashing the editor (#2938)
- Multi-column trailing blocks, column hover borders & drop cursor left edge BLO-1226 (#2885)
⚠️ Breaking Changes
- shadcn:
⚠️ Use base-ui instead of radix (BLO-1279) (#2913)
❤️ Thank You
- Yousef yousefdardiry@gmail.com
- Nick Perez nick@blocknotejs.org
- Matthew Lipski (@matthewlipski)
v0.52.1
0.52.1 (2026-07-20)
🩹 Fixes
- react: Avoid importing yjs in the default UI (#2902)
❤️ Thank You
- Nick Perez nick@blocknotejs.org
v0.52.0
0.52.0 (2026-07-20)
🚀 Features
- Migrate to Vite+ (#2745)
- Decouple yjs from blocknote/core (#2741)
moveBlocksbehaviour when leaving empty columns (BLO-1109) (#2842)- comments: Confirm before discarding an unsaved comment (blo-1197) (#2861)
- core: Support "plain" block content (BLO-335) (#2868)
⚠️ Migration Guide
Yjs is now decoupled from @blocknote/core. Instead of passing a collaboration option directly to the editor, you now wrap your editor options with the withCollaboration helper imported from @blocknote/core/yjs.
Before (< 0.52.0):
const editor = useCreateBlockNote({
// ...other editor options
collaboration: {
provider,
fragment: doc.getXmlFragment("document-store"),
user: {
name: "My Username",
color: "#ff0000",
},
},
});After (>= 0.52.0):
// Import the helper from the decoupled Yjs entrypoint:
import { withCollaboration } from "@blocknote/core/yjs";
const editor = useCreateBlockNote(
withCollaboration({
// ...other editor options
collaboration: {
provider,
fragment: doc.getXmlFragment("document-store"),
user: {
name: "My Username",
color: "#ff0000",
},
},
}),
);The collaboration object itself (provider, fragment, user, showCursorLabels, etc.) is unchanged — you only need to:
- Import
withCollaborationfrom@blocknote/core/yjs. - Wrap your editor options object with
withCollaboration(...), keeping thecollaborationproperty inside it.
The same applies when creating an editor with BlockNoteEditor.create(withCollaboration({ ... })).
🩹 Fixes
- Align side menu to tables (BLO-1117) (#2837)
- Remove cursor flicker in trailing block (#2839)
- table: Guard stale block after changes for table handles (#2821)
- xl-ai: Remove 'use client' from server entry (BLO-1235) (57596cee6)
- tables: Tab causing indent in last table cell (BLO-1211) (#2831)
- core: Use dynamic propSchema when extending default block specs (#2882)
- xl-pdf-exporter: Fix emoji rendering for ZWJ sequences in PDF export (#2871)
- core: Ignore synthetic mousemove events without coordinates in side menu (#2895)
- core: Read hardBreakShortcut from block spec impl (#2891)
- xl-email-exporter: Update react-email deps to fix fresh install tests (#2898)
- core: Call scrollIntoView() on Enter (#2802)
❤️ Thank You
- Nick The Sick (@nperez0111)
- Luc H wereld03@gmail.com
- Nick Perez nick@blocknotejs.org
- Yousef yousefdardiry@gmail.com
- Matthew Lipski (@matthewlipski)
- Alex Yang (@himself65)
- Yousefed yousefdardiry@gmail.com
- Satoren satoreyo@hotmail.com
v0.51.4
0.51.4 (2026-06-02)
🩹 Fixes
- add explicit type annotations for callback params losing contextual typing (#2815)
- Comments emoji picker button issues (BLO-1199) (#2769)
- core: add editor cleanup in BlockNoteEditor.test.ts to prevent unhandled DOMObserver errors (#2816)
- table: prevent crash when pressing Enter in a table cell (#2793)
❤️ Thank You
- Matthew Lipski @matthewlipski
- Nick Perez
- Nick the Sick @nperez0111
- Yuki Terashima @y-temp4
v0.51.3
0.51.3 (2026-05-26)
🩹 Fixes
- table cell colors (BLO-1198) (#2770)
❤️ Thank You
- Matthew Lipski @matthewlipski
v0.51.2
0.51.2 (2026-05-20)
🩹 Fixes
- color picker icons (BLO-1189) (#2762)
❤️ Thank You
- Matthew Lipski @matthewlipski
v0.51.1
What's Changed
- fix: backslash newlines when copying from a code block by @nperez0111 in #2709
Full Changelog: v0.51.0...v0.51.1