SkillAgentSearch skills...

react-expert

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.

Install / Use

npx skills add Jeffallan/claude-skills --skill react-expert

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

91/100

Supported Platforms

Universal

Our assessment of react-expert

react-expert scores 91/100 on our quality scale, 498th of 2,855 Development & Engineering skills we index (top 18%).

Its SKILL.md is 5.1 KB long, well organised into 13 sections with 3 code examples: a solid amount of guidance for an agent.

With 11,621 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
18/20
Description
15/15
Adoption
17/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so react-expert is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

react-expert compared with similar skills

All 4 of these similar skills score higher than react-expert; compare them before choosing.

SkillScoreStarsUpdatedFormat
react-expert (this skill)by Jeffallan9111.6k51d agoSKILL.md
Agent-Reachby Panniantong10085.8k12d agoCLAUDE.md
ai-job-searchby MadsLorentzen10044.2ktodayCLAUDE.md
claude-howtoby luongnv8910041.7k1d agoCLAUDE.md
algorithmic-artby anthropics100177.9k5d agoSKILL.md

Frequently asked questions

How do I install react-expert?
Run npx skills add Jeffallan/claude-skills --skill react-expert. The install tabs above show the steps for each supported agent.
Which AI agents does react-expert work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is react-expert safe to use?
It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is react-expert still maintained?
The repository was last updated about 2 months ago, so react-expert is actively maintained.

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

  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)

// 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 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)

Documentation

Related Skills

View on GitHub
GitHub Stars11.6k
CategoryDevelopment
Updated1mo ago
Forks1.1k

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions