Skip to content

Releases: TypeCellOS/BlockNote

v0.31.1

23 May 08:43
b923c4f
Compare
Choose a tag to compare

0.31.1 (2025-05-23)

There was a regression in handling of "Blocknote extensions" in the undocumented _extensions API. This broke a few applications that needed it, we have a new extensions API that we consider to be experimental, so we do not want for consumers to be using it just yet. so we back-ported the old behavior of the _extensions API.

All that to say, this only affects a minor subset of blocknote users, and is mostly internal

🩹 Fixes

  • backwards-compat for _extensions (#1708)

❤️ Thank You

  • Nick Perez

v0.31.0

20 May 16:23
66634ad
Compare
Choose a tag to compare

0.31.0 (2025-05-20)

🤖 This release adds AI integration to BlockNote!

Connect a Large Language Model (LLM) to BlockNote and write, edit or format documents hand-in-hand with an AI agent:

Video

blocknote-ai.mp4

Explore

Features

  • Iterate on document content and formatting with AI
  • See exactly what changes the AI is making with a "human-like" collaborator experience
  • Support for streaming responses
  • Fully customizable commands and UI elements
  • Fine-tune AI behavior with custom prompts and instructions
  • Built on Vercel AI SDK
  • Connect any LLM model (from Llama to OpenAI, Mistral or Anthropic)
  • Use your own infrastructure or connect directly to a hosted LLM API

PR @ #1674

❤️ Thank You

v0.30.1

20 May 14:00
f0946b2
Compare
Choose a tag to compare

0.30.1 (2025-05-20)

🩹 Fixes

  • better type-safety (678086d4d)
  • do not use editor.dispatch (#1698)
  • re-added display: flex to blocks without inline content (#1702)
  • react: add missing exports (#1689)

❤️ Thank You

v0.30.0

09 May 14:52
30468b7
Compare
Choose a tag to compare

0.30.0 (2025-05-09)

There was a change to [email protected] that broke a lot of our assumptions around parsing content from HTML (and the clipboard), which users notified us about. We've now fixed them in this update. This resulted in a fairly significant change to how we parse content, but with a our test suite we are able to guarantee little changes in behavior, in some cases we actually are able to parse and correctly insert more content than prior versions.

There are also a number of bug fixes that have been addressed with this version, especially around collaborative editing, which should mean a better collaborative experience for users.

As always, we would like to thank our sponsors. We've recently updated our website to include a proper user auth and payment system. If your company relies on our open source software, please consider paying it forward by becoming a sponsor via our website: https://www.blocknotejs.org/pricing

🚀 Features

  • expose editor.prosemirrorState again (#1615)
  • add undo and redo methods to editor API (#1592)
  • re-implement Y.js collaboration as BlockNote plugins (#1638)
  • file: previewWidth prop now defaults to undefined (#1664)
  • locales: add zh-TW i18n (#1668)
  • locales: add slovak i18n (#1649)

🩹 Fixes

  • Resolve formating toolbar regression (#1630)
  • provide blockId to uploadFile in UploadTab (#1641)
  • do not close the menu on content/selection change (#1644)
  • keep file panel open during collaboration (#1646)
  • force pasting plain text into code block (#1663)
  • updating HTML parsing rules to account for [email protected] (#1661)
  • code-block: handle unknown languages better (#1626)

❤️ Thank You

v0.29.1

17 Apr 16:08
7c23c04
Compare
Choose a tag to compare

0.29.1 (2025-04-17)

🩹 Fixes

This resolves a dependency issue in 0.29.0

❤️ Thank You

  • Nick the Sick

v0.29.0

17 Apr 15:15
040b4c5
Compare
Choose a tag to compare

0.29.0 (2025-04-17)

change event

This adds a new API which will tell you what blocks have been inserted, updated or deleted when you register a callback on the onChange API

transact API

This release adds a new low-level API for interacting with the prosemirror state, the transact API. This enables blocknote-level transactions, meaning that operations can operate on the same transaction, so now they are only one undo/redo step. We think this API provides a solid foundation for us to build anything that operates on the prosemirror level.

It is also accompanied by a couple of other low-level APIs exec and canExec for interoperability between blocknote and existing prosemirror commands

🚀 Features

  • change event allows getting a list of the block changed (#1585)

🩹 Fixes

  • allow opening another suggestion menu if another is triggered #1473 (#1591, #1473)
  • add quote to schema (aa16b15fe)
  • update y-prosemirror to fix #1462 (#1608, #1462)
  • dispatch suggestion menu as a separate transaction (#1614)

❤️ Thank You

  • Nick Perez
  • Nick the Sick

Please note that this version had issues being published, please use 0.29.1 instead

v0.28.0

07 Apr 11:35
d4bbc0f
Compare
Choose a tag to compare

0.28.0 (2025-04-07)

🚀 Features

  • Add new trackPosition API which resolves (#1529)

❤️ Thank You

  • Nick Perez

v0.27.2

05 Apr 20:24
ab70b56
Compare
Choose a tag to compare

0.27.2 (2025-04-05)

🩹 Fixes

❤️ Thank You

  • Nick the Sick

v0.27.0

04 Apr 15:40
f10d7a6
Compare
Choose a tag to compare

0.27.0 (2025-04-04)

  • Smaller bundle size: ~100 kB less, with more features
  • Blockquote Block: You can now add quotes with this new block type
  • Customizable Code Blocks: Control how code blocks do syntax highlighting, add more supported languages, smaller bundle size, theming
  • Markdown pasting, and custom paste handlers: You can now paste markdown into the editor & it will be pasted as rich text! Support for custom paste handling behaviors with configurable callback

Breaking changes

Code block syntax highlighting removed

We no longer automatically include syntax highlighting for code blocks, this significantly reduces our bundle size and allows for more flexibility in terms of including the languages & themes your application may need. To see how to add syntax highlighting, read our guide for setting it up: https://www.blocknotejs.org/docs/advanced/code-blocks

Localizations are available from a new export

We no longer include locales as an export directly from @blocknote/core, the same locales are now available from @blocknote/core/locales, allowing you to import just the locales you need in your application. This significantly reduces the bundle size of blocknote, see more about localization in our example: https://www.blocknotejs.org/examples/basic/localization

Why?

To achieve a better bundle size, and reduce the number of dependencies of the package we were able to go from:

Before (v0.26.0):

dist/webpack-stats.json   14.11 kB │ gzip:  2.41 kB
dist/style.css            11.60 kB │ gzip:  2.82 kB
dist/comments.js          17.51 kB │ gzip:  3.54 kB │ map:    49.69 kB
dist/blocknote.js        422.01 kB │ gzip: 95.01 kB │ map: 1,116.10 kB
dist/webpack-stats.json   14.11 kB │ gzip:  2.41 kB
dist/style.css            11.60 kB │ gzip:  2.82 kB
dist/comments.cjs         11.83 kB │ gzip:  2.87 kB │ map:    47.56 kB
dist/blocknote.cjs       277.15 kB │ gzip: 73.99 kB │ map: 1,055.32 kB

After (v0.27.0):

dist/webpack-stats.json   14.59 kB │ gzip:  2.53 kB
dist/style.css            11.76 kB │ gzip:  2.86 kB
dist/en-B7ycW7c8.js        8.06 kB │ gzip:  2.00 kB │ map:  14.54 kB
dist/comments.js          17.51 kB │ gzip:  3.54 kB │ map:  49.77 kB
dist/locales.js          141.51 kB │ gzip: 28.23 kB │ map: 249.57 kB
dist/blocknote.js        280.46 kB │ gzip: 66.76 kB │ map: 874.62 kB
dist/webpack-stats.json   14.61 kB │ gzip:  2.52 kB
dist/style.css            11.76 kB │ gzip:  2.86 kB
dist/en-D4taoCs4.cjs       5.54 kB │ gzip:  1.84 kB │ map:  12.80 kB
dist/comments.cjs         11.83 kB │ gzip:  2.87 kB │ map:  47.59 kB
dist/locales.cjs          98.00 kB │ gzip: 25.89 kB │ map: 220.20 kB
dist/blocknote.cjs       179.33 kB │ gzip: 48.15 kB │ map: 844.04 kB

By splitting out the localizations and code block, the main bundle (blocknote.js) went from 422 kB to 280 kB!

🚀 Features

  • split out localization files for optimized bundle (#1533)
  • remove shiki dep, add new @blocknote/code-block package for slim shiki build (#1519)
  • Blockquote Block (#1563)
  • markdown pasting & custom paste handlers (#1490)

🩹 Fixes

  • Backspace in empty block deletes previous block (#1505)
  • Selection when clicking past end of inline content (#1553)
  • better expose setting a draghandlemenu's items #1525 (#1526, #1525)
  • Multi-block links (#1565)
  • Hard break keyboard shortcut not working in custom blocks (#1554)
  • Overlapping marks in comments (#1564)
  • some more sentry fixes (#1577)

❤️ Thank You

v0.26.0

19 Mar 10:26
Compare
Choose a tag to compare

Thanks to our sponsors!

💖 The threads sidebar has been sponsored by DINUM 🇫🇷 and ZenDiS 🇩🇪

Threads Sidebar

This release introduces the ThreadsSidebar component, which displays threads & comments in a separate section next to the editor. It's meant to be used as an alternative way of viewing and interacting with comments to the default UI, where threads float next to the content they're referring to. See the docs to find out how to use and customize the ThreadsSidebar!

Screen.Recording.2025-03-19.at.10.53.32-1.mp4

What's Changed

Full Changelog: v0.25.2...v0.26.0