By toss
Design React abstractions and APIs with declarative principles, lifecycle safety, and type safety; review hooks for SSR compatibility, effect patterns, state design, TypeScript generics, and performance; write hooks following React philosophy for minimal dependencies and optimal cleanup.
npx claudepluginhub toss/react-simplikit --plugin react-design-philosophyDesign React APIs and abstractions in a React-like way. Covers declarative interfaces, lifecycle-safe abstractions, minimal surfaces, zero-dependency bias, type safety, and documentation.
Review React hooks against design philosophy. Checks return values, SSR safety, state design, effect usage, TypeScript patterns, and performance.
Write React hooks following design philosophy. Covers naming, return values, SSR safety, state design, effect patterns, TypeScript, and performance.


English | 한국어
A collection of lightweight, zero-dependency React utilities for building robust applications.
| Package | Description | Version |
|---|---|---|
| react-simplikit | Universal hooks - pure state/logic hooks (platform-independent) | |
| @react-simplikit/mobile | Mobile web utilities (viewport, keyboard, scroll) |
Note:
react-simplikitis now maintained as a Universal Hook Library providing only pure state/logic hooks that work across web and mobile (React Native). Browser/platform-dependent hooks are deprecated. See packages/core/README.md for details.
# Core utilities
npm install react-simplikit
# Mobile web utilities
npm install @react-simplikit/mobile
import { useState, useEffect } from 'react';
import { useDebounce } from 'react-simplikit';
function SearchInput() {
const [query, setQuery] = useState('');
const debouncedQuery = useDebounce(query, 300);
useEffect(() => {
if (debouncedQuery) {
searchAPI(debouncedQuery);
}
}, [debouncedQuery]);
return <input value={query} onChange={e => setQuery(e.target.value)} />;
}
import { useAvoidKeyboard, useBodyScrollLock } from '@react-simplikit/mobile';
function ChatInput() {
const { ref, style } = useAvoidKeyboard();
return (
<div ref={ref} style={style}>
<input type="text" placeholder="Type a message..." />
</div>
);
}
function Modal({ isOpen }) {
useBodyScrollLock(isOpen);
// ...
}
Visit react-simplikit.slash.page for full documentation.
packages/
├── core/ # react-simplikit (hooks, components, utils)
└── mobile/ # @react-simplikit/mobile (mobile web utilities)
We welcome contributions from everyone! Please check our contribution guide.
MIT © Viva Republica, Inc. See LICENSE for details.
React development standards and best practices for agent-driven code generation. Guides AI agents in writing performant, maintainable React code.
Share bugs, ideas, or general feedback.
React composition patterns from Vercel Engineering. Use when building scalable components, avoiding boolean prop proliferation, implementing compound components, or managing component state. Covers architecture, state management, and implementation patterns.
Advanced React skills for hooks, context, and performance optimization.
Modern React and UI development expertise. Master React 19, Next.js 15, component architecture, state management, performance optimization, and design systems.
React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.
Persistent memory system for Claude Code - seamlessly preserve context across sessions