// store.tsimport { create } from 'zustic';type CounterStore = {count: number;inc: () => void;dec: () => void;reset: () => void;};export const useCounter = create<CounterStore>((set) => ({count: 0,inc: () => set((state) => ({ count: state.count + 1 })),dec: () => set((state) => ({ count: state.count - 1 })),reset: () => set({ count: 0 }),}));
Current Count
Why Zustic is Simple
One Function
Just use create() - that's all you need to start managing state
Minimal API
set() to update, get() to read - no complex patterns
Tiny Bundle
Only ~500B (gzipped) - lighter than Redux, Zustand, and MobX combined
Production Ready
Used in real applications - fully tested and optimized for performance
Middleware Support
Extend with logging, persistence, validation without changing store code
TypeScript First
Full type safety with automatic inference - no extra configuration needed
How Zustic Compares
What zustic provide
Lightning Fast
Only ~500B gzipped with zero dependencies. Smaller than any other state management library. Perfect for performance-critical applications.
Simple to Learn
Master the entire API in minutes. Just create(), set(), and get(). No complex patterns, no boilerplate required.
Type Safe
First-class TypeScript support with automatic type inference. Write type-safe code with full IDE autocomplete and zero configuration.
Multi-Platform
Works seamlessly across React, React Native, Next.js, and more. One API for all your state management needs across platforms.
Extensible
Built-in middleware system for logging, persistence, validation, and custom logic. Extend without modifying your store code.
Production Ready
Optimized for performance with useSyncExternalStore. Used in real applications - fully tested and battle-hardened.