Agent Skill
2/7/2026

vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

P
pluxity
0GitHub Stars
1Views
npx skills add pluxity/pf-frontend

SKILL.md

Namevercel-react-best-practices
DescriptionReact and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

PF-Dev

PLUXITY 프론트엔드 모노레포 프로젝트

기술 스택

카테고리기술버전
FrameworkReact^19.2.0
Build ToolVite^6.4.1
StylingTailwind CSS^4.1.17
LanguageTypeScript^5.9.3
State ManagementZustand^5.0.8
Formreact-hook-form^7.66.1
ValidationZod^3.25.76
LintingESLint^9.39.1
DocumentationStorybook^8.6.14
MonorepoTurborepo^2.6.1
Package Managerpnpm^10.15.1

프로젝트 구조

pf-dev/
├── apps/
│   ├── isr/                          # 내부 테스트 앱
│   ├── model-gps-tool/               # 모델 GPS 도구
│   ├── yongin-platform-app/          # 용인 플랫폼 앱
│   └── yongin-platform-admin/        # 용인 플랫폼 관리자
├── packages/
│   ├── api/                          # API 클라이언트 모듈
│   ├── cctv/                         # CCTV 스트리밍 패키지
│   ├── fonts/                        # 공유 폰트 패키지
│   ├── map/                          # CesiumJS 지도 패키지
│   ├── services/                     # 공통 서비스 모듈
│   ├── three/                        # Three.js 3D 뷰어 패키지
│   └── ui/                           # 공유 UI 컴포넌트 라이브러리
├── turbo/
│   └── generators/                   # Turbo 앱 생성기
├── .github/
│   ├── deploy-config.json            # 배포 설정
│   └── workflows/
│       └── deploy-staging.yml        # 스테이징 자동 배포
├── package.json
├── pnpm-workspace.yaml               # 의존성 버전 중앙 관리 (catalog)
├── turbo.json
├── tsconfig.base.json
└── eslint.config.js

Packages

패키지버전설명
@pf-dev/ui1.3.0TypeScript, Tailwind CSS, Radix UI 기반 모던 React 컴포넌트 라이브러리
@pf-dev/map0.1.1CesiumJS 기반 3D 지도 시각화 React 패키지
@pf-dev/three0.4.1React Three Fiber 기반 독립형 3D 시각화 패키지
@pf-dev/cctv0.2.0HLS/WHEP 프로토콜 지원 실시간 영상 스트리밍 패키지
@pf-dev/fonts0.1.0Pretendard, SUIT, DSEG 로컬 폰트 패키지
@pf-dev/services0.2.0HttpOnly 쿠키 기반 인증 등 공통 서비스 모듈
@pf-dev/api0.1.1API 클라이언트 및 타입 정의 (README 미작성)

Apps

현재 개발 중인 앱 목록입니다.

설명배포 상태
yongin-platform-app용인 스마트시티 플랫폼스테이징
yongin-platform-admin용인 스마트시티 관리자스테이징
isr내부 테스트/개발용-
model-gps-tool3D 모델 GPS 매핑 도구-

시작하기

요구사항

  • Node.js >= 20.0.0
  • pnpm >= 10.x

설치

pnpm install

개발

# 전체 개발 서버 실행
pnpm dev

# 특정 앱만 실행
pnpm --filter yongin-platform-app dev

# Storybook 실행
pnpm storybook

빌드

# 전체 빌드
pnpm build

# 특정 패키지만 빌드
pnpm --filter @pf-dev/ui build

# 스테이징 빌드
pnpm turbo build:staging --filter=yongin-platform-app

린트

pnpm lint

새 앱 생성 (Turbo Generator)

Turborepo Generator를 사용하여 새 앱을 쉽게 생성할 수 있습니다.

일반 앱 생성

pnpm turbo gen app

프롬프트:

  • 앱 이름 (lowercase, hyphens)
  • 설명
  • 개발 서버 포트
  • 패키지 포함 여부 (@pf-dev/cctv, @pf-dev/map, @pf-dev/three)
  • 인증 사용 여부

Admin 앱 생성

pnpm turbo gen admin

프롬프트:

  • 앱 이름
  • 설명
  • 개발 서버 포트
  • Dashboard 페이지 포함 여부
  • CRUD 예제 포함 여부 (Card/List)
  • 패키지 포함 여부

생성 후 작업

  1. 의존성 설치: pnpm install
  2. 개발 서버 실행: pnpm --filter <app-name> dev

CI/CD 및 배포

자동 배포 (스테이징)

main 브랜치에 PR이 머지되면 GitHub Actions가 자동으로 스테이징 서버에 배포합니다.

자세한 내용은 **CI-CD.md**를 참고하세요.

  • 배포 설정 방법
  • 새 프로젝트 추가 방법
  • GitHub Secrets/Variables 설정
  • 트러블슈팅

로컬 테스트 (Nginx)

로컬에서 Nginx를 통해 배포 환경을 테스트할 수 있습니다.

자세한 내용은 **DEPLOY.md**를 참고하세요.


의존성 관리

모든 의존성 버전은 pnpm-workspace.yamlcatalog에서 중앙 관리됩니다.

catalog:
  react: ^19.2.0
  vite: ^6.4.1
  # ...

각 패키지에서는 catalog: 프로토콜로 참조:

{
  "dependencies": {
    "react": "catalog:"
  }
}

디자인


버전 관리

패키지 버전은 pnpm bumppnpm tag 명령으로 관리합니다.

# 버전 업데이트
pnpm bump

# Git 태그 생성
pnpm tag

태그 형식: @pf-dev/<package>@<version> (예: @pf-dev/ui@1.2.5)

Skills Info
Original Name:vercel-react-best-practicesAuthor:pluxity