
Zustand Store Ts
- 11 installs
- 30.1k repo stars
- Updated August 4, 2026
- davila7/claude-code-templates
Create Zustand stores following established patterns with proper TypeScript types, separated state and actions, and middleware.
About
Scaffolds Zustand stores from a template with typed state, separated actions, and subscribeWithSelector middleware. A developer uses it when adding a Zustand store to a TypeScript React app.
- Template with subscribeWithSelector middleware
- Separates typed State and Actions interfaces
Zustand Store Ts by the numbers
- 11 all-time installs (skills.sh)
- Ranked #1,657 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davila7/claude-code-templates --skill zustand-store-tsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 11 |
|---|---|
| repo stars | ★ 30.1k |
| Last updated | August 4, 2026 |
| Repository | davila7/claude-code-templates ↗ |
What it does
Create Zustand stores following established patterns with proper TypeScript types, separated state and actions, and middleware.
Files
Zustand Store
Create Zustand stores following established patterns with proper TypeScript types and middleware.
Quick Start
Copy the template from assets/template.ts and replace placeholders:
{{StoreName}}→ PascalCase store name (e.g.,Project){{description}}→ Brief description for JSDoc
Always Use subscribeWithSelector
import { create } from 'zustand';
import { subscribeWithSelector } from 'zustand/middleware';
export const useMyStore = create<MyStore>()(
subscribeWithSelector((set, get) => ({
// state and actions
}))
);Separate State and Actions
export interface MyState {
items: Item[];
isLoading: boolean;
}
export interface MyActions {
addItem: (item: Item) => void;
loadItems: () => Promise<void>;
}
export type MyStore = MyState & MyActions;Use Individual Selectors
// Good - only re-renders when `items` changes
const items = useMyStore((state) => state.items);
// Avoid - re-renders on any state change
const { items, isLoading } = useMyStore();Subscribe Outside React
useMyStore.subscribe(
(state) => state.selectedId,
(selectedId) => console.log('Selected:', selectedId)
);Integration Steps
1. Create store in src/frontend/src/store/ 2. Export from src/frontend/src/store/index.ts 3. Add tests in src/frontend/src/store/*.test.ts
When to Use
This skill is applicable to execute the workflow or actions described in the overview.