react-expert · jeffallan — React 19 and Next.js skill for Claude Code
A skill for React 18+, Next.js App Router, and create-react-app work. It writes components and hooks, debugs rendering, and migrates class components to functions.
npx skills add Jeffallan/claude-skills --skill react-expert -a claude-codeWhat react-expert does
react-expert gives the agent specialist knowledge on React 19, Server Components, and production app architecture. It triggers in .jsx and .tsx files, Next.js App Router projects, and create-react-app setups.
The skill ships references for Server Components, React 19, state management, hooks, performance, testing, and class migration. The agent loads the relevant file by context: references/server-components.md for RSC patterns, references/state-management.md for Context, Zustand, Redux, and TanStack.
The workflow runs tsc --noEmit after implementation and loops until type errors are gone. Tests use React Testing Library. Constraints cover strict-mode TypeScript, error boundaries, stable key props, effect cleanup, semantic HTML and ARIA. Related skills: fullstack-guardian, playwright-expert, test-master.
What it helps with
- generate typed components and custom hooks
- set up React 19 forms with useActionState
- migrate class components to hooks
- fix re-renders with memo and lazy
- write React Testing Library tests
Example prompts for the agent
- Create a users list as a Server Component for Next.js App Router
- Rewrite this form with useActionState from React 19
- Run tsc --noEmit and fix every type error before showing the result
How to install react-expert
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a claude-code2Manually: put the files in place
~/.claude/skills/react-expert/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/react-expert/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a codex2Manually: put the files in place
.agents/skills/react-expert/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a cursor2Manually: put the files in place
.cursor/skills/react-expert/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills react-expert2Manually: put the files in place
.github/skills/react-expert/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/react-expertManually: put the files in place
.devin/skills/react-expert/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Other versions of react-expert
Similar
Questions about react-expert
How do I install react-expert in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill react-expert -a claude-code. The skill lands in ~/.claude/skills/react-expert/SKILL.md.
What does react-expert do?
It writes components, custom hooks, useActionState forms, Server Components, and Suspense boundaries. It debugs rendering, migrates class components, and helps pick state management.
How is this different from just using the model?
It loads topic references on demand instead of keeping everything in context. The workflow also forces a clean tsc --noEmit pass before moving on.
Source text
SKILL.md · MIT
---
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
company: https://synergetic.solutions
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
1. **Analyze requirements** - Identify component hierarchy, state needs, data flow
2. **Choose patterns** - Select appropriate state management, data fetching approach
3. **Implement** - Write TypeScript components with proper types
4. **Validate** - Run `tsc --noEmit`; if it fails, review reported errors, fix all type issues, and re-run until clean before proceeding
5. **Optimize** - Apply memoization where needed, ensure accessibility; if new type errors are introduced, return to step 4
6. **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)
```tsx
// 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`
```tsx
'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
```tsx
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 `key` props 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:
1. Component file with TypeScript types
2. Test file if non-trivial logic
3. 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)
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/frontend/react-expert/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills