zustand

Installation
SKILL.md

Zustand State Management

Overview

Zustand v5 is a lightweight global state manager for React built on useSyncExternalStore. Requires React 18+ (uses useSyncExternalStore internally). When using createWithEqualityFn, install use-sync-external-store as a peer dependency. It provides type-safe stores, atomic selectors for minimal re-renders, composable middleware (persist, devtools, immer, subscribeWithSelector), and a slices pattern for large applications. Use Zustand for client-only global state; use TanStack Query for server-fetched data.

When to use: Client-side global state, persistent user preferences, complex multi-domain stores, cross-component state sharing, vanilla (non-React) state management.

When NOT to use: Server state with caching needs (use TanStack Query), single-component state (use useState), simple prop drilling scenarios.

Quick Reference

Pattern API Key Points
Basic store create<T>()((set) => ({...})) Double parentheses required for TS
Atomic selector useStore(state => state.bears) Only re-renders when selected value changes
Multiple values useShallow(state => ({a, b})) Import from zustand/react/shallow
Persist persist(fn, { name }) localStorage with SSR hydration handling
Devtools devtools(fn, { name }) Redux DevTools integration
Related skills
Installs
49
GitHub Stars
11
First Seen
Feb 22, 2026