Week 7 v2.18.1
-
Fix
<Composer />and<Comment />overrides not working when set on<Thread />. -
Added a factory function
getYjsProviderForRoomto grab an instance of Yjs provider that will be automatically cleaned up when the room is disconnected/changed. This is now the recommended way to set up your Yjs app. -
Simplified types for
LiveblocksYjsProvider. -
Fixed a bug where documents would no longer sync after room the ID changed.
v2.18.0
Introducing user notification settings. You can now create beautiful user notification settings pages in your app.
Our packages
@liveblocks/client,@liveblocks/reactand@liveblocks/nodeare now exposing functions to manage user notification settings on different notification channels and kinds.You can support
thread,textMentionand custom notification kinds (starting by a$) onemail,Slack,Microsoft TeamsandWeb Pushchannels.You can choose from our new notifications dashboard page to enable or disable notification kinds on every channels you want to use in your app. It means our internal notification system on our infrastructure will decide to send or not an event on your webhook.
We're adding two new methods in our client to get and update user notification settings:
We're adding a new set of hooks to manage user notification settings.
You can either choose
useNotificationSettingsif you need to get the current user notification settings and update them at the same time:Or you can choose
useUpdateNotificationSettingsif you just need to update the current user notification settings (e.g an unsubscribe button):Our Node.js client now exposes three new methods to manage user notification settings:
- Update the behavior of
prepareThreadNotificationEmailAsHtmlandprepareThreadNotificationEmailAsReact: the contents of previous emails data are now taken into account to avoid repeating mentions and replies that are still unread but have already been extracted in another email data.
Examples
- Added user notification settings to the Next.js Starter Kit.
- Updated all Yjs examples to use
getYjsProviderForRoom.
Documentation
- New guide: What to check before enabling a new notification kind.
- Added info for new methods and hooks:
- Rewrote email notification overview pages for Comments and Notifications.
- Adjusted existing notification guides to work with new dashboard settings.
- Improved information structure for
useInboxNotifications. - Improved
@liveblocks/yjsAPI reference. - Added info for new API
getYjsProviderForRoom. - Updated all Yjs get started guides to use the new API.
Website
- We now have
llms.txtandllms-full.txtfiles on our website, used to help AI understand our product.
Dashboard
- Added new Notifications page to projects, allowing you to enable/disable webhooks events for different notification kinds, on different channels.
Infrastructure
- Preparing foundation in the backend to make Storage more efficient in the future.
-
Week 6 v2.17.0
-
Report a console error when a client attempts to send a WebSocket message that is >1 MB (which is not supported). Previously the client would silently fail in this scenario.
-
Added a new client config option
largeMessageStrategyto allow specifying the preferred strategy for dealing with messages that are too large to send over WebSockets. There now is a choice between:defaultDon’t send anything, but log the error to the console.splitSplit the large message up into smaller chunks (at the cost of sacrificing atomicity). Thank you @adam-subframe!experimental-fallback-to-httpSend the message over HTTP instead of WebSocket.
-
Deprecated the
unstable_fallbackToHTTPexperimental flag (please setlargeMessageStrategy="experimental-fallback-to-http"instead). -
Added
<LiveblocksProvider largeMessageStrategy="..." />prop to LiveblocksProvider. See above for possible options. -
Fix crash when a
Composeris unmounted during itsonComposerSubmitcallback. -
Add new icons to
<Icon.* />.
This release adds components and utilities to add an AI toolbar to your text editor, available in private beta.
- Add
aioption touseLiveblocksExtensionto enable (and configure) it. - Add
<AiToolbar />component. (with<AiToolbar.Suggestion />,<AiToolbar.SuggestionsSeparator />, etc) - Add default AI buttons in
ToolbarandFloatingToolbarwhen theaioption is enabled. - Add
askAiTiptap command to manually open the toolbar, it can also be invoked with a prompt to directly start the request when opening the toolbar. (e.g.editor.commands.askAi("Explain this text"))
Documentation
@liveblocks/node-prosemirrordocumentation has been published. Use this package for editing Tiptap and ProseMirror documents on the server.@liveblocks/node-lexicaldocumentation has been improved to match the ProseMirror docs.
Website
- New blog post: Which rich text editor framework should you choose in 2025?.
-
Week 5 v2.16.2
-
Improve error message if hooks are accidentally called server side.
-
Fix bug in Zustand typing in case the multi-argument form of
set()is used. Thank you @hans-lizihan!
Website
- New blog post: Great agent experience starts with great collaboration.
Documentation
- Better info on
initialStoragevalues.
-
Week 4 v2.16.1
<Toolbar.Button />and<Toolbar.Toggle />now display theirnamevisually ifchildrenandiconaren’t set.
Documentation
- Added missing 409 response to Initialize Storage REST API.
- Typo fixed in custom notification snippet.
Week 3 v2.16.0
We've created new toolbar elements that allow you to import a default floating toolbar in Tiptap and Lexical. It's also possible to use these APIs to build custom or static toolbars. We've updated a number of our examples to show how to do this.
Our error listener APIs will now receive more errors in general, including errors from using Comments & Notifications. Previously, these would only receive room connection errors from Presence, Storage, or Yjs. For example, now when creation of a thread fails, deletion of a comment fails, marking a notification as read fails, etc.
See the Upgrade Guide for 2.16 to learn how to adapt your code.
We now support filtering threads by absence of metadata as well in
useThreads({ query })(oruseUserThreads_experimental({ query })). For example, you can now filter threads that do not have acolorattribute set in their metadata:See the Upgrade Guide for 2.16 to learn how to adapt your code.
- Automatically refresh Comments and Notifications when the browser window regains focus.
The error listener APIs will now receive more errors in general, including errors from using Comments & Notifications. Previously, these would only receive room connection errors from Presence, Storage, or Yjs.
-
Most of the icons used in the default components are now usable as
<Icon.* />viaimport { Icon } from "@liveblocks/react-ui". -
Add
<Toolbar />and<FloatingToolbar />components to simplify building editor toolbars. They come with default controls out-of-the-box based on what the editor they’re attached to supports, but they’re also heavily extendable and customizable. Use inner components like<Toolbar.Toggle />and<Toolbar.Separator />to extend the defaults with your own actions, or start from scratch while customizing some of the defaults via<Toolbar.SectionInline />or<Toolbar.BlockSelector />for example. -
Add
isTextFormatActiveandisBlockNodeActiveutilities.
Examples
- Updated Next.js Starter Kit to use
the new
FloatingToolbar. - Updated many text editor examples to use the new
FloatingToolbar:
Dashboard
- Allow rate limit configuration for webhook endpoints.
- Fix download comments attachments action in text editor view from room detail page.
Week 2 2.15.2
-
Fix
useLayoutEffectwarnings when using React versions lower than 18.3.0 and SSR. -
Fix memory leak in some hooks.
-
Fix bug where querying metadata with
useThreads()would not always reuse the cache correctly.
Website
- New blog post: What’s new in Liveblocks: December 2024.
-
Week 52 2.15.1
- Fix rollup config to always ensure
"use client"directives are on top of files after build.
- Fix rollup config to always ensure
Week 51 v2.15.0
-
Breaking: Drop support for React 17 (and 16). If you’re unable to upgrade React to 18 or higher, you can still continue to use Liveblocks 2.14.0, which is the last version to support React versions lower than 18.
-
The published target for all Liveblocks packages is now ES2022 (up from ES2020). This should have a positive impact on your bundle size[*].
-
Various internal refactorings and code cleanup.
[*] If you bundle for the browser, this should not be a problem, as all major browsers support ES2022. If however you're specifically targeting very old browsers (mostly IE), then you may need to configure your bundler (Webpack, rollup, esbuild, etc) to also down-compile code from dependencies inside
node_modulesfor you, if you aren't already.Website
- New blog post: A better way to email your users about unread content.
Examples
- Adjusted email templates to allow switching the logo more easily.
- Next.js Starter Kit improvements:
- Renaming a document updates it immediately for everyone else.
- Clicking outside of the rename input saves the new name.
- Added tldraw's dark mode.
- Added option to filter for canvas in the room listing.
- Upgraded Liveblocks.
- Fixed a z-index problem and added a hover style.
Documentation
- Upgrade guide for 2.15.
- Added links to email templates in guides and API reference.
-
Week 50 v2.14.0
- Add new functions
prepareTextMentionNotificationEmailAsHtmlandprepareTextMentionNotificationEmailAsReactto support text mention notification event for Lexical and Tiptap text editors and prepare data into email-ready formats.
v2.13.2
-
Fix report text editor function's call. Now we wait for the room's status to be
connectedto report the text editor instead of reporting directly after room creation / loading. -
Fix report text editor function's call. Now we wait for the room's status to be
connectedto report the text editor instead of reporting directly after room creation / loading.
Examples
- New example: Text Editor Emails (Tiptap).
- New example: Text Editor Emails (Lexical).
Documentation
- New guide: How to send email notifications for unread text editor mentions.
- Improved thread metadata page.
Website
- New blog post: What's new in Liveblocks: November 2024.
- Revamped the Liveblocks blog:
- Added the ability to switch between categories to find relevant posts.
- Added the ability to search posts and filter results using tags.
- Updated the layout with a table of contents, writer information, and featured posts.
- Add new functions
Week 49 v2.13.1
- Improve the spacing consequences of
--lb-line-height(introduced in 2.13.0) in some contexts.
Dashboard
- Multiple Tiptap editors are now supported in a room's Text Editor view.
Documentation
- Improved custom composer behavior code example.
- Improve the spacing consequences of