v2.12.0
This release adds support for tracking synchronization status of pending local changes for any part of Liveblocks. Whether you use Storage, Text Editors, Threads, or Notifications. If the client’s sync status is
synchronized
, it means all local pending changes have been persisted by our servers. If there are pending local changes in any part of Liveblocks you’re using, then the client’s sync status will besynchronizing
.Also, we’re introducing a way to prevent browser tabs from being closed while local changes are not yet synchronized. To opt-in to this protection, enable
preventUnsavedChanges
option on the client:-
In React:
<LiveblocksProvider preventUnsavedChanges />
-
Otherwise:
createClient({ preventUnsavedChanges: true })
-
Add new API
client.getSyncStatus()
method. -
Add new client config option:
preventUnsavedChanges
. -
Expose
ToImmutable<T>
helper type. -
Add new hook
useSyncStatus
that can be used to tell whether Liveblocks is synchronizing local changes to the server. Useful to display a "Saving..." spinner in your application, when used withuseSyncStatus({ smooth: true })
. -
Add new
LiveblocksProvider
prop:preventUnsavedChanges
. -
Deprecated APIs:
useStorageStatus
is now deprecated in favor ofuseSyncStatus
.
-
Take composers into account when the new
preventUnsavedChanges
option is set. -
Add new hook
useIsEditorReady
which can be used to show a skeleton UI before the editor has received the initial text from the server. -
Deprecated APIs:
useEditorStatus
is now deprecated in favor ofuseIsEditorReady
(oruseSyncStatus
).
Examples
- Added new canvas document type to Next.js Starter Kit, powered by tldraw.
- Added loading
useStatusSync
loading spinners to Linear-like Issue Tracker and Notion-like AI editor. - Added
useIsEditorReady
to Lexical examples.
Dashboard
- Redirect users to a specific error page on authentication failure.
-
v2.11.0
-
Upgrade dependencies.
-
Fix minor appearance issues related to attachments.
-
Fix pasting issues introduced in 2.10.0.
-
Fix regression with
useThreads
that caused the hook to return an error if its associated room did not exist. -
Initial release.
-
Initial release.
Documentation
@liveblocks/react-tiptap
API reference.- New Tiptap overview page.
- Restructured getting started, adding new guides for using
@liveblocks/react-tiptap
on Next.js and React. @liveblocks/emails
API reference.- Updated guide on sending emails when comments are created.
- Updated email notifications overview.
Examples
- New Next.js Comments + Resend example.
- New Next.js Comments + SendGrid example.
- Updated Next.js Starter Kit to use
@liveblocks/react-tiptap
. - Updated Next.js advanced Tiptap text editor example to use
@liveblocks/react-tiptap
. - Updated Next.js Tiptap text editor example to use
@liveblocks/react-tiptap
.
-
v2.10.2
-
Internal refactorings and code cleanup across various parts of the client's inner workings.
-
Implement automatic retry for initial load of inbox notifications, user threads, room threads, room versions, or room notification settings—except when encountering a 4xx error.
-
Background tabs will no longer poll threads, notification, room versions or room notification settings.
-
Fix incorrect suspense export for
useRoomNotificationSettings
hook. -
Support for React 19 and Next.js 15.
-
Support for React 19 and Next.js 15.
-
Support for React 19 and Next.js 15.
Dashboard
- Icons indicating which rooms are public/private on room listing and detail pages.
- New warning message if all your rooms are publicly accessible.
Documentation
- Improved clarity on Notifications being project-based.
- Typo fixes.
-
v2.10.0
-
Add new resolver methods under
client.resolvers.*
to invalidate the cache ofresolveUsers
,resolveRoomsInfo
, andresolveMentionSuggestions
. -
When subscribing to Storage update events using
room.subscribe(root, ..., { isDeep: true })
, all LiveList deletion updates will now also include the item that was deleted. -
Improve and fix pasting rich text into the composer.
-
Improve mention suggestions click behavior.
Dashboard
- Removed
Show deleted threads
checkbox from the room detailComments
tab to ensure consistent behavior across dashboard and APIs.
Documentation
- Prevent truncated API keys being copied in code snippets.
- Typo fixes.
-
v2.9.1
-
Fix regression with metadata filtering on explicitly-
undefined
values. -
Fix bug where client wasn't always using the newest delta update backend endpoint yet.
-
Fix type definition of
ThreadData
:updatedAt
is always set. -
When
Composer
is disabled, its actions are now also disabled as expected. -
Various event propagation improvements in
Composer
.
v2.9.0
We are introducing pagination support to allow apps using threads and inbox notifications to be built in a more user-friendly way, where the initial load is faster and more data can be fetched incrementally as users interact with the app.
-
Add pagination support to
useInboxNotifications
. -
Add pagination support to
useThreads
anduseUserThreads_experimental
.
Website
- New startups page highlighting discounts for startups and nonprofits.
-
v2.8.2
- Send client version in HTTP request headers from the client, to ensure backward compatible responses from the server
v2.8.1
- Expose
onComposerSubmit
onThread
to react to the inner composer of a thread.
Website
- Refresh pricing page design
Dashboard
- Add attachments support to the comments view on the room detail page
Figma Kit
- Add comments attachments to the Liveblocks Collaboration Kit in Figma
v2.8.0
We are introducing attachments to allow users to add files to their comments, for more information about this change please read our Upgrade Guide for 2.8.
-
Add out-of-the-box support for attachments in the default components.
-
Add new primitives to support attachments in custom components:
Composer.AttachmentsDropArea
: Receives files via drag-and-dropComposer.AttachFiles
: Opens a file pickerFileSize
: Displays a formatted file size
-
Add values and methods to
useComposer
to support attachments in custom components. -
Add
useAttachmentUrl
hook to get presigned URLs for attachments. -
Add
prepareAttachment
anduploadAttachment
methods toRoom
to create attachments. -
Add
getAttachmentUrl
method toRoom
to get presigned URLs for attachments.
Website
- New blog post: Next.js Template Week recap.
- Bug fix on the pricing page MAU slider which didn't apply the MAU value set to the price of the products.
-
v2.7.2
- Fix a bug where under some conditions threads could end up without comments.
- Fix a bug where notifications associated to deleted threads would not be deleted.
- Fix a bug where subsequent optimistic updates to the same inbox notification could sometimes not get applied correctly.
v2.7.1
- Fixed a bug where resolved threads remained visible in the editor and the
AnchoredThreads
andFloatingThreads
components.
Examples
- New Linear-like Issue Tracker example.
- New Tldraw Whiteboard Storage example.
- New Tldraw Whiteboard Yjs example.
- New Notion-like AI Editor example.
Documentation
- Rewritten Lexical Text Editor get started guides for
Next.js and
React, adding
AnchoredThreads
andFloatingThreads
.
Dashboard
- Fix a bug where room storage data wasn't fetched correctly and not displayed in the room detail storage tab.
- Fix a bug where room storage data couldn't be deleted from the room detail storage tab.
v2.7.0
-
Refactor caching internals to prepare for upcoming features.
-
Add support for
query
argument touseUserThreads_experimental
. -
Fix bug where some combinations of
query
criteria could over-select threads inuseThreads
.
2.6.1
- Fix mention suggestions dropdown not following scroll in some scenarios.
Dashboard
- Improved error messages to provide clearer guidance during team creation.
- Implemented various bug fixes and performed stabilization work to enhance overall system reliability.
-
Website
- New blog post: Dashboard enhancements to improve observability and developer experience.
- New blog post: What’s new in Liveblocks: August edition.
Documentation
- New guide on migrating to Comments.