
nextjs-react-engineering
by phatpham9
ð Automated development environment setup for macOS and Ubuntu
SKILL.md
name: nextjs-react-engineering description: 'Build React and Next.js components, pages, layouts, and hooks with App Router, RSC, Tailwind CSS or Styled Components, responsive design, accessibility, and PWA features'
Purpose
Build production-ready React and Next.js components following Atomic Design, modern frontend patterns, and performance best practices.
When to Use
Use this skill when the task involves:
- Creating or modifying React/Next.js components
- Building pages, layouts, or route handlers with App Router
- Implementing UI with Tailwind CSS or Styled Components
- Adding responsive design, accessibility, or PWA features
- Optimizing Core Web Vitals or client/server component decisions
Constraints
- Default to React Server Components (RSC); use
"use client"only when interactivity is required - Use TypeScript with strict mode enabled; avoid
anytypes - Apply Atomic Design principles (atoms â molecules â organisms â templates â pages)
- Use path aliases (
@/) for all imports - Use
next/imageandnext/fontfor automatic optimization - Ensure all interactive elements have accessible labels and keyboard support
- Prefix client-exposed env vars with
NEXT_PUBLIC_
Execution Steps
- Identify scope â Determine component level (atom/molecule/organism/page) and RSC vs client boundary
- Scaffold structure â Create component file with TypeScript interface for props
- Implement styling â Use Tailwind utilities or Styled Components with design tokens
- Add accessibility â Include ARIA labels, keyboard handlers, focus management
- Optimize performance â Apply Suspense, streaming, dynamic imports where beneficial
- Verify responsiveness â Test across breakpoints (mobile-first approach)
Examples
Input
Create a product card component with image, title, price, and add-to-cart button
Output
// @/components/molecules/ProductCard/ProductCard.tsx
'use client';
import Image from 'next/image';
import { Button } from '@/components/atoms/Button';
interface ProductCardProps {
id: string;
title: string;
price: number;
imageUrl: string;
onAddToCart: (id: string) => void;
}
export function ProductCard({
id,
title,
price,
imageUrl,
onAddToCart,
}: ProductCardProps) {
return (
<article className="rounded-lg border p-4 hover:shadow-md transition-shadow">
<Image
src={imageUrl}
alt={title}
width={200}
height={200}
className="rounded"
/>
<h3 className="mt-2 font-semibold">{title}</h3>
<p className="text-lg font-bold">${price.toFixed(2)}</p>
<Button
onClick={() => onAddToCart(id)}
aria-label={`Add ${title} to cart`}
>
Add to Cart
</Button>
</article>
);
}
Related Skills
jest-testing-generatorâ Write tests for componentstemplate-scaffoldâ Generate boilerplate structures
ã¹ã³ã¢
ç·åã¹ã³ã¢
ãªããžããªã®åè³ªææšã«åºã¥ãè©äŸ¡
SKILL.mdãã¡ã€ã«ãå«ãŸããŠãã
ã©ã€ã»ã³ã¹ãèšå®ãããŠãã
100æå以äžã®èª¬æããã
GitHub Stars 100以äž
3ã¶æä»¥å ã«æŽæ°ããã
10å以äžãã©ãŒã¯ãããŠãã
ãªãŒãã³Issueã50æªæº
ããã°ã©ãã³ã°èšèªãèšå®ãããŠãã
1ã€ä»¥äžã®ã¿ã°ãèšå®ãããŠãã
ã¬ãã¥ãŒ
ã¬ãã¥ãŒæ©èœã¯è¿æ¥å ¬éäºå®ã§ã





