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

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-ts

Add your badge

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

Listed on Skillselion
Installs11
repo stars30.1k
Last updatedAugust 4, 2026
Repositorydavila7/claude-code-templates

What it does

Create Zustand stores following established patterns with proper TypeScript types, separated state and actions, and middleware.

Files

SKILL.mdMarkdownGitHub ↗

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.

Related skills

This week in AI coding

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

unsubscribe anytime.