What's new in Liveblocks: October 2025
We've released features across the board recently, including Tiptap 3.0 support, multi-tenancy, group mentions, numerical thread filters, AI chat web search, AI chat status hook, new AI Copilots examples & docs, and Liveblocks AI assistant.

This September & October, we’ve added a number of features across the board:
- Multi-tenancy: Build collaborative apps that serve multiple organizations.
- Tiptap 3.0 support: Upgrade to the latest versions of Tiptap & BlockNote.
- Group mentions: Tag groups of users in comments, like
@everyone. - Numerical thread filters: Use greater/less than metadata filters in threads.
- Batched notifications: Update existing notifications with new content.
- Filter notification counts: Display filtered unread notification badges.
- AI chat web search: Give your AI the ability to search the web.
- AI chat status hook: Create AI chat status indicators & loading spinners.
- New AI Copilots examples & docs: Learn how to build advanced AI Copilots.
- Liveblocks AI assistant: Get AI help from our documentation & dashboard.
- Dashboard improvements: Better user experience & clarity in our dashboard.
Upgrade now
To use the latest features, update your packages with the following command.
If you were previously on Liveblocks 3.9 or below, make sure to follow our upgrade guides before updating.
Multi-tenancy
Liveblocks now fully supports multi-tenancy with the new Tenants feature, making it easier than ever to build collaborative apps that serve multiple organizations, all within a single project.
What does this mean?
A common pattern in SaaS apps is to have an organization switcher in the corner of the app, allowing users to switch between different organizations, or tenants.

Liveblocks now supports this out of the box, with rooms and notifications being scoped to a specific tenant. For example, if a user is part of multiple organizations, each organization will have its own inbox, and the user will only receive notifications created by users in the current tenant.
Setting up Tenants
To set up Tenants, assign a specific tenant ID as you create a room on the server.
When authenticating a user, assign the same tenant ID, and they will only be able to access rooms and activity assigned to that tenant.
Rooms, comments, storage, mentions, notifications, and virtually all Liveblocks features can be scoped. Learn more in our documentation under tenants.
Tiptap 3.0 support
You can now use Tiptap 3.0 on Liveblocks, allowing you to take advantage of features such as better static rendering, JSX rendering, improved TypeScript support, and more. With this change, Liveblocks now supports the latest versions of BlockNote too.

Each of our Tiptap examples has been updated to use Tiptap 3.0, as well as our Next.js Starter Kit, which allows you to install and test a full collaborative application.
Migrating from Tiptap 2
To update your existing application to Tiptap 3.0, follow the instructions in our Liveblocks 3.10 upgrade guide. Future versions of Liveblocks will require Tiptap 3.0.
Group mentions
We’ve added support for group mentions in threads, inbox notifications, and text
editors, meaning you can now tag entire groups of users at once, for example
@everyone or @engineering.

You can set up group mentions in two different ways, either by providing a list
of user IDs on the client, most helpful for tags such as @everyone, or by
creating managed, permanent groups on the server, helpful for creating specific
teams of users, such as @engineering.
Related to the second method, there are a number of new methods allowing you to modify and manage your groups. Learn more about both methods of creating groups under group mentions in our documentation.
Numerical thread filters
When you create a new Comments thread, you can attach custom
metadata properties to it. You can now filter for comments with numeric metadata
values greater or less than a specific value. In this example, you can see how
gt represents “greater than”.
You can combine operators to create ranges, which is particularly powerful in combination with tables. For example, if your app is a spreadsheet, you can filter for threads that are on screen for the user, around their current row and column.
This filter supports 4 operators in total: gt - “greater than”, lt - “less
than”, gte - “greater than or equal to”, lte - “less than or equal to”.
Learn more in our documentation under
useThreads.
Batched notifications
Notifications can now be batched, meaning you update existing notifications, replacing their content, or adding new content to them. This is particularly useful for changing statuses in notifications, or adding timelines of events, such as in the video below.

Updating a timeline within a notification—Custom Notifications example.
To set up batching, you need to set your custom notification kind as a batched kind in the dashboard.
Learn more in our documentation under notification batching.
Filter notification counts
When using Notifications, you can easily display an unread notification count for the current user, typically displayed in a small badge. Previously, this count would sum every unread notification the user had, but you can now filter the count by room ID.
You can also filter the count by notification kind, if you’d only like to count a specific type of notification, such as thread notifications.
Custom notification kinds
work with this filter too. Learn more in our documentation under
useUnreadInboxNotificationsCount.
AI chat web search
AI Copilots now has web search, allowing you to ask your AI to search the web for information. After querying, the search term and a list of sources are displayed.

To enable this feature, toggle the “Web search” setting for your AI copilot in the dashboard, or set it from our back-end APIs, learn more. Most OpenAI and Anthropic models support web search.
AI chat status hook
You can now create status indicators and loading spinners in your UI based on
the status of an AI chat. The new
useAiChatStatus hook
for AI Copilots allows you to render different components based
on whether an AI chat is idle, generating, or loading.
You can also use the hook to check which
AI tool is currently running.
Learn more in our documentation under
useAiChatStatus.
New AI Copilots examples & docs
We’ve added two new AI Copilots examples to our collection, exhibiting different ways to use advanced Liveblocks AI features in your app, along with greatly expanded documentation, detailing how to build them.
AI App Builder example
The first example is our AI app builder, which uses AI tool calls to generate websites, in particular React code. After the code’s generated, a live preview updates with the AI-generated website.

The code is streamed as it’s generated into a Monaco code editor, displaying AI presence as it arrives.

The code, and a live demo, can be found in our examples gallery: AI app builder.
AI Calendar example
The second example is our AI calendar, which uses AI actions to generate an event, and then add it. Every event is fed into the AI as front-end knowledge, allowing the AI to understand the current state of the calendar, and make context-aware decisions.

The code, and a live demo, can be found in our examples gallery: AI calendar.
New documentation
We’ve added a wealth of new information to our AI Copilots documentation, including pages and code snippets detailing every way to use our product.
- Learn how to set up your copilots, get advice on creating system prompts, and using advanced settings.
- Discover each way to use our hooks, for example to list a user’s chats, modify AI chats, and send messages from outside the chat.
- Try adding knowledge, our way to pass information to your AI through your front-end with JSON and your back-end with RAG.
- Set up tools, allowing you to fill your app with AI-powered actions, custom components, and AI presence.
- Find help on our troubleshooting page, where we detail common errors, and how to avoid rate limits with fallback models.
Let us know if you have any feedback on the new documentation, or if there's anything else you’d like to see added.
Liveblocks AI assistant
We’ve added a multi-purpose AI assistant to our docs and dashboard, built with AI Copilots, allowing you to ask questions, create projects, navigate to pages, view your usage, contact support, and much more.

You can interact with the assistant outside the chat too, for example via buttons or inputs. Every page and code snippet in our docs has Ask AI buttons if you get stuck, and we also provide ways to upgrade more easily, by letting AI write install commands for you.

How it works
The Liveblocks AiChat
component renders our default chat components, with hooks such as
useAiChats and
useSendAiMessage used
to embed additional functionality.
In total, the assistant has 17 different tools at its disposal, giving it the power to navigate the website, fetch plan information, create projects, and more. Its copilot has a long, detailed prompt for the assistant, filled with example responses, which directs when each tool should be used.
It also understands all the information on our website using back-end knowledge, which allows you to crawl and ingest the contents of a website. Data about the current user, page, and team is passed as contextual front-end knowledge.
Dashboard improvements
We’ve worked hard to improve the overall user experience of our dashboard, making it simpler and clearer how to manage your projects, rooms, and more. We’ve included lots of new hints and tooltips throughout.

One page we’ve taken particular care to improve is the notifications page. To send Liveblocks notifications outside of your app (e.g. via email, Slack) you need to use this page to set up each notification channel and webhook. When you set up a channel, a message is now displayed, letting you know whether a webhook is configured, offering a shortcut if none has been.

There’s also a new Edit mode and side panel UI for editing your current notification channels, making it clearer how everything links together. Modify your settings for the current channel, then publish your changes to complete the process.

User experience is important to us at Liveblocks and we’ll continue making improvements in this area.
Minor improvements
- Update type definitions for provider models to support GPT-5 variants.
- Add support for web search to
<AiChat />component. - Add
showSources,showRetrievalsandshowReasoningprops to<AiChat />component to determine how sources, retrievals and reasoning are displayed respectively. - Disable AI chat composers when AI service is not available.
- Add query filter
subscribedon theuseThreadshook. - Add
useUrlMetadatahook to get metadata for a given URL. - Expose
disconnectedstatus inuseAiChatStatusto indicate when AI service is not available. - Add query filter
subscribedon theroom.getThreadsmethod. - Update
createAiCopilotandupdateAiCopilotto include web search in provider options for OpenAI and Anthropic. - Remove all schema validation related client methods that should no longer be used. Schema validation was sunsetted on May 1st, 2025.
- Greatly improved “Notifications” flow, making it much clearer how they're
linked to webhooks.
- New “Kinds” tab, allowing you to define batching per kind.
- See the status of your webhooks from here.
- Warnings when no webhooks are set up, and shortcuts to get started.
- Improved “Webhooks” page.
- Set a rate limit for your webhooks when creating them.
- More detailed error messages when creating webhooks.
- Better UX on the URL input.
- Improved UX when creating projects
- New polished project cards displaying more info such as region restrictions.
- More clarity in project creation dialog boxes.
- Improved team/project selectors with UI polish and better accessibility.
- Improved MAU usage cards showing your team’s personalized limits.
- More clarity in project settings regarding environment and regions not being editable.
- Fixed problem downloading examples with
create-liveblocks-appintegration. - Add
chatIdprop toRegisterAiKnowledgeto scope knowledge to a specific chat, similar toRegisterAiTool. This is the same as using theknowledgeprop onAiChat. - Fix issue where
useAiChat()didn't re-render correctly when chat title gets updated. - Fix issue where
tenantIdwas not being passed to the request when usingLiveblocks.createRoom(). - Add
comments:writeto the list of possible room permissions. LiveMapandLiveObjectdeletions now report which item got deleted in the update notifications.LiveListalready did this.- Support numerical operators
gt,lt,gte, andlteinroom.getThreadsmetadata query filters. - Add new hook
useAiChatStatusthat offers a convenient way to get the current generation status for an AI chat, indicating whether the chat is idle, currently generating contents, and, if so, what type of content is currently generating. - Fixes an issue where
useUnreadInboxNotificationsCountwasn't returning the proper count if there were more than a page of unread notifications. - Support numerical operators
gt,lt,gte, andlteinuseThreadsmetadata query filters. - Add
responseTimeoutproperty toAiChatto allow customization of the default 30 seconds timeout. - The
titleprop onAiToolnow acceptsReactNode, not just strings. - Fix a bug where
AiChatwould not always scroll in the same way when sending new messages. - Add new method
Liveblocks.prewarmRoom(roomId, options). This method can prewarm a room from your back-end, preparing it for connectivity and making the eventual connection from the frontend faster. - Add query filters
roomIdandkindon theuseUnreadInboxNotificationsCounthook. - Add query filters
roomIdandkindon thegetInboxNotificationsmethod. - Add query filters
roomIdandkindon theuseInboxNotificationshook. - Rename
budgetTokentobudgetTokensinAnthropicProviderOptions. - Fixes a bug where a specific combination of concurrent LiveList mutations could break eventual consistency (two clients disagreeing on the final document state).
- Only show retrieval and reasoning durations in
AiChatwhen they are 3 seconds or longer. - Make
AiTooltitles selectable. - Auto-abort this client's tool calls on page unload to prevent hanging chats.
- Reasoning in
AiChatnow displays how long it took. AiChatnow shows when a copilot is searching its knowledge defined on the dashboard, as a "Searching 'What is RAG?'…" indicator. It also displays how long it took.- Add
Durationprimitive to display formatted durations, similar to the existingTimestampprimitive. - Better type safety for copilot creation and update options.
- Add missing type export for AI Copilot and knowledge sources.
- Throttle incoming AI delta updates to prevent excessive re-renders during fast streaming.
- Optimized partial JSON parser for improved tool invocation streaming performance.
- Fixes a Tiptap bug where a comment could not be selected if it was within a previously deleted comment.
- Add API reference modal to AI Copilot detail pages, with React, Node.js, and
REST API snippets to get started quickly.
- Add
useGroupInfohook to useresolveGroupsInfoin React, same asuseUserforresolveUsers.
- Add
- Support group mentions in default components (mentions suggestions dropdowns,
Thread,Composer,InboxNotification, etc). - Support group mentions in comments-related components.
- Support group mentions in text editors.
- Add methods to manage groups on Liveblocks (e.g.
createGroup,getUserGroups). - Add
tenantIdparameters to methods that need it when using tenants. - Mark
getThreadParticipantsas deprecated, use thread subscriptions orgetMentionsFromCommentBodyinstead. - Support group mentions in
stringifyCommentBody, it now accepts aresolveGroupsInfooption that passes the results to mentions asgroup. - Support group mentions in email notifications helpers. These functions now
accept a
resolveGroupsInfooption that passes the results to mentions asgroup. - Add new
resolveGroupsInforesolver to provide information about groups (e.g.name,avatar, etc) similar toresolveUsers. - Support returning group mention suggestions in
resolveMentionSuggestions.
Upgrade
To use these latest features, update your packages with:
Contributors
8 authors
Ready to get started?
Join thousands of companies using Liveblocks ready‑made collaborative features to drive growth in their products.


