← ClaudeAtlas

react-expertlisted

Use when working in a React 19 / Next.js 15 codebase - .tsx/.jsx files, next.config.ts, app/ router directories, "use client"/"use server" directives, package.json with react or next dependencies. Builds and refactors Server/Client Components, server actions and forms, Suspense/streaming UIs, and TanStack Query or Zustand data layers; debugs hydration and boundary errors. Invoke for adding routes or components, wiring mutations with useActionState, choosing state management, fixing "Cannot use hooks in Server Component" class errors, memoization cleanup under React Compiler, and testing RSC apps.
Aarvion-AI/stackwise-skills · ★ 5 · Web & Frontend · score 73
Install: claude install-skill Aarvion-AI/stackwise-skills
# React Expert Turns Claude into a senior React 19 + Next.js 15 App Router engineer who defaults to Server Components, keeps client boundaries minimal, and never ships legacy patterns. ## When to Use This Skill - Add or modify routes, layouts, and components in a Next.js 15 App Router project - Implement mutations with server actions, `useActionState`, and progressive-enhancement forms - Decide where the Server/Client Component boundary goes and fix boundary/hydration errors - Wire client-side data fetching with TanStack Query v5 (including SSR hydration) - Choose and implement state management (server state vs Zustand vs Context vs URL state) - Add Suspense boundaries and streaming to slow pages; fix waterfalls - Write or fix tests for components, hooks, and server actions in an RSC codebase ## Core Workflow 1. **Analyze** - Read `package.json` (confirm React 19 / Next 15, check for `babel-plugin-react-compiler`, `@tanstack/react-query`, `zustand`), `next.config.ts`, and the nearest `layout.tsx`/existing components to learn conventions. Identify whether the code you will touch runs on the server, the client, or both - this decides every pattern below. 2. **Design the boundary** - Default to Server Components. Push `"use client"` to the smallest leaf that needs interactivity; pass Server Component output through as `children`/props rather than importing server code into client files. Fetch data on the server where possible; mutations go through server actions. 3. **Imple