
The State Library You'll Actually Love
Stop fighting with state. Start building features.
LLM-first TypeScript state management with intuitive getter/setter patterns,
universal server-client API, and a powerful plugin ecosystem.
import { useStorken } from './store'
export default function Counter() {
// Full API: [value, set, reset, loading]
const [count, setCount, reset, loading] =
useStorken('counter', 0)
return (
<div className="counter-container">
<span>Counter Value:</span>
<h2 className="counter-value">
{loading ? '⚡' : count}
</h2>
<div className="button-group">
<button
onClick={() => setCount(prev => prev - 1)}
disabled={loading}
>-</button>
<button
onClick={() => setCount(prev => prev + 1)}
disabled={loading}
className="primary"
>+</button>
<button onClick={reset}>
↻
</button>
</div>
</div>
)
}
Everything you need
Built for modern React development
Storken combines the best of modern React patterns with AI-friendly design principles
- React 18 Ready
Built with useSyncExternalStore for optimal performance and concurrent features support.
- Full TypeScript
Complete type safety and IntelliSense support with zero runtime overhead.
- LLM-Native
Predictable patterns perfect for AI-assisted development and code generation.
- Universal API
Same code works in Server Components, Client Components, and API Routes.
- Getter/Setter Patterns
Async data fetching with built-in loading states and side effect management.
- Plugin System
Extend functionality with minimal overhead and custom behaviors.
- Tiny Bundle
Only 5KB minified + gzipped with zero dependencies.
- Zero Dependencies
Pure React implementation with tree-shakeable exports.
Get Started in Seconds
Install Storken and build production-ready React apps with type-safe state management
Install Storken
npm
npm install storken
bun
bun add storken
Create Your Store
import { create } from 'storken';
export const [useStorken] = create({
initialValues: {
counter: 0,
user: null
}
});
Use in Your Components
import { useStorken } from './store';
function Counter() {
const [count, setCount] = useStorken('counter', 0);
return (
<button onClick={() => setCount(count + 1)}>
Count: {count}
</button>
);
}
Ready to build?
Join thousands of developers using Storken for their React applications