ChangelogWeek 8
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: 2 when entering a new room. After a room is created, you cannot change the engine it was created with anymore.
or:
@liveblocks/client
- 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.
@liveblocks/react
- 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.
@liveblocks/react-tiptap and @liveblocks/react-lexical
- Portaled elements now respect the
portalContaineroption from@liveblocks/react-ui’sLiveblocksUiConfiginstead of always usingdocument.body.
@liveblocks/zustand and @liveblocks/redux
- Support for selecting the preferred engine when entering new rooms:
enterRoom("my-new-room", { engine: 2 })
@liveblocks/node
- 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.