Releases: TypeCellOS/BlockNote
v0.44.0
0.44.0 (2025-12-02)
This release brings several architectural improvements to BlockNote AI and introduces abort() functionality for AI requests.
See #2198 for details and breaking changes, or have a look at the updated docs.
We also fixed some build / dependency issues in 0.43.0.
What's Changed
- refactor(ai): standardize prompt building by @YousefED in #2198
- feat(ai): Abort requests by @YousefED in #2213
- chore(build): fix AI packaging issue by @YousefED in #2210
- chore: streamline all vite.config external options by @YousefED in #2214
Full Changelog: v0.43.0...v0.44.0
v0.43.0
0.43.0 (2025-12-01)
Major Codebase Refactor
This release introduces a major refactor to the codebase, targeting 2 main areas of improvement:
UI Extensions, Components, and Hooks
BlockNote extensions responsible for UI elements like the formatting toolbar and file panel have been rewritten and heavily simplified. They take advantage of changes we've made to the BlockNote extensions API (see below), making them far more maintainable.
As part of simplifying the UI extensions, FloatingUI now handles much more in terms of positioning & dismissing the elements, e.g. making them scroll with the editor and close on hitting Escape.
Thanks to these changes, we've also been able to make our React components/hooks much simpler and more readable.
BlockNote Extensions
We've cleaned up and added additional functionality to BlockNote's extensions API. The original extension system was created somewhat haphazardly to support commonly needed features like keyboard shortcuts. The new BlockNote extensions API will be able to do much more, and should reduce the need to add functionality using TipTap extensions or ProseMirror plugins.
The additions to the extensions API are currently meant for internal use only, but we can't wait to share these with the community in a future release!
To see a detailed summary of the changes in this release, see PR #2143.
Breaking Changes
@blocknote/core
- Existing extensions using the
BlockNoteExtensionclass are no longer supported. Use thecreateExtensionfunction instead. - Extension-specific imports have been moved from
@blocknote/coreto@blocknote/core/extensions. This includes helpers such asfilterSuggestionItemsfor the suggestion menu extension. - Comment-specific imports have been moved from
@blocknote/coreto@blocknote/core/comments. - The
commentseditor option has been removed. Instead of passingcomments: optionsto the editor, passextensions: [CommentsExtension(options)]instead. - Extensions are no longer listed as properties of
BlockNoteEditor, e.g.editor.formattingToolbar. Use thegetExtensionmethod instead, e.g.editor.getExtension(FormattingToolbarExtension). editor.openSuggestionMenuhas been removed. Useeditor.getExtension(SuggestionMenu).openSuggestionMenuinstead.editor.getForceSelectionVisible/editor.setForceSelectionVisiblehave been removed. Useeditor.getExtension(ShowSelectionExtension).store.state.enabled/editor.getExtension(ShowSelectionExtension).showSelectioninstead.editor.onCreatehas been removed. Useeditor.onMountinstead.insertOrUpdateBlockhas been renamed toinsertOrUpdateBlockForSlashMenu.editor.updateCollaborationUserInfohas been removed.
@blocknote/react
useEditorContentOrSelectionChangehas been removed. UseuseEditorStateinstead.useUIPluginStatehas been removed. UseuseExtensionoruseExtensionStateinstead.useUIElementPositioninghas been removed. UseBlockPopover,PositionPopover, orGenericPopoverinstead.useEditorForceUpdatehas been removed.
@blocknote/xl-ai
BlockPositionerhas been removed. UseBlockPopoverinstead.createAIExtensionhas been removed. UseAIExtensioninstead.getAIExtensionhas been removed. Useeditor.getExtension(AIExtension)oruseExtension(AIExtension) instead.
Changelog
🚀 Features
- Major Extensions & UI Refactor (#2143)
🩹 Fixes
- allow configuring the email body's styles (#2182)
- xl-docx-exporter: improve OOXML interoperability (#2206)
❤️ Thank You
- Nick Perez
- Stephan Meijer @StephanMeijer
v0.42.3
v0.42.2
0.42.2 (2025-11-19)
This release reverts a bug introduced by https://github.com/TypeCellOS/BlockNote/releases/tag/v0.42.0 which attempted to resolve issue with React's StrictMode, unfortunately we have not resolved the underlying bug, but this release will at least put it back to the previous state. As far as we understand this should only be an issue in a development build, and in production mode it should work as expected. We will prioritize fixing the underlying bug and update the issue here: #2106
🩹 Fixes
- put back mounting system (#2183)
❤️ Thank You
- Nick Perez
v0.42.1
v0.42.0
0.42.0 (2025-11-11)
This release is the BlockNote bug bash release. We've spent about a month fixing several bugs in the editor to deliver a more stable & reliable editor.
We've also gone ahead and added some new utilities for working with Y.js documents programmatically, which you can read more about in the YJS Utilities documentation.
As always, thanks to all of our sponsors and contributors who helped make this release possible.
🚀 Features
🩹 Fixes
- Emoji picker issues (#2092)
- set a default for
blocksToFullHTML#2100 (#2101, #2100) - correctly index blocks that have children fixes #2115 (#2116, #2115)
- add more lenient parsing for code blocks, to accept newlines #2105 (#2108, #2105)
- Firefox invisible text cursor after dropping blocks (#2128)
- parsing
priorityfor custom inline content and styles (#2119) BlockTypeSelectitem filtering based on schema (#2112)- deleting last block in column (#2110)
- comments: update the styles for the cursor to be the default cursor (#2163)
- comments: always surface the closest mark to the current position (#2164)
- comments: scrolling bug when clicking comment marks (#2165)
- react: destroy editor instances after two ticks (#2121)
- schema-migration: more robust migration of background-color & text-color attributes (#2154)
- unique-id: do not attempt to append to y-sync plugin transactions (#2153)
❤️ Thank You
- Matthew Lipski @matthewlipski
- Nick Perez @nperez0111
v0.41.1
0.41.1 (2025-10-09)
This was a version bump only, there were no code changes.
v0.41.0
0.41.0 (2025-10-08)
🚀 Features
- AI menu auto scrolling (#2039)
- Shortcut to delete empty table while cells are selected (#2052)
- divider: add a divider block (#2014)
🩹 Fixes
- Code block language select value not updating properly (#2050)
- disable input rules for numbered headings #1789 (#2032, #1789)
- video parsing and export for markdown (#1955)
- Reaction picker shown for users who can't react (#2061)
- Add Mantine dependency to individual examples (#2070)
- allow listening to
onChangeand other events before the underlying editor is initialized (#2063) - toggle and check list item blocks (#2071)
- added missing fields to implementations in editor schema block specs (#2046)
❤️ Thank You
- Héctor Zhuang @Hector-Zhuang
- Matthew Lipski @matthewlipski
- Nick Perez
v0.40.0
0.40.0 (2025-09-30)
BlockNote AI
We've now significantly refactored BlockNote AI to support:
- The Vercel AI SDK 5 (closes #1952)
- Now uses
streamText+ tool calling by default instead of Object Generation - Designed to call your own backend (instead of the old proxy-based setup).
- Leans in more heavily to the updated AI SDK architecture (reusing the
Chatandtransportconcepts) PromptBuilders have been redesigned to split the creation of the required data (PromptBuilderInputDataand creation / modification of the LLMMessages- fix: better handling of parallel tool calls
Backend pattern
We've revisited the old solution where BlockNote made direct calls to LLMs from the client using the Vercel AI SDK (or via a proxy).
Instead it's now recommended to send request to your backend. There, you can then invoke your LLM (potentially adding more context, tools, RAG, etc). While a bit more work to set up, this architecture is more inline with the Vercel SDK and unlocks more powerful workflows.
Breaking changes
See the updated docs and backend integration guide for an overview of the new APIs. The main breaking change is that createAIExtension now accepts a transport that provides the integration with your backend.
We now recommend to use the Vercel AI SDK on your backend. For alternative options, see the backend integration guide. The previous proxy-based approach is still available and explained in the backend guide.
For assistance in upgrading and integration with your pipeline, please reach out to the team.
Mantine
We've now upgraded our support of Mantine in the @blocknote/mantine package to V8.
🚀 Features
- Mantine v8 upgrade (#2028, #2029)
- Update Mantine setup (#2033)
- ai: SDK 5, tool calling, custom backends (#2007)
- core: add the ability to autofocus on the editor element (#2018)
🩹 Fixes
- Block colors menu not always showing (#2027)
- Update remianing examples to Mantine v8 (#2031)
- ShadCN example Tailwind setup (#2042)
❤️ Thank You
- Matthew Lipski @matthewlipski
- Nick Perez
- Yousef