• DocsDocs
  • PricingPricing
Sign in
Get started
Sign in
Get started
    • Products
      • Sync
        Sync

        The sync engine for the agentic web

      • Comments
        Comments

        Contextual commenting

      • Notifications
        Notifications

        Smart alerts for your app

    • Platform
      • Realtime infrastructure

        Multiplayer sync for people and AI

      • SDKs & integrations

        Client libraries and framework adapters

      • Security & compliance

        SOC 2, HIPAA, GDPR

    • Agentic users

      Build agentic experiences

    • AI activity feed

      Surface AI activity in your app

    • Canvas

      Build collaborative canvases

    • Chat

      Create realtime chat experiences

    • Code editor

      Build collaborative coding experiences

    • Comments

      Add contextual discussion

    • Custom app

      Start with flexible building blocks

    • Forms

      Collect input together

    • Flowchart

      Diagram together

    • Inbox

      Keep users informed

    • Presence

      Show who is online

    • Slideshow

      Present together

    • Spreadsheet

      Collaborate on data

    • Text editor

      Edit documents together

    • Industries
      • Human resources

        Collaboration for HR & talent tools

      • Security & compliance

        Collaborative reviews for audits & evidence

      • Sales & marketing tools

        Engaging features that help sellers sell

      • Healthcare

        HIPAA-ready collaboration for care teams

      • Creative tools

        Multiplayer canvases for people & AI

      • Legal

        Secure drafting for firms & clients

      • AEC

        Collaboration for design & construction

      • Education

        Interactive realtime learning experiences

    • Users
      • Enterprise

        Realtime collaboration without a rewrite

      • Innovation

        Validate and ship multiplayer bets fast

      • Startups

        Build multiplayer products from day one

      • Individual builders

        Prototype multiplayer apps in minutes

    • Tools
      • Examples

        Gallery of open source examples

      • Showcase

        Gallery of collaborative experiences

      • Next.js Starter Kit

        Kickstart your Next.js collaborative app

      • DevTools

        Browser extension

      • Tutorial

        Step-by-step interactive tutorial

    • Company
      • Blog

        The latest from Liveblocks

      • Customers

        The teams Liveblocks empowers

      • Changelog

        Weekly product updates

      • About

        The story and team behind Liveblocks

  • Docs
  • Pricing
  • Products
    • Sync
    • Comments
    • Notifications
    Platform
    • Realtime Infrastructure
    • SDKs & integrations
    • Security & compliance
    Solutions
    • Human resources
    • Security & compliance
    • Sales & marketing tools
    • Healthcare
    • Creative tools
    • Legal
    • AEC
    • Education
    • Enterprise
    • Innovation
    • Startups
    • Individual builders
  • Use cases
    • Agentic users
    • AI activity feed
    • Canvas
    • Chat
    • Code editor
    • Comments
    • Custom app
    • Forms
    • Flowchart
    • Inbox
    • Presence
    • Slideshow
    • Spreadsheet
    • Text editor
    Technologies
    • Next.js
    • React
    • JavaScript
    • Redux
    • Zustand
    • Yjs
    • Tiptap
    • BlockNote
    • SuperDoc
    • Slate
    • Lexical
    • Quill
    • Monaco
    • CodeMirror
  • Resources
    • Documentation
    • Examples
    • Showcase
    • DevTools
    • React components
    • Next.js Starter Kit
    • Tutorial
    • Guides
    • Release notes
    Company
    • Pricing
    • Blog
    • Customers
    • Changelog
    • About
    • Contact us
    • Careers
    • Terms of service
    • Privacy policy
    • DPA
    • Security
    • Trust center
    • Subprocessors
  • HomepageSystem status
    • Github
    • Discord
    • X
    • LinkedIn
    • YouTube
    © 2026 Liveblocks Inc.
Blog/Updates

What's new in v0.19

In this release we're adding support for Zustand v4 to Liveblocks, enabling us to improve the quality of our TypeScript, fully aligning it with the standard of our React package.

Picture of Vincent Driessen
Vincent Driessen on November 10th, 2022
What's new in v0.19
November 10th, 2022·2 min read
  • Picture of Vincent DriessenVincent Driessen
Share article

Related blog posts

  • Introducing Liveblocks Sync: the sync engine for the agentic web

    Introducing Liveblocks Sync: the sync engine for the agentic web

    Picture of Chris Nicholas
    September 1st
    Updates
  • LiveText: a new data type for collaborative text editing

    LiveText: a new data type for collaborative text editing

    Picture of Chris Nicholas
    September 1st
    Updates
  • What's new in Liveblocks: July 2026

    What's new in Liveblocks: July 2026

    Picture of Chris Nicholas
    August 4th
    Updates

Zustand v4 support

With the release of Liveblocks 0.19, we’re adding support for Zustand v4 to @liveblocks/zustand. Zustand v4 brings greatly improved TypeScript types to its APIs, enabling us to enhance the quality of our types, bringing it in line with our React package.

React Native To-do List

To try the new version, upgrade both Zustand to v4 and Liveblocks to v0.19 as part of the same change.

$npm install zustand@latestnpm install @liveblocks/zustand@latest

After installing you can then change these imports:

// ❌ Beforeimport { middleware } from "@liveblocks/zustand";
// ✅ Afterimport { liveblocks } from "@liveblocks/zustand";import type { WithLiveblocks } from "@liveblocks/zustand";

And finally, update your create function to the new pattern (explanation below):

// ❌ Beforecreate(middleware<MyState, ...>(...));
// ✅ Aftercreate<WithLiveblocks<MyState, ...>>()(liveblocks(...));

In this code snippet, we’re making four changes, as required by Zustand v4, or in accordance with ecosystem conventions:

  1. Renaming middleware to liveblocks.
  2. Moving the typing from middleware to create.
  3. Wrapping the MyState type in a WithLiveblocks<...> wrapper.
  4. Adding an extra call () to the wrapper:
create<WithLiveblocks<MyState, ...>>()(liveblocks(...));//                                  ^^ Not a typo!

After upgrading, you can now remove any manual type annotations that may have been sprinkled around your codebase. All types will now automatically be inferred!

Zustand v3

Because of the nature of the change, we’ll be dropping support for Zustand v3, but it’ll still be supported in previous versions of Liveblocks:

  • If you use Zustand v3.x, use Liveblocks 0.18.x.
  • If you use Zustand v4.1.3+, use Liveblocks 0.19.x+.
  • (Zustand versions 4.0.0–4.1.2 are not supported.)

Contributors

Huge thanks to everyone who contributed and specifically to Guillaume Salles for his help towards the end allowing us to ship this faster. Also a big shout out to our incredible community that keeps jumping in to help us improve our Zustand integration! Especially Rayo Verweij, for fixing a few minor issues in our whiteboard React + Zustand tutorial. Keep checking out the changelog for the full release notes – see you next time!