Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pproenca avatar

Zustand

  • 337 installs
  • 191 repo stars
  • Updated July 24, 2026
  • pproenca/dot-skills

zustand is a developer skill that assists with Zustand state-management tasks for developers who need to implement and refactor React client state stores.

About

zustand is a development skill focused on assisting Zustand-related tasks in React applications. zustand is intended to help developers implement or refactor client state stores, connect selectors to components, and reason about state updates during UI development. zustand is typically used while building features that require shared client state across multiple components, such as filters, carts, editors, or dashboard settings. Developers reach for zustand when they want a lightweight store pattern and need help generating store structure, actions, and usage examples that match their existing codebase conventions and TypeScript types.

  • zustand

Zustand by the numbers

  • 337 all-time installs (skills.sh)
  • +14 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #1,237 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pproenca/dot-skills --skill zustand

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs337
repo stars191
Last updatedJuly 24, 2026
Repositorypproenca/dot-skills

How do I structure a Zustand store?

Use zustand for development tasks

Who is it for?

zustand is best for developers working in React codebases who use Zustand and need help shaping stores, actions, and component wiring.

Skip if: zustand is not for developers who are not using Zustand or who need server-side state management instead of client stores.

When should I use this skill?

Invoke when a developer mentions Zustand, store slices, selectors, or refactoring React client state to Zustand.

What you get

Updated Zustand store definitions, selectors/actions guidance, and integration snippets for React components.

  • state store changes

Files

SKILL.mdMarkdownGitHub ↗

Community Zustand Best Practices

Comprehensive performance and architecture guide for Zustand state management in React applications. Contains 43 rules across 8 categories, prioritized by impact from critical (store architecture, selector optimization) to incremental (advanced patterns).

When to Apply

Reference these guidelines when:

  • Creating new Zustand stores
  • Optimizing re-render performance with selectors
  • Implementing persistence or middleware
  • Integrating Zustand with SSR/Next.js
  • Reviewing code for state management patterns

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Store ArchitectureCRITICALstore-
2Selector OptimizationCRITICALselect-
3Re-render PreventionHIGHrender-
4State UpdatesMEDIUM-HIGHupdate-
5Middleware ConfigurationMEDIUMmw-
6SSR and HydrationMEDIUMssr-
7TypeScript PatternsLOW-MEDIUMts-
8Advanced PatternsLOWadv-

Quick Reference

1. Store Architecture (CRITICAL)

  • `store-multiple-stores` - Use multiple small stores instead of one monolithic store
  • `store-separate-actions` - Separate actions from state in dedicated namespace
  • `store-event-naming` - Name actions as events not setters
  • `store-colocate-logic` - Colocate actions with the state they modify
  • `store-avoid-derived-state` - Derive computed values instead of storing them
  • `store-domain-boundaries` - Organize stores by feature domain

2. Selector Optimization (CRITICAL)

  • `select-always-use` - Always use selectors never subscribe to entire store
  • `select-atomic-picks` - Use atomic selectors for single values
  • `select-stable-returns` - Ensure selectors return stable references
  • `select-custom-hooks` - Export custom hooks not raw store
  • `select-auto-generate` - Use auto-generated selectors for large stores
  • `select-memoize-computed` - Memoize expensive computed selectors
  • `select-avoid-inline` - Define selectors outside components

3. Re-render Prevention (HIGH)

  • `render-use-shallow` - Use useShallow for multi-property selections
  • `render-equality-fn` - Provide custom equality functions when needed
  • `render-memo-children` - Memo children affected by parent store updates
  • `render-subscribe-external` - Use subscribe for non-React consumers
  • `render-avoid-object-returns` - Avoid returning new objects from selectors
  • `render-split-components` - Split components to minimize subscription scope

4. State Updates (MEDIUM-HIGH)

  • `update-functional-set` - Use functional form when updating based on previous state
  • `update-immutable` - Never mutate state directly
  • `update-shallow-merge` - Understand set() shallow merge behavior
  • `update-async-actions` - Handle async actions with loading and error states
  • `update-batch-updates` - Batch related updates in single set call

5. Middleware Configuration (MEDIUM)

  • `mw-devtools-actions` - Name actions for DevTools debugging
  • `mw-persist-partialize` - Use partialize for selective persistence
  • `mw-persist-migration` - Version and migrate persisted state
  • `mw-immer-nested` - Use immer for deeply nested state updates
  • `mw-combine-order` - Apply middlewares in correct order
  • `mw-slice-middleware` - Apply middleware at combined store level

6. SSR and Hydration (MEDIUM)

  • `ssr-skip-hydration` - Use skipHydration in SSR contexts
  • `ssr-manual-rehydrate` - Manually rehydrate on client mount
  • `ssr-hydration-hook` - Use custom hook to prevent hydration mismatch
  • `ssr-check-window` - Guard browser APIs with typeof window check

7. TypeScript Patterns (LOW-MEDIUM)

  • `ts-state-creator` - Use StateCreator for slice typing
  • `ts-middleware-inference` - Preserve type inference with middleware
  • `ts-separate-types` - Separate state and actions interfaces
  • `ts-generic-selectors` - Type selectors for reusability
  • `ts-bound-store` - Type combined stores correctly

8. Advanced Patterns (LOW)

  • `adv-context-stores` - Combine Zustand with React Context for dependency injection
  • `adv-transient-updates` - Use subscribe for transient updates
  • `adv-computed-getters` - Implement computed state with getters
  • `adv-third-party-integration` - Integrate with React Query and SWR

How to Use

Read individual reference files for detailed explanations and code examples:

  • Section definitions - Category structure and impact levels
  • Rule template - Template for adding new rules

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information

Related skills

How it compares

Pick a Zustand-focused helper when your codebase already uses Zustand; pick framework-agnostic state guidance when you are still choosing a state library.

FAQ

What problems does zustand help with?

zustand helps with implementing and refactoring Zustand-based state management in React applications. zustand is useful when developers need a consistent store structure, typed actions/selectors, and guidance for wiring store hooks into components without creating unnecessary re-

Is zustand focused on frontend or backend work?

zustand is focused on frontend work because Zustand is typically used for client-side React state. zustand is most relevant during UI implementation when developers need shared state across components such as filters, forms, or application settings.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.