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.
Design 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.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
es-toolkit best practices: function recommendation, lodash migration, and compat guidance
Frontend development best practices: code quality principles (readability, predictability, cohesion, coupling) and accessibility guidelines by Toss
npx claudepluginhub toss/react-simplikit --plugin react-design-philosophyReact 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.
React and JavaScript patterns for state management, performance, hooks, component design, avoiding unnecessary useEffects, and preferring ES2025/ES2026 APIs
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.
Documentation and guidance for ahooks, a React Hooks library
Expert React 19 with hooks, TanStack Router, Zustand, React Hook Form, Testing Library, shadcn/ui, and SOLID principles