zustand
SKILL.md
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
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Store Architecture | CRITICAL | store- |
| 2 | Selector Optimization | CRITICAL | select- |
| 3 | Re-render Prevention | HIGH | render- |
| 4 | State Updates | MEDIUM-HIGH | update- |
| 5 | Middleware Configuration | MEDIUM | mw- |
| 6 | SSR and Hydration | MEDIUM | ssr- |
| 7 | TypeScript Patterns | LOW-MEDIUM | ts- |
| 8 | Advanced Patterns | LOW | adv- |
Quick Reference
1. Store Architecture (CRITICAL)
store-multiple-stores- Use multiple small stores instead of one monolithic storestore-separate-actions- Separate actions from state in dedicated namespacestore-event-naming- Name actions as events not settersstore-colocate-logic- Colocate actions with the state they modifystore-avoid-derived-state- Derive computed values instead of storing themstore-domain-boundaries- Organize stores by feature domain
2. Selector Optimization (CRITICAL)
select-always-use- Always use selectors never subscribe to entire storeselect-atomic-picks- Use atomic selectors for single valuesselect-stable-returns- Ensure selectors return stable referencesselect-custom-hooks- Export custom hooks not raw storeselect-auto-generate- Use auto-generated selectors for large storesselect-memoize-computed- Memoize expensive computed selectorsselect-avoid-inline- Define selectors outside components
3. Re-render Prevention (HIGH)
render-use-shallow- Use useShallow for multi-property selectionsrender-equality-fn- Provide custom equality functions when neededrender-memo-children- Memo children affected by parent store updatesrender-subscribe-external- Use subscribe for non-React consumersrender-avoid-object-returns- Avoid returning new objects from selectorsrender-split-components- Split components to minimize subscription scope
4. State Updates (MEDIUM-HIGH)
update-functional-set- Use functional form when updating based on previous stateupdate-immutable- Never mutate state directlyupdate-shallow-merge- Understand set() shallow merge behaviorupdate-async-actions- Handle async actions with loading and error statesupdate-batch-updates- Batch related updates in single set call
5. Middleware Configuration (MEDIUM)
mw-devtools-actions- Name actions for DevTools debuggingmw-persist-partialize- Use partialize for selective persistencemw-persist-migration- Version and migrate persisted statemw-immer-nested- Use immer for deeply nested state updatesmw-combine-order- Apply middlewares in correct ordermw-slice-middleware- Apply middleware at combined store level
6. SSR and Hydration (MEDIUM)
ssr-skip-hydration- Use skipHydration in SSR contextsssr-manual-rehydrate- Manually rehydrate on client mountssr-hydration-hook- Use custom hook to prevent hydration mismatchssr-check-window- Guard browser APIs with typeof window check
7. TypeScript Patterns (LOW-MEDIUM)
ts-state-creator- Use StateCreator for slice typingts-middleware-inference- Preserve type inference with middlewarets-separate-types- Separate state and actions interfacests-generic-selectors- Type selectors for reusabilityts-bound-store- Type combined stores correctly
8. Advanced Patterns (LOW)
adv-context-stores- Combine Zustand with React Context for dependency injectionadv-transient-updates- Use subscribe for transient updatesadv-computed-getters- Implement computed state with gettersadv-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
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |
Weekly Installs
84
Repository
pproenca/dot-skillsGitHub Stars
71
First Seen
Jan 29, 2026
Security Audits
Installed on
opencode74
codex72
gemini-cli71
github-copilot68
cursor66
claude-code64