react-expert
jeffallan/claude-skills
Senior React specialist for building React 18+ components, hooks, and production applications with TypeScript.
What is react-expert?
Expert guidance for React 18+ development including Server Components, React 19 features, state management, and performance optimization. Use when building new components, implementing hooks, setting up project architecture, or working with Next.js App Router.
- Creates and optimizes React components with TypeScript strict mode
- Implements custom hooks, state management (Context, Zustand, Redux), and data fetching patterns
- Debugs rendering issues, performance problems, and type errors
- Migrates class components to functional components and modern patterns
- Handles React 19 features including Server Components, useActionState forms, and use() hook
- Sets up error boundaries, Suspense boundaries, and accessibility patterns
How to install react-expert
npx skills add https://github.com/jeffallan/claude-skills --skill react-expertHow to use react-expert
- 1.Invoke the skill when working on React components or features
- 2.Describe your component requirements, state needs, and data flow
- 3.The skill will analyze requirements and choose appropriate patterns
- 4.Implement the provided TypeScript components and validate with tsc --noEmit
- 5.Apply performance optimizations and accessibility improvements
- 6.Write tests using React Testing Library before submitting
Use cases
- Building new React components or features in .jsx/.tsx files
- Implementing state management solutions for complex applications
- Optimizing React performance with memoization and code-splitting
- Setting up Next.js App Router projects with Server Components
- Creating React 19 forms with useActionState and server actions
- Frontend developers building React applications
- Full-stack developers working on React features
- Teams adopting React 19 or Server Components
- Developers optimizing React performance
- Engineers migrating from class to functional components
react-expert FAQ
Use Server Components (no 'use client') for data fetching, database access, and sensitive operations in Next.js App Router. Use Client Components ('use client') for interactivity, hooks, and browser APIs.
Use useActionState hook with async server actions for form submission. This provides built-in pending state, error handling, and progressive enhancement without manual fetch calls.
Use React Context for simple app-wide state, Zustand for lightweight client state, TanStack Query for server state/caching, and Redux Toolkit for complex enterprise applications.
Use React.memo for expensive components, useCallback for callbacks passed to memoized children, lazy loading for code-splitting, and Suspense boundaries for async operations.
Return a cleanup function from useEffect that removes event listeners, cancels requests, or clears timers. This prevents memory leaks and stale closures.
Full instructions (SKILL.md)
Source of truth, from jeffallan/claude-skills.
name: react-expert description: Use when building React 18+ applications in .jsx or .tsx files, Next.js App Router projects, or create-react-app setups. Creates components, implements custom hooks, debugs rendering issues, migrates class components to functional, and implements state management. Invoke for Server Components, Suspense boundaries, useActionState forms, performance optimization, or React 19 features. license: MIT metadata: author: https://github.com/Jeffallan version: "1.1.0" domain: frontend triggers: React, JSX, hooks, useState, useEffect, useContext, Server Components, React 19, Suspense, TanStack Query, Redux, Zustand, component, frontend role: specialist scope: implementation output-format: code related-skills: fullstack-guardian, playwright-expert, test-master
React Expert
Senior React specialist with deep expertise in React 19, Server Components, and production-grade application architecture.
When to Use This Skill
- Building new React components or features
- Implementing state management (local, Context, Redux, Zustand)
- Optimizing React performance
- Setting up React project architecture
- Working with React 19 Server Components
- Implementing forms with React 19 actions
- Data fetching patterns with TanStack Query or
use()
Core Workflow
- Analyze requirements - Identify component hierarchy, state needs, data flow
- Choose patterns - Select appropriate state management, data fetching approach
- Implement - Write TypeScript components with proper types
- Validate - Run
tsc --noEmit; if it fails, review reported errors, fix all type issues, and re-run until clean before proceeding - Optimize - Apply memoization where needed, ensure accessibility; if new type errors are introduced, return to step 4
- Test - Write tests with React Testing Library; if any assertions fail, debug and fix before submitting
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Server Components | references/server-components.md | RSC patterns, Next.js App Router |
| React 19 | references/react-19-features.md | use() hook, useActionState, forms |
| State Management | references/state-management.md | Context, Zustand, Redux, TanStack |
| Hooks | references/hooks-patterns.md | Custom hooks, useEffect, useCallback |
| Performance | references/performance.md | memo, lazy, virtualization |
| Testing | references/testing-react.md | Testing Library, mocking |
| Class Migration | references/migration-class-to-modern.md | Converting class components to hooks/RSC |
Key Patterns
Server Component (Next.js App Router)
// app/users/page.tsx — Server Component, no "use client"
import { db } from '@/lib/db';
interface User {
id: string;
name: string;
}
export default async function UsersPage() {
const users: User[] = await db.user.findMany();
return (
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
React 19 Form with useActionState
'use client';
import { useActionState } from 'react';
async function submitForm(_prev: string, formData: FormData): Promise<string> {
const name = formData.get('name') as string;
// perform server action or fetch
return `Hello, ${name}!`;
}
export function GreetForm() {
const [message, action, isPending] = useActionState(submitForm, '');
return (
<form action={action}>
<input name="name" required />
<button type="submit" disabled={isPending}>
{isPending ? 'Submitting…' : 'Submit'}
</button>
{message && <p>{message}</p>}
</form>
);
}
Custom Hook with Cleanup
import { useState, useEffect } from 'react';
function useWindowWidth(): number {
const [width, setWidth] = useState(() => window.innerWidth);
useEffect(() => {
const handler = () => setWidth(window.innerWidth);
window.addEventListener('resize', handler);
return () => window.removeEventListener('resize', handler); // cleanup
}, []);
return width;
}
Constraints
MUST DO
- Use TypeScript with strict mode
- Implement error boundaries for graceful failures
- Use
keyprops correctly (stable, unique identifiers) - Clean up effects (return cleanup function)
- Use semantic HTML and ARIA for accessibility
- Memoize when passing callbacks/objects to memoized children
- Use Suspense boundaries for async operations
MUST NOT DO
- Mutate state directly
- Use array index as key for dynamic lists
- Create functions inside JSX (causes re-renders)
- Forget useEffect cleanup (memory leaks)
- Ignore React strict mode warnings
- Skip error boundaries in production
Output Templates
When implementing React features, provide:
- Component file with TypeScript types
- Test file if non-trivial logic
- Brief explanation of key decisions
Knowledge Reference
React 19, Server Components, use() hook, Suspense, TypeScript, TanStack Query, Zustand, Redux Toolkit, React Router, React Testing Library, Vitest/Jest, Next.js App Router, accessibility (WCAG)
Related skills
More from jeffallan/claude-skills and the wider catalog.

react-native-expert
Builds production React Native and Expo apps with optimized navigation, native modules, and cross-platform performance.

rust-engineer
Senior Rust engineer for memory-safe, high-performance code with ownership, async, and trait design.

salesforce-developer
Write and debug Apex, Lightning Web Components, and SOQL queries on Salesforce with governor limit awareness and best practices.

secure-code-guardian
Implement authentication, authorization, input validation, and OWASP Top 10 defenses with secure code patterns.

security-reviewer
Identify vulnerabilities, generate severity-rated audit reports, and provide remediation guidance.

shopify-expert
Build and debug Shopify themes, apps, and headless storefronts with Liquid, GraphQL, and Shopify CLI.