Changelog

Week 8

Week 8
WEEK8

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.

// Vanilla JSclient.enterRoom("my-new-room", { engine: 2 });

or:

// In React<RoomProvider id="my-new-room" engine={2}>  ...</RoomProvider>

@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 LiveList performance 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 largeMessageStrategy client 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 preventUnsavedChanges is enabled.

@liveblocks/react-tiptap and @liveblocks/react-lexical

  • Portaled elements now respect the portalContainer option from @liveblocks/react-ui’s LiveblocksUiConfig instead of always using document.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 tenantId parameter in client methods, use organizationId instead.

Website

Documentation

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

Examples

  • Add dev server guide to all fully-supported example READMEs.

Contributors

Contributors include:nviemarcbouchenoireflowflorentjrownyctnicholassugardariuspierrelevaillantnimeshnayaju

8 authors