zustand-patterns

yonatangross/orchestkit · updated Apr 8, 2026

$npx skills add https://github.com/yonatangross/orchestkit --skill zustand-patterns
0 commentsdiscussion
summary

Modern state management with Zustand 5.x - lightweight, TypeScript-first, no boilerplate.

skill.md

Zustand Patterns

Modern state management with Zustand 5.x - lightweight, TypeScript-first, no boilerplate.

Overview

  • Global state without Redux complexity
  • Shared state across components without prop drilling
  • Persisted state with localStorage/sessionStorage
  • Computed/derived state with selectors
  • State that needs middleware (logging, devtools, persistence)

Core Patterns

Covers basic stores, slices, Immer, persist, selectors, async actions, and devtools.

Load Read("${CLAUDE_SKILL_DIR}/references/core-patterns.md") for full code examples of all 7 core patterns.

Quick Reference

// ✅ Create typed store with double-call pattern
const useStore = create<State>()((set, get) => ({ ... }));

// ✅ Use selectors for all state access
const count = useStore((s) => s.count);

// ✅ Use useShallow for multiple values (Zustand 5.x)
const { a, b } = useStore(useShallow((s) => ({ a: s.a, b: s.b })));

// ✅ Middleware order: immer → subscribeWithSelector → devtools → persist
create(persist(devtools(immer((set) => ({ ... })))))

// ❌ Never destructure entire store
const store = useStore(); // Re-renders on ANY change

// ❌ Never store server state (use TanStack Query instead)
const useStore = create((set) => ({ users: [], fetchUsers: async () => ... }));

Key Decisions

Decision Option A Option B Recommendation
State structure Single store Multiple stores Slices in single store - easier cross-slice access
Nested updates Spread operator Immer middleware Immer for deeply nested state (3+ levels)
Persistence Manual localStorage persist middleware persist middleware with partialize
Multiple values Multiple selectors useShallow useShallow for 2-5 related values
Server state Zustand TanStack Query TanStack Query - Zustand for client-only state
DevTools Always on Conditional Conditional - enabled: process.env.NODE_ENV === 'development'

Anti-Patterns & Integration

Forbidden patterns (store destructuring, derived state, server state, direct mutation) and React Query integration guidance.

Load Read("${CLAUDE_SKILL_DIR}/references/anti-patterns-and-integration.md") for anti-pattern examples and TanStack Query separation patterns.

Related Skills

  • tanstack-query-advanced - Server state management (use with Zustand for client state)
  • form-state-patterns - Form state (React Hook Form vs Zustand for forms)
  • react-server-components-framework - RSC hydration considerations with Zustand

Capability Details

store-creation

Keywords: zustand, create, store, typescript, state Solves: Setting up type-safe Zustand stores with proper TypeScript inference

slices-pattern

Keywords: slices, modular, split, combine, StateCreator Solves: Organizing large stores into maintainable, domain-specific slices

middleware-stack

Keywords: immer, persist, devtools, middleware, compose Solves: Combining middleware in correct order for immutability, persistence, and debugging

selector-optimization

Keywords: selector, useShallow, re-render, performance, memoization Solves: Preventing unnecessary re-renders with proper selector patterns

persistence-migration

Keywords: persist, localStorage, sessionStorage, migrate, version Solves: Persisting state with schema migrations between versions

References

Load on demand with Read("${CLAUDE_SKILL_DIR}/references/<file>"):

File Content
core-patterns.md Basic store, slices, Immer, persist, selectors, async, devtools
anti-patterns-and-integration.md Forbidden patterns and React Query integration
middleware-composition.md Combining multiple middleware in correct order

Other resources:

  • Load: Read("${CLAUDE_SKILL_DIR}/scripts/store-template.ts") - Production-ready store template
  • Load: Read("${CLAUDE_SKILL_DIR}/checklists/zustand-checklist.md") - Implementation checklist

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.654 reviews
  • Shikha Mishra· Dec 28, 2024

    We added zustand-patterns from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Harper Sanchez· Dec 12, 2024

    Solid pick for teams standardizing on skills: zustand-patterns is focused, and the summary matches what you get after install.

  • Hassan Choi· Dec 12, 2024

    We added zustand-patterns from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Kwame Zhang· Dec 8, 2024

    zustand-patterns has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Ganesh Mohane· Dec 4, 2024

    Registry listing for zustand-patterns matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Min Menon· Dec 4, 2024

    Registry listing for zustand-patterns matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Min Mehta· Nov 27, 2024

    zustand-patterns reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Yash Thakker· Nov 19, 2024

    zustand-patterns fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Aisha Khanna· Nov 3, 2024

    zustand-patterns is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Alexander Nasser· Nov 3, 2024

    zustand-patterns fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

showing 1-10 of 54

1 / 6