frontend-react
SKILL.md
React Development Skill
Comprehensive skill for modern React development, focusing on Next.js, TypeScript, Tailwind CSS, and the wider React ecosystem.
Technology Stack
Core Framework: React + Next.js
React Fundamentals
- Component-Based: Declarative UI building blocks
- Hooks: Functional state and side-effect management (
useState,useEffect,useContext) - Virtual DOM: Efficient reconciliation and rendering
- React Server Components (RSC): Server-side rendering with zero client-side bundle size for static content
Next.js Features (App Router)
- App Router: File-system based routing in
app/directory - Server Actions: Direct server-side mutations from client components
- Streaming SSR: Progressive rendering with Suspense
- Metadata API: SEO and social share optimization
- Route Handlers: API endpoints (GET, POST, etc.) in
route.tsfiles - Middleware: Request interception and processing
UI Framework: Tailwind CSS + shadcn/ui
Tailwind CSS
- Utility-first CSS framework
- Responsive design with prefixes (
md:,lg:) - Custom configuration via
tailwind.config.ts - Dark mode support
shadcn/ui
- Reusable components built with Radix UI and Tailwind CSS
- Accessible and customizable
- "Own your code" philosophy (components copied to your project)
- Key Components: Button, Dialog, Form, Dropdown, Card, Sheet
State Management
- Local State:
useState,useReducer - Global State: React Context, Zustand (for lightweight global state)
- Server State: TanStack Query (React Query) for async data fetching and caching
Project Architecture
Recommended Directory Structure (Next.js App Router)
src/
├── app/
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ ├── globals.css # Global styles
│ ├── (auth)/ # Route group (doesn't affect URL path)
│ │ ├── login/
│ │ │ └── page.tsx
│ │ └── register/
│ │ └── page.tsx
│ └── api/ # API routes
├── components/
│ ├── ui/ # shadcn/ui components
│ │ ├── button.tsx
│ │ └── ...
│ ├── Navbar.tsx
│ └── Footer.tsx
├── lib/
│ ├── utils.ts # Utility functions (cn, etc.)
│ └── db.ts # Database connection
└── hooks/ # Custom React hooks
└── use-toast.ts
Best Practices
Component Design
- Server by Default: Use Server Components for everything that doesn't need interactivity.
- Client Boundary: Add
'use client'directive only when using hooks or event listeners. - Composition: Use
childrenprop to avoid prop drilling. - Micro-Components: Break down complex UIs into smaller, single-responsibility components.
Performance
- Image Optimization: Use
next/imagefor automatic optimization. - Font Optimization: Use
next/fontto prevent layout shift. - Lazy Loading: Use
next/dynamicorReact.lazyfor heavy components. - Code Splitting: Automatic in Next.js, but be mindful of large dependencies.
Accessibility (a11y)
- Use semantic HTML tags (
<main>,<article>,<nav>). - Ensure all interactive elements have keyboard support.
- Use valid ARIA attributes when semantic HTML isn't enough.
- Radix UI primitives (used in shadcn/ui) handle many a11y concerns automatically.
Common Code Patterns
Next.js Page (Server Component)
import { db } from "@/lib/db"
export default async function DashboardPage() {
const data = await db.user.findMany()
return (
<main className="p-6">
<h1 className="text-2xl font-bold">Dashboard</h1>
<ul>
{data.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
</main>
)
}
Client Component with State
"use client"
import { useState } from "react"
import { Button } from "@/components/ui/button"
export function Counter() {
const [count, setCount] = useState(0)
return (
<div className="flex gap-4 items-center">
<span>Count: {count}</span>
<Button onClick={() => setCount(c => c + 1)}>Increment</Button>
</div>
)
}
Weekly Installs
6
Repository
projanvil/mindforgeGitHub Stars
3
First Seen
Feb 28, 2026
Security Audits
Installed on
opencode6
gemini-cli6
claude-code6
github-copilot6
codex6
kimi-cli6