Week 20 v3.19.1
- Update providers to support newer models up to GPT-5.5 variants, Sonnet 4.6, Opus 4.7, and Gemini 3/3.1 variants.
Infrastructure
- We have fully completed the internal migration of all rooms to our new v2 realtime data storage engine! Learn about the benefits.
Documentation
- New integrations section, featuring info on how to integrate Liveblocks into a number of new products.
- Integrations pages include Bolt, Claude, Codex, Cursor, Lovable, Neon, PlanetScale, Reply, Supabase, v0.
- Updated old guides and pages related to n8n, PlanetScale, Supabase.
- New copy page dropdown for copying markdown into various AI tools.
- Get started markdown homepage for AI.
- New breadcrumb UI on docs pages.
Examples
- Add AI features to Linear-like Issue Tracker example. Tag AI in comments and it can edit the document, links, properties, and show AI presence as it makes changes.
Week 19 v3.19.0
-
Add new
markdownToCommentBodyhelper to convert Markdown strings intoCommentBodyobjects. -
room.history.disable(fn)is now officially supported and no longer experimental. It allows running storage mutations without them appearing on the undo/redo stacks and it’s intended for background/async writes (e.g. writing back AI generation results) that should not be undoable. -
Fix keyboard shortcut in strikethrough tooltip. (Thanks @HellBoy-OP for the contribution!)
-
Fix Yjs undo/redo silently breaking after
editor.registerPlugin/unregisterPluginis called (e.g. when Tiptap'sBubbleMenu,DragHandle, orSlashCommandmount). The reattachrestore()is now installed unconditionally on view destroy, matching upstream@tiptap/extension-collaboration. (Thanks @lucasmotta for the contribution!)
Liveblocks dev server (v1.4.1)
- Fix:
client.getOrCreateRoom()no longer errors when the room already exists, matching production behavior. - Fix: Yjs document updates made via
PUT /v2/rooms/<roomId>/ydocnow get broadcast to connected WebSocket clients, matching production behavior.
-
Week 17 v3.18.5
- Support overlapping comment marks, they now all appear in the
AnchoredThreadsandFloatingThreadscomponents.
v3.18.4
- Mark
yjsandy-prosemirroras required peer dependencies.
Website
Infrastructure
- We're almost done migrating over all rooms to our new v2 realtime data storage engine–we're deep in the long tail! (For the benefits of this, read more here.)
Documentation
- New get started guide: Multiplayer Handsontable.
- New get started guide: Commenting in Handsontable.
- Support overlapping comment marks, they now all appear in the
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.
-