home / skills / mintuz / claude-plugins / react
npx playbooks add skill mintuz/claude-plugins --skill reactReview the files below or copy the command above to add this skill to your agents.
---
name: react
description: WHEN building React components/pages/apps; enforces scalable architecture, state management, API layer, performance patterns.
---
# React Best Practices
Production-grade React development with feature-based architecture, type-safe state management, and performance optimization.
## Core Principles
1. **Easy to get started with** - Clear patterns that new team members can follow
2. **Simple to understand and maintain** - Readable code with obvious intent
3. **Clean boundaries** - Clear separation between features and layers
4. **Early issue detection** - Catch problems at build time, not runtime
5. **Consistency** - Same patterns throughout the codebase
## Quick Reference
| Topic | Guide |
| ------------------------------------ | ------------------------------------------------------------- |
| Directory layout and feature modules | [project-structure.md](./references/project-structure.md) |
| Component design patterns | [component-patterns.md](./references/component-patterns.md) |
| Compound components (Card pattern) | [compound-components.md](./references/compound-components.md) |
| State categories and solutions | [state-management.md](./references/state-management.md) |
| API client and request structure | [api-layer.md](./references/api-layer.md) |
| Code splitting and optimization | [performance.md](./references/performance.md) |
| useEffect guidance and alternatives | [useeffect.md](./references/useeffect.md) |
| Testing pyramid and strategy | [testing-strategy.md](./references/testing-strategy.md) |
| Project tooling standards | [project-standards.md](./references/project-standards.md) |
## When to Use Each Guide
### Project Structure
Use [project-structure.md](./references/project-structure.md) when you need:
- Directory organization (app, features, components)
- Feature module structure
- Import architecture (unidirectional flow)
- ESLint boundary enforcement
- File naming conventions
### Component Patterns
Use [component-patterns.md](./references/component-patterns.md) when you need:
- Colocation principles
- Composition over props patterns
- Wrapping third-party components
- Avoiding nested render functions
### Compound Components
Use [compound-components.md](./references/compound-components.md) when you need:
- Multi-part components (Card, Accordion, etc.)
- Flexible composition patterns
- Semantic component structure
### State Management
Use [state-management.md](./references/state-management.md) when you need:
- State category decisions (component, application, server cache)
- useState vs useReducer guidance
- Server cache with React Query
- State placement guidelines
### API Layer
Use [api-layer.md](./references/api-layer.md) when you need:
- API client configuration
- Request structure (schema, fetcher, hook)
- Error handling (interceptors, boundaries)
- Security patterns (auth, sanitization, authorization)
### Performance
Use [performance.md](./references/performance.md) when you need:
- Code splitting strategies
- State optimization
- Children optimization patterns
- Styling performance
- Image optimization
### useEffect
Use [useeffect.md](./references/useeffect.md) when you need:
- When NOT to use useEffect (most cases)
- When useEffect IS appropriate (external systems)
- Dependency array rules
- Alternatives to useEffect
### Testing Strategy
Use [testing-strategy.md](./references/testing-strategy.md) when you need:
- Testing pyramid (prioritize integration over unit)
- What to test at each level (unit, integration, E2E)
- Testing Library principles (query by accessible names)
### Project Standards
Use [project-standards.md](./references/project-standards.md) when you need:
- Required tooling (ESLint, Prettier, TypeScript, Husky)
- Pre-commit hook configuration
## Quick Reference: Decision Trees
### Where should this component live?
```
Is it used by multiple features?
├── Yes → src/components/
└── No → Is it specific to one feature?
├── Yes → src/features/[feature]/components/
└── No → Colocate with the component that uses it
```
### What state solution should I use?
```
Is this data from an API?
├── Yes → React Query / SWR
└── No → Is it form data?
├── Yes → React Hook Form
└── No → Is it URL state (filters, pagination)?
├── Yes → React Router
└── No → Is it needed globally?
├── Yes → Zustand / Jotai / Context
└── No → useState / useReducer
```
### Should I create a new feature folder?
```
Does this functionality have:
- Its own routes/pages?
- Its own API endpoints?
- Components not shared elsewhere?
├── Yes to 2+ → Create feature folder
└── Otherwise → Add to existing feature or shared
```
### Do I need useEffect?
```
Why does this code need to run?
"Because the component was displayed"
├── Is it synchronizing with an external system?
│ ├── Yes → useEffect is appropriate
│ └── No → Probably don't need useEffect
│
"Because the user did something"
└── Put it in the event handler, not useEffect
"Because I need to compute a value"
└── Calculate during render (or useMemo if expensive)
See useeffect.md for detailed guidance.
```