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
Week 6 v3.13.4
- Fix an issue where
FloatingComposerwouldn’t auto-focus andFloatingToolbarwould conflict with it.
Examples
- Fixed BlockNote example.
- Updated Nuxt example.
Documentation
- Update Next.js authentication guides to use
.env.local.
- Fix an issue where
Week 5 Documentation
- New quickstart flow, prioritizing products, and use cases.
- New quickstart guides for Notifications in two different categories.
- New quickstart guide for Tldaw.
- New guide: How to notify users about unread custom notifications outside of your app.
- New guide: How to notify users about unread comments outside of your app.
- A number of updated dashboard screenshots.
Dashboard
- New quickstart flow to match the documentation update.
- Get your API key from the quickstart page.
Examples
- Updated all examples to use the latest versions of their major frameworks.
- Updated all packages in all examples.
Week 4 v3.13.3
-
Bump hardcoded client-side socket connection timeout from 10s to 20s.
-
Add more detailed timing info to
enableDebugLoggingto better debug connection issues. -
Fix an issue where
ComposerandAiComposerwould throw an error when mounted/unmounted.
-
Week 3 v3.13.2
- Add a new
alwaysUseKnowledgeoption when creating or updating copilots. When this option is enabled, the copilot retrieves and uses the uploaded knowledge sources on each user query. When disabled, the copilot will retrieve the uploaded knowledge sources only when the user query relates to the knowledge prompt set on the copilot.
v3.13.1
- Fix issue where storage subscriptions wouldn't fire after concurrent move and
set operations, causing stale
LiveListstate in UI.
v3.13.0
This release adds support for comment metadata, allowing you to attach custom metadata to individual comments in the same way as thread metadata.
-
Support typing comment metadata globally via the
Liveblocksinterface. -
Improve
CommentBodytypes. -
Internal refactorings to prepare for upcoming protocol updates.
-
Add new parameters to
createThread,createComment, andeditCommentto attach and update comment metadata. -
Add
editCommentMetadatamethod to update only a commentʼs metadata. -
Add new parameters to
useCreateThread,useCreateComment, anduseEditCommentto attach and update comment metadata. -
Add
useEditCommentMetadatahook to update only a commentʼs metadata. -
Add
commentMetadataprop toComposerto attach and update comment metadata. -
Add
commentMetadataprop toFloatingComposerto attach and update comment metadata. -
Fix
Toolbarnot reflecting the editorʼs current state. -
Add new parameters to
createThread,createComment, andeditCommentto attach and update comment metadata. -
Add
editCommentMetadatamethod to update only a commentʼs metadata. -
Add
commentMetadataUpdatedwebhook event.
- Add a new
Week 2 Dashboard
- Data refreshes much more quickly when viewing rooms.
- Added floating avatar on pricing page.
- Fixed bug with linking integrations to
create-liveblocks-appCLI.
Week 51 v3.12.1
- Improve some internal type definitions
v3.12.0
-
Liveblocks branding will appear for free plans.
-
Added
badgeLocationoption for the client library to control the branding location for free plans. -
Added
badgeLocationoption toLiveblocksProviderto control the branding location for free plans.
Infrastructure
- We've been doing lots of prep work to enable a new opt-in storage engine for Liveblocks rooms that will bring performance benefits like faster room connection speed and larger document sizes to everyone—stay tuned!
Documentation
- Fix
useThreadsAPI reference, it returns oldest threads first, not newest threads.
Week 50 v3.11.1
-
Log full error details when WebSocket connections to Liveblocks are getting blocked
-
Fix an issue where a document incorrectly reported its sync state.
-
Week 49 Examples
- New example: Comments search.
- Add custom “Copy link” comment dropdown item to the Linear-like Issue Tracker example.
Showcase
- New item: Search through comments.