Dashboard
- Add the Room API docs to the dashboard. Copy pre-filled code snippets from the API reference directly from the Room detail page.
- Optimize the width of rooms, schemas, and webhooks lists when a detail view is opened for more comfort on medium-sized screens.
Documentation
- Updated How to modify Storage from the server for Liveblocks 2.0.
- Fixed various typos.
- Show public/secret keys within the Bash code snippets for connected users.
v2.4.0
- Add vanilla Comments and Notifications APIs to
Client
andRoom
, enabling these products outside of React.
Documentation
- Add info on new Comments and Notifications methods in
@liveblocks/client
API reference. - Add info on typing thread metadata to React UI API reference.
- Various small fixes.
Dashboard
- Add room search functionality in the Rooms tab of a project.
- Include creation dates in the rooms table list.
- Fix number formatting issues for document sizes.
- Implement sorting options by room ID, last connection date, comments count, documents size, and creation date.
- Improve date formatting across the dashboard. Now using more human-readable relative dates, with absolute dates displayed on hover.
- Display the number of currently online users on the room details page.
- Add room deletion option in the detail page menu.
- Improve rooms table list responsiveness on mobile.
- Add vanilla Comments and Notifications APIs to
v2.3.0
-
New default components:
AnchoredThreads
andFloatingThreads
to display threads that are tied to a specific part of the document, similar to Notion, Linear, etc:FloatingThreads
displays floatingThread
components below text highlights in the editor.AnchoredThreads
displays a list ofThread
components vertically alongside the editor.- These components can be used in the same application to create a UI that works on both mobile and desktop.
-
Add
useDeleteInboxNotification
anduseDeleteAllInboxNotifications
hooks. -
Fix
resolved
query not being applied when filtering threads withuseThreads
. -
Various refactorings to Suspense internals.
-
Add "Delete notification" action to
InboxNotification
. -
Hide "Mark as read" action in
InboxNotification
when already read. -
Improve keyboard navigation within emoji pickers.
-
Add
deleteInboxNotification
anddeleteAllInboxNotifications
methods.
Examples
- Added delete all notifications button to notifications examples.
Documentation
- Open the config file by default in the interactive broadcasting events tutorial.
Website
- Fix changelog images on mobile.
-
v2.2.0
We are making
resolved
a first-class citizen property on threads, for more information about this change please read our Upgrade Guide for 2.2.-
Add
useMarkThreadAsResolved
anduseMarkThreadAsUnresolved
hooks. -
Support
query.resolved
when filtering threads. -
The
useStorageStatus
hook now also has a{ smooth: true }
setting to make building calm UIs with it a bit easier. -
The
useClient()
hook is now also available for users ofcreateRoomContext()
and/orcreateLiveblocksContext()
. -
Fix: avoid unnecessary re-renders if inbox notifications haven't changed.
-
Use first-class citizen
resolved
property inThread
component. -
Preserve rich text when pasting into the composer.
-
Add support for custom links to the composer. (either by pasting URLs with plain text selected or by pasting existing links)
-
Preserve whitespace and empty lines in comments.
-
Mark threads as read when visible (like before), but only if the window is focused.
-
Fix improper
useTransition
fallback which would break on React versions lower than 18. -
Add
markThreadAsResolved
andmarkThreadAsUnresolved
methods. -
Add
ThreadMarkedAsResolvedEvent
andThreadMarkedAsUnresolvedEvent
webhook events. -
Support
query.resolved
when querying threads. -
Upgrade
lexical
peer dependency to version^0.16.1
that fixes compatibility issues with Next.js versions 14.2.0 and above. -
Upgrade
lexical
peer dependency to version0.16.1
.
Documentation
- Add
useStorageStatus
information. - Fix code snippet in Nested data types page of interactive tutorial.
Website
-
v2.1.0
-
Various internal refactorings
-
Add new hook
useStorageStatus
, which returns the current storage status of the room, and will re-render your component whenever it changes. This can used to build "Saving..." UIs. -
Add
useDeleteThread
hook to delete a thread and its associated comments. -
Fix: add missing JSDoc comments
-
Fix: improve some error messages and stack traces to contain more info
-
Refactorings to Suspense internals
-
Fix improper
useSyncExternalStore
import which would break on React versions lower than 18.
v2.0.5
- Improved DX:
useDeleteThread
will now throw a client-side error if someone else than the thread owner tries to delete the thread. This will help you catch and handle this case more easily.
Documentation
- Updated the interactive tutorial for Liveblocks 2.0.
Website
- New blog post: Introducing Liveblocks collaboration kit for Figma.
- Updated contact page with two separate forms for sales and support.
Processes
- Versioning and publishing of public packages is now decoupled from versioning/publishing of our CLI tools.
-
v2.0.4
-
Improve TS error messages and error locations if custom
UserMeta
orActivitiesData
types do not match their requirements. -
Add missing type export for
CommentReaction
-
Don’t attempt to write missing initialStorage keys if the current user has no write access to storage. This will no longer throw, but issue a warning message in the console.
-
Add
useDeleteThread
hook to delete a thread and its associated comments.
v2.0.3
-
In
client.enterRoom()
, the optionsinitialPresence
andinitialStorage
are now only mandatory if your custom type requires them to be. -
In
<RoomProvider>
, the propsinitialPresence
andinitialStorage
are now only mandatory if your custom type requires them to be. -
Nesting
<LiveblocksProvider>
s will now throw to prevent incorrect usage -
Prevent the composer from splitting text being composed.
-
Handle parentheses around and within auto links.
-
Count whitespace as empty to prevent posting empty comments.
-
Prevent clearing the composer if it's not handled. (via
onComposerSubmit
) -
Add missing type exports
v2.0.2
- Add
deleteThread
method to the client to delete a room's thread. - Add the
threadDeleted
webhook event to notify when a thread is deleted. - Fix type signatures of
client.identifyUser()
andclient.prepareSession()
to requireuserInfo
if it's mandatory according to your globalUserMeta
type definition.
Examples
- New custom notifications example.
- Updated BlockNote example and guide to v0.14.1.
Documentation
- Create new guide on how to add users to Liveblocks text editor.
- Updated Lexical product page with new information.
- Improved Lexical get started guides.
- Improved
Liveblocks.initializeStorageDocument
section. - Fixed typo with token syntax passed to
authEndpoint
.
Website
-
v2.0.0
This major release marks the maturity of Liveblocks. It contains new products (
@liveblocks/react-lexical
) and clarifications (e.g.@liveblocks/react-comments
is now called@liveblocks/react-ui
). t Also, we bring major DX improvements by allowing you to specify your types globally now. These types will be typed once and shared across all Liveblocks APIs, which includes your Node backend.In
@liveblocks/react
, you can now import hooks directly:For full upgrade instructions and codemods, see the 2.0 upgrade guide.
-
Update config generation for Liveblocks 2.0.
-
Add
--upgrade
flag to automatically update all Liveblocks package to their latest version. -
DX improvements: type once, globally, benefit everywhere
-
DX improvement: import hooks directly
-
DX improvement:
<ClientSideSuspense>
no longer needs a function as itschildren
-
New provider:
LiveblocksProvider
(replaces the need forcreateClient
) -
New hook:
useClient
-
Tweak
useMutation
error message to be less confusing. -
Allow thread and activity metadata types to contain
undefined
values. -
Rename from
@liveblocks/react-comments
. -
Rename
<CommentsConfig />
to<LiveblocksUIConfig />
. -
Improve
InboxNotification
props types. -
Initial release.
-
Initial release.
-
LiveblocksProvider
is no longer a default export, it’s nowimport { LiveblocksYjsProvider } from "@liveblocks/yjs"
. -
DX improvements: all Node client methods will pick up the same global types you’re using in your frontend
-
Rename
RoomInfo
toRoomData
. -
The webhook event
NotificationEvent
’s type can represent multiple kinds of notifications. ("thread"
,"textMention"
, and custom ones (e.g."$myNotification"
)) -
Initial release.
Documentation
- New API reference page for
@liveblocks/react-lexical
. - Added lots of new information to
@liveblocks/react
API reference page. - Information includes details
Suspense
section, new
LiveblocksProvider
props, details on typing, and more. - Added a set of product pages for Notifications, with info on concepts, components, hooks, styling, and email notifications.
- Added product page for Lexical summarising all its features.
- Restructured and updated existing product pages for our new products.
- More information on the
NotificationEvent
webhook, including the newtextMention
kind. - Created new guide on adding users to Liveblocks Notifications.
- Created new guide on adding users to Liveblocks Text Editor.
- Created new get started guides for our new Lexical packages.
- Added product badges to get started guides.
- Updated all get started guides for new type improvements.
- Updated API references for new type improvements.
- Updated various guides for new type improvements.
- Updated images and text on How Liveblocks works page.
Website
- We redesigned our website to represent the Liveblocks product offering more
accurately. Here are some of the key changes:
- New homepage with interactive 3D game in the hero.
- New page product page for Liveblocks Text Editor
- New page product page for Liveblocks Notifications
- New page product page for Liveblocks Realtime APIs
- Improved pricing page
- New navigation
- New blog post: Introducing Liveblocks 2.0.
Examples
- Added new example:
nextjs-lexical
- Upgraded and adjusted all examples to 2.0
Infrastructure
- Webhooks are now available to everyone.
Dashboard
- Show Lexical information in rooms that use the new Lexical plugin.
-
Dashboard
- Added a brand new project analytics page with graphs that gives you better insights into active users, active rooms, comments, notifications, and data stored.
- Improved the billing and usage view.
- Moved Webhooks notification throttle interval setting to the project settings page
- Fixed a number formatting issue by enforcing US number formatting for all locations
Misc
- Ongoing internal refactorings to enable simpler setup for
@liveblocks/react
in the future.
Dashboard
- Liveblocks events are now visible in the dashboard.
- New "Events" tab within a project.
- Filter room events by type (e.g.
userEntered
,userLeft
), exactroomId
, and exactuserId
. - Select a date range (with available presets).
- Click on an event to open the event details modal.
- Navigate between events using the previous/next buttons without leaving the modal.
- On the room's detail page, click "View room events" at the top right to access the room events.
- Added a new date picker to the "Overview" and "Events" pages.
- Improved onboarding.
- Making sure the default team name isn't too long and can be submitted.
- Improved form submission performance by only calling the required API endpoints.
Misc
- Fixed broken link in one onboarding email.
- Internal refactorings to enable simpler setup for
@liveblocks/react
in the future.
- Liveblocks events are now visible in the dashboard.