Week 16 v3.18.3
- Third-party libraries like
yjs,@tiptap/*, and@blocknote/*are now declared as peer dependencies instead of bundled dependencies across all packages that use them.
v3.18.2
- New experimental
room.history.disable(fn)API that allows running storage mutations without them appearing on the undo/redo stacks. Intended for background/async writes (e.g. writing back AI generation results) that should not be undoable. - Fix
ToJsontype losing specific value types forRecord<string, T>fields in Storage
v3.18.1
- Mentions suggestions now appear in more cases after typing
@:- After punctuation like
!,.,(, etc. (e.g.Hello!@,cc: the other team (@) - After emojis (e.g.
Hello đź‘‹@)
- After punctuation like
Infrastructure
- Moved the public monorepo from NPM to pnpm.
- Started the transparent internal migration of old rooms still on the v1 realtime data storage engine to the new v2 engine, learn more about the benefits.
Examples
- New example: Handsontable comments.
- New example: Multiplayer Handsontable.
Website
- New blog post: Unveil Week recap: Realtime collaboration for humans and agents.
- New blog post: Official n8n nodes for Liveblocks.
- Third-party libraries like
Week 15 v3.18.0
For full upgrade instructions, see the 3.18 upgrade guide.
-
Breaking:
useStoragenow returns plain objects forLiveMapvalues instead ofMapinstances. Legacy APIs have been removed:.toImmutable(),.toObject(),.toArray(). -
New
.toJSON()on all Live structures, returning a cached JSON-compatible snapshot.JSON.stringify(root)now just works. -
New
LiveObject.from(obj)to create a LiveObject from plain JSON, recursively converting nested objects/arrays to Live structures. -
New
.reconcile(obj)to efficiently reconcile a LiveObject tree to match a JSON snapshot, only mutating what changed. -
initialStorageacceptsLiveObject.from()result directly. -
New
mutateFlow()API for reading and mutating React Flow data from a Node.js backend. Install vianpm i @liveblocks/react-flow, import from@liveblocks/react-flow/node. -
Add standalone
Avatarcomponent to complementAvatarStackfor more fine-grained customization. -
Add
variantprop toAvatarStackto support outlined avatars. -
Fix: Initial storage seeding no longer creates an undo frame.
-
Fix: Presence updates are now batched with storage updates.
Liveblocks dev server (v1.4.0)
- Add support for
client.mutateStorage()(from@liveblocks/node)
Website
- New blog post: AI agents are becoming native users of software.
- New blog post: Introducing Feeds and APIs for Agent Workflows.
- New blog post: Multiplayer SDK for React Flow: Realtime collaboration between humans and agents.
- New blog post: Chat SDK adapter for Liveblocks.
- New blog post: Python SDK for Liveblocks.
- New blog post: Agent skills for Liveblocks.
Documentation
- Mention missing
updatedAtfield inupdateFeedMessagereference.
-
Week 14 v3.17.0
-
Introduce the package. Install with
npm install @liveblocks/react-flow. Provides hooks and components that add collaboration to any React Flow diagram using Liveblocks Storage:- Use the
useLiveblocksFlowhook to make React Flow synced and collaborative. - Use the
Cursorscomponent to show other users' cursors inside React Flow.
- Use the
-
Allow customizing cursors in the
Cursorscomponent by passing acomponents={{ Cursor: MyCursor }}prop.
v3.16.0
-
Introduce the package. Install with
npm install @liveblocks/chat-sdk-adapter. Provides achat-sdk-compatible backend adapter backed by Liveblocks Comments: webhooks, posting and editing messages, reactions, paginated fetches, thread and channel helpers, and optionalresolveUsers/resolveGroupsInfohooks. -
Add Feeds hooks:
useFeeds,useFeedMessages,useCreateFeed,useDeleteFeed,useUpdateFeedMetadata,useCreateFeedMessage,useDeleteFeedMessage, anduseUpdateFeedMessage. -
Add REST client methods for Feeds:
getFeeds,getFeed,createFeed,updateFeed,deleteFeed,getFeedMessages,createFeedMessage,updateFeedMessage, anddeleteFeedMessage. -
Add Feeds REST API support on the sync and async clients (
get_feeds,get_feed,create_feed,update_feed,delete_feed,get_feed_messages,create_feed_message,update_feed_message,delete_feed_message) with matching request/response models. -
Add Feeds: room-scoped feeds with metadata and messages and APIs to list, create, update, and delete feeds and messages (
fetchFeeds,fetchFeedMessages,addFeed,updateFeed,deleteFeed,addFeedMessage,updateFeedMessage,deleteFeedMessage). -
Add
bodyprop toCommentto allow overriding only the default rich-text comment body while still keeping attachments, reactions, andadditionalContentas is, unlike when using thechildrenprop. -
Fix
AvatarStacknegative margin breaking alignment.
Liveblocks dev server (v1.3.0)
- Add feeds support (feeds:write permission)
- Add verbose logging toggle
- Fix permission validation to accept all valid permission combinations
- Support passing extra arguments to
--cmddynamically
Website
- Liveblocks Unveil: April 6–10, 5 days of launches.
Documentation
- New page: n8n nodes.
- New page: AI Collaboration.
- New get started: Next.js + Realtime feeds.
- New get started: Next.js + React Flow.
- Add Feeds to API reference pages.
- New concepts and WebSocket images.
Examples
- New example: AI Comments.
- New example: Chat SDK Bot.
- New example: Chat SDK AI Bot.
-
Week 13 3.15.5
-
Improve clipboard handling when text nodes containing comments were copied or pasted.
-
Fix request body for certain endpoints, like
update_room_id,initialize_storage_documentincorrectly set as optional.
Liveblocks dev server (v1.2.0)
New dev server features:
- Live socket inspector view
- Maintenance mode toggle (to reject new WebSocket connections)
Documentation
- New page: Agent skills.
Showcase
- New item: Realtime design like Figma.
-
Week 12 v3.15.4
-
Add
Liveblocks.getAttachment()method to get an attachment's metadata and a presigned download URL. -
Add
get_attachment()method to get an attachment's metadata and a presigned download URL.
v3.15.3
-
Introduce the Python package. Install with
pip install liveblocks. Provides sync and async clients for the full Liveblocks API (rooms, storage, threads, comments, etc.) for backend use. -
Add
showSubscriptionprop toThreadto control whether to show the thread’s subscription status.
Liveblocks dev server (v1.1.0)
New dev server features:
- ID token authentication support
- Read-only rooms support
- Room permissions and room metadata
- Room filtering support
- Room Node.js methods and REST APIs are now fully supported
See dev server documentation for the updated feature matrix.
Dashboard
- We added support for setting description on projects for better documentation and organization
- Fixed a bug preventing inviting new members correctly
- Internal refactoring of dashboard components to improve performance and efficiency
Infrastructure
- Mangement API: We added support for setting description on projects for better documentation and organization.
Documentation
- New API reference: Python SDK.
Website
- New blog post: What's new in Liveblocks: February 2026.
- New blog post: New React components for adding realtime presence and contextual commenting to your app.
-
Week 11 v3.15.2
-
Deprecate the
engineoption onenterRoom(). This flag no longer has any effect. -
Deprecate the
engineprop onRoomProvider. This flag no longer has any effect. -
Deprecate the
engineoption oncreateRoom(). This flag no longer has any effect. -
Stop sending the
enginefield in the room creation request body.
v3.15.1
- Add
gapprop toAvatarStackto control the--lb-avatar-stack-gapCSS variable. - Add
paddingprop toCommentPinto control the--lb-comment-pin-paddingCSS variable. - Fix
sizeprops onAvatarStackandCommentPinnot working as expected when passing numbers. - Fix
autoFocusprop onFloatingComposer. - Improve avatars’ ordering and
maxlogic inAvatarStack. - Support
childrenprop onCommentPin.
Documentation
- Mention how token caching is never recommended.
Examples
- Improve canvas comments example to prevent a conflict after moving a comment pin twice in rapid succession.
-
Week 10 v3.15.0
-
Add various new ways to customize
ThreadandComment:- Comments in
Threadcan now be overridden or customized via thecomponentsprop. - New parts of
Comment(content, avatar, author, and date) can now be overridden or customized via thechildren,additionalContent,avatar,author, anddateprops.
- Comments in
-
Fix
commentDropdownItemsprop onThreadnot working as expected in some cases. -
Each
createRoomContext()invocation now creates its own isolated context to allow nesting independent room contexts and theirRoomProvidercomponents. -
Support newer BlockNote versions and bump the minimum required version to v0.43.0. (Thanks @nperez0111 for the contribution!)
-
Improve how inline components passed to
components={{ ... }}props are handled by keeping them stable instead of re-mounting them on every render. -
Move
@radix-ui/*dependencies to theradix-uimono package.
Examples
- New example: AG Grid Comments.
- Update old examples to use new presence and commenting components.
Documentation
- New quickstart: Draggable comments with Next.js.
- New quickstart: Commenting inside AG Grid with Next.js.
- New quickstart: Commenting inside a table with Next.js.
- New quickstart: Realtime avatar and cursor presence with Next.js.
- New guide: How to add users to Liveblocks presence components.
- Mention
sk_localdevandpk_localdevkeys more explicitly in dev server docs. - Mention
["comments:write"]permission under authentication.
-
Week 9 v3.14.1
- Fix paginated hooks (
useThreads,useInboxNotifications, anduseAiChats) stopping pagination after the firstfetchMore()call when auto-paginating in auseEffect.
Zen Router
- Zen Router was released, our open-source HTTP router.
- Documentation website for Zen Router was published.
- Repo for Zen Router was published.
Website
- New blog post: Introducing Zen Router: our open-source type-safe router compatible with Cloudflare Workers.
Examples
- Next.js Starter Kit was updated to support new features.
- Organization switcher powered by tenants/organizations, with separate inboxes in each.
- New universal header built with
useIsInsideRoom. - New share menu with private/org/public permissions.
- Filters for private/org/public documents on dashboard.
- New Document shape with new permissions added.
- Better UX in various places and tidied project structure.
- Fix text size in Next.js Starter Kit on mobile devices. Thank you @chrrrs!
Showcase
- New item: Next.js Starter Kit for realtime collaboration.
- New item: An inbox for each workspace.
- New item: Share menu with live permissions.
- Fix paginated hooks (
Week 8 Open source
This week we've open-sourced the Liveblocks sync engine and dev server.
v3.14 🥧
This release adds support for opting-in to the new storage engine on a per-room basis. The new storage engine can support larger documents, is more performant, is considered more stable, and will eventually become our default engine for all new rooms in the future. As of this release, the default storage engine still remains engine version 1.
To give it a try, simply pass
engine: 2when entering a new room. After a room is created, you cannot change the engine it was created with anymore.or:
-
Support for selecting the preferred engine when entering new rooms:
client.enterRoom("my-new-room", { engine: 2 }) -
Internal protocol optimizations to support larger storage documents
-
Add new config option
createClient({ baseUrl: "https://..." })to allow connecting to the Liveblocks dev server -
Improve
LiveListperformance when processing large batches of operations -
Improve
LiveList.push()efficiency to prevent unbounded position string growth over time -
Fix crash when clearing documents with a large number of keys
-
Remove the
largeMessageStrategyclient option. The WebSocket message limit has been increased from 1 MB to 32 MB, making this setting obsolete. -
Support for selecting the preferred engine when entering new rooms:
<RoomProvider id="my-new-room" engine={2}>...</RoomProvider> -
Add new config option
<LiveblocksProvider baseUrl="https://..." />to allow connecting to the Liveblocks dev server -
Exclude marking a thread or inbox notification as read from blocking navigation when
preventUnsavedChangesis enabled. -
Portaled elements now respect the
portalContaineroption from@liveblocks/react-ui’sLiveblocksUiConfiginstead of always usingdocument.body. -
Support for selecting the preferred engine when entering new rooms:
enterRoom("my-new-room", { engine: 2 }) -
Add new
.setPresence()method to set ephemeral presence for a user in a room via the REST API, without requiring a WebSocket connection -
Deprecated
tenantIdparameter in client methods, useorganizationIdinstead.
Website
- New blog post: Open sourcing the Liveblocks sync engine and dev server.
Documentation
- New page: Dev server.
- New page: Management API.
- New page: Multi-Factor Authentication.
- New guide: How to set up Continuous Integration (CI) testing.
- New guide: How to set up End-to-End (E2E) testing with Playwright.
- New guide: The new Storage engine and its benefits.
- Updated overview information on Storage.
- Updated overview inforamtion on Yjs.
Dashboard
- The Management API is now available in private beta for Enterprise customers.
- We added Multi-Factor Authentication (MFA) support. Users can now enable MFA in their account pesonal settings for enhanced security.
- New toggle to opt-in to use v2 Storage engine for all new rooms created going forward.
Showcase
- New item: [Develop locally with the dev server)[https://liveblocks.io/showcase/dev-server-tldraw].
Examples
- Add dev server guide to all fully-supported example READMEs.
-
Week 7 v3.13.5
- Replace
y-tiptapwithy-prosemirrorto prevent plugin key conflict, which was causing change source to be incorrectly set in BlockNote.
Documentation
- Add
.mdto the end of any docs page to view a markdown representation of it. - This
.mdis mentioned as analternatelink on each docs page. - Fetching any docs page with a priority
text/markdownheader will return markdown.
Showcase
- New item: Multiplayer table.
- Replace