Zustand is a small, fast, scalable state-management solution for React, built around hooks. It lets you create a store hook and bind components to selected state so components re-render on state changes, without needing context providers or much boilerplate. It also provides utilities for non-reactive access and subscriptions for reacting to state updates outside components.
Project status
- Zustand (pmndrs/zustand) appears actively maintained, with recent
v5.xupdate activity in 2025-07 through 2026-05, and the upstream last push on 2026-06-03 (after the latest shownv5.0.14). - The apparent updates cadence is roughly every 4 to 8 weeks during mid to late 2025 (with a larger gap around Aug to Nov), then faster again in early to mid 2026 (Feb to May includes multiple updates:
v5.0.11throughv5.0.14).
AI summary generated
Recent updates
v5.0.14
v5.0.14 primarily addresses a TypeScript typing issue in the devtools middleware, improving type inference for the Devtools initializer. In addition, this release includes various internal and documentation updates plus CI and dependency maintenance changes.
v5.0.13
v5.0.13 focuses on improving the devtools middleware, specifically how it extracts the caller name from error stacks. It also includes repository-wide dependency and tooling updates plus additional test coverage for devtools stack parsing.
v5.0.12
v5.0.12 release notes document two targeted bug fixes: a persist middleware rehydration callback change and a devtools Redux config type extension fix. However, the provided diff for this release is dominated by documentation site restructuring (new /learn and /reference paths, renames, and README link updates) plus CI workflow action version pinning. No runtime/API changes are visible in the provided diff snippets, but there are significant undocumented documentation and tooling changes.
Securityv5.0.11
v5.0.11 focuses on middleware improvements: better TypeScript typing for devtools and immer, plus a persist fix to avoid relying on a global localStorage. The code diff also includes various tooling and dependency bumps (build, eslint, React/Vitest tooling) that are not mentioned in the release notes.
v5.0.10
v5.0.10 includes a fix to the zustand `persist` middleware aimed at preventing a race condition when multiple `rehydrate()` calls run concurrently. The code change introduces a hydration versioning mechanism so that stale, in-flight hydration work does not overwrite newer hydration results.
v5.0.9
v5.0.9 primarily introduces an experimental SSR-safe middleware exported as `unstable_ssrSafe`, intended for Next.js usage. The code also updates documentation, examples, tests, and CI configuration, but the only runtime library source change is the new middleware export and implementation.
Featuresv5.0.8
v5.0.8 includes a bug fix for `shallow` equality when comparing `Map` entries involving `undefined`, and a change to the `persist` middleware to return the storage result/promise from `setState`. The code diff also shows several TypeScript API type adjustments in `persist.ts` and `createJSONStorage`, which are not described in the release notes.
Featuresv5.0.7
v5.0.7 is a small patch release focused on a React hook optimization. The only runtime-code change shown is in the React integration, where the snapshot selector functions passed to React's useSyncExternalStore are now memoized with useCallback.
v5.0.6
v5.0.6 includes a middleware export refactor and a devtools behavior tweak related to how action types are derived. The diff also shows a variety of non-runtime updates, including documentation and test adjustments, plus development dependency bumps.
v5.0.5
Release v5.0.5 is presented as a set of small improvements, including a shallow-compare update, addition of a devtools cleanup method, a refactor in createJSONStorage, and better devtools action type inference. The provided code diff snippet mostly shows repository tooling, workflows, and documentation changes rather than the Zustand runtime source for those specific PRs.
Features