Skip to main content
Zustand provides bear necessities for state management. Although it is great for most projects, some users wish to extend the library’s feature set. This can be done using third-party libraries created by the community.
These libraries may have bugs, limited maintenance, or other limitations, and are not officially recommended by pmndrs or the Zustand maintainers. This list aims to provide a good starting point for someone looking to extend Zustand’s feature set.

Developer Tools

Enhance your debugging and development experience with these devtools integrations.

zukeeper

Native devtools with state and action tracking, diffing, tree display, and time travel

simple-zustand-devtools

Inspect your Zustand store in React DevTools

zusty

Zustand tool to assist debugging with time travel, action logs, state snapshots, store view, render time metrics and state component tree

@csark0812/zustand-expo-devtools

Connect Zustand to Redux DevTools in Expo + React Native using the official Expo DevTools plugin system

Persistence & Synchronization

Libraries for persisting state and syncing across tabs, windows, and devices.

persist-and-sync

Zustand middleware to easily persist and sync Zustand state between tabs/windows/iframes with same origin

shared-zustand

Cross-tab state sharing for Zustand

zustand-sync-tabs

Zustand middleware to easily sync Zustand state between tabs/windows/iframes with same origin

use-broadcast-ts

Zustand middleware to share state between tabs

zustand-persist

A middleware for persisting and rehydrating state

zustand-multi-persist

A middleware for persisting and rehydrating state to multiple storage engines

zustand-mmkv-storage

Fast, lightweight MMKV storage adapter for Zustand persist middleware in React Native

zustand-interval-persist

An enhancement for zustand that enables automatic saving of the store’s state to the specified storage at regular interval

Multiplayer & Real-time Collaboration

Build collaborative applications with real-time state synchronization.

@liveblocks/zustand

Liveblocks middleware to make your application multiplayer

@hpkv/zustand-multiplayer

HPKV multiplayer middleware for building realtime collaborative applications

zustand-middleware-yjs

A middleware for synchronizing Zustand stores with Yjs

zustand-yjs

Zustand stores for Yjs structures

Framework Integrations

Use Zustand with different frameworks and platforms.

vue-zustand

State management solution for Vue based on Zustand

zustand-vue

State management for vue (Vue3 / Vue2) based on zustand

solid-zustand

State management in Solid using Zustand

ngx-zustand

A Zustand adapter for Angular

zubridge

Use Zustand in cross-platform apps, seamlessly. Supports Electron & Tauri

zustand-lit

A zustand adapter for lit.js (LitElement)

zustand-pub

Cross-Application/Cross-Framework State Management And Sharing based on zustand and zustand-vue for React/Vue

State Management Utilities

Enhance your store creation and management with these utilities.

@davstack/store

A zustand store factory that auto generates selectors with get/set/use methods, supports inferred types, and makes global / local state management easy

zustand-x

Zustand store factory for a best-in-class developer experience

auto-zustand-selectors-hook

Automatic generation of Zustand hooks with Typescript support

zustand-slices

A slice utility for Zustand

zustand-injectors

A sweet way to lazy load slices

zustand-namespaces

One store to rule them all. Namespaced Zustand stores

use-zustand

Another custom hook to use Zustand vanilla store

zustand-utils

Utilities for Zustand — a createContext replacement, a devtools wrapper, and a store-updater factory function

Computed & Derived State

Create computed and derived values from your Zustand state.

zustand-computed

A Zustand middleware to create computed states

zustand-computed-state

Simple middleware to add computed states

derive-zustand

A function to create a derived Zustand store from other Zustand stores

zustand-middleware-computed-state

A dead simple middleware for adding computed state to Zustand

@csark0812/zustand-getters

Make JavaScript object getters reactive in Zustand stores — define derived values with get propertyName() and they automatically trigger subscription updates when accessed

Advanced Patterns & Helpers

Libraries that provide advanced patterns and helper utilities.

@colorfy-software/zfy

Useful helpers for state management in React with Zustand

zustand-mutable

A sweet way to use immer-like mutable updates

zustand-valtio

A sweet combination of Zustand and Valtio

treeshakable

A wrapper for library creators to avoid redundant store creation

zustand-boilerplate

A tool that automatically generates getters, setters and more for your zustand store

zustand-ards

Simple opinionated utilities for example alternative selector formats and default shallow hooks

Specialized Middleware

Middleware for specific use cases and integrations.

zundo

Undo and redo middleware for Zustand, enabling time-travel in your apps

zustand-middleware-xstate

A middleware for putting XState state machines into a global Zustand store

zustand-xs

XState/store compabile middleware for Zustand

zustand-saga

A Zustand middleware for redux-saga (minus redux)

zustand-rx

A Zustand middleware enabling you to subscribe to a store as an RxJS Observable

zustand-querystring

A Zustand middleware that syncs the store with the querystring

zustand-hash-storage

Zustand middleware for saving state into URL hash, b64 encoded (can be configured) and debounce timer

geschichte

Zustand and Immer-based hook to manage query parameters

use-post-message-ts

Zustand middleware for sharing state between cross-origin iframes via postMessage browser method

Forms & Data Management

Libraries for managing forms and async data.

zustand-forms

Fast, type safe form states as Zustand stores

zustorm

A simple and powerful form library for Zustand

leo-query

A simple library to connect async queries to Zustand stores

leiten-zustand

Cleans your store from boilerplate for requests and data transformation

zustand-async-slice

Simple Zustand utility to create Async Slice. TypeScript Fully Supported

Optics & Lenses

Functional programming patterns for state manipulation.

@dhmk/zustand-lens

Lens support for Zustand

@prncss-xyz/zustand-optics

An adapter for optics-ts

Context & Dependency Injection

Manage store instances and dependencies.

zustand-context

Create a zustand store in React Context, containing an initial value, or use it in your components with isolated, mockable instances

zustand-constate

Context-based state management based on Zustand and taking ideas from Constate

zustand-di

Use react props to init zustand stores

zusteller

Your global state savior. “Just hooks” + Zustand

Type Safety & Developer Experience

Enhance TypeScript support and developer ergonomics.

zustand-create-setter-fn

A fully type safe utility for Zustand that allows you to easily update state using React style setState functions (framework agnostic, doesn’t require React)

zustand-store-addons

React state management addons for Zustand

Other Integrations

Miscellaneous libraries and integrations.

mobz

Zustand-style MobX API

zoov

State management solution based on Zustand with Module-like API

Contributing

If you’ve created a library that extends Zustand’s functionality, consider contributing to this list by opening a pull request on the Zustand GitHub repository.

Build docs developers (and LLMs) love