next-best-practices について
Next.js コードの作成やレビュー向けのベストプラクティスをまとめたスキルです。ルーティング、React Server Components、データ処理、デプロイに加え、一般的なエラーとデバッグ方法も扱います。
主な機能
- 01ファイル規約とルーティング規則
- 02RSC の境界と非同期パターン
- 03データ取得とエラー処理
- 04メタデータ・画像・フォントの最適化
- 05バンドル・スクリプト・ハイドレーションのデバッグ
- 06セルフホストとビルドのデバッグ
活用シーン
- 01Next.js プロジェクトの RSC 利用の確認
- 02非同期リクエスト API の移行
- 03並列ルートとモーダルルートの設計
- 04ハイドレーションやビルドエラーの調査
MCP 対応
AI 支援デバッグ用の MCP エンドポイントについて記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vercel-labs/ openreview --skill next-best-practicesインストール後、Claude Code で/next-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
async-patterns.mdbundling.mddata-patterns.mddebug-tricks.mddirectives.mderror-handling.mdfile-conventions.mdfont.mdfunctions.mdhydration-error.mdimage.mdmetadata.mdparallel-routes.mdroute-handlers.mdrsc-boundaries.mdruntime-selection.mdscripts.mdself-hosting.mdsuspense-boundaries.md詳細
Next.js のベストプラクティス
Next.js コードの作成やレビューでは、これらのルールを適用してください。
ファイル規約
file-conventions.md で、以下について説明しています。
- プロジェクト構造と特別なファイル
- ルートセグメント(動的、キャッチオール、グループ)
- 並列ルートとインターセプトルート
- v16 での Middleware の名称変更(middleware → proxy)
RSC の境界
無効な React Server Component のパターンを検出します。
rsc-boundaries.md で、以下について説明しています。
- 非同期クライアントコンポーネントの検出(無効)
- シリアライズできない props の検出
- Server Action の例外
非同期パターン
Next.js 15 以降の非同期 API の変更点です。
async-patterns.md で、以下について説明しています。
- 非同期の
paramsとsearchParams - 非同期の
cookies()とheaders() - 移行用 codemod
ランタイムの選択
runtime-selection.md で、以下について説明しています。
- Node.js ランタイムをデフォルトにする
- Edge ランタイムが適している場合
ディレクティブ
directives.md で、以下について説明しています。
'use client'、'use server'(React)'use cache'(Next.js)
関数
functions.md で、以下について説明しています。
- ナビゲーションフック:
useRouter、usePathname、useSearchParams、useParams - サーバー関数:
cookies、headers、draftMode、after - 生成関数:
generateStaticParams、generateMetadata
エラー処理
error-handling.md で、以下について説明しています。
error.tsx、global-error.tsx、not-found.tsxredirect、permanentRedirect、notFoundforbidden、unauthorized(認証エラー)- catch ブロックでの
unstable_rethrow
データパターン
data-patterns.md で、以下について説明しています。
- Server Components、Server Actions、Route Handlers の使い分け
- データのウォーターフォールを回避する方法(
Promise.all、Suspense、プリロード) - クライアントコンポーネントでのデータ取得
Route Handlers
route-handlers.md で、以下について説明しています。
route.tsの基本page.tsxと競合する GET ハンドラー- 環境の動作(React DOM なし)
- Server Actions との使い分け
メタデータと OG 画像
metadata.md で、以下について説明しています。
- 静的および動的なメタデータ
generateMetadata関数next/ogによる OG 画像の生成- ファイルベースのメタデータ規約
画像の最適化
image.md で、以下について説明しています。
<img>よりも常にnext/imageを使用する- リモート画像の設定
- レスポンシブな
sizes属性 - ぼかしプレースホルダー
- LCP の優先読み込み
フォントの最適化
font.md で、以下について説明しています。
next/fontのセットアップ- Google Fonts、ローカルフォント
- Tailwind CSS との統合
- サブセットのプリロード
バンドル
bundling.md で、以下について説明しています。
- サーバー非対応のパッケージ
- CSS のインポート(link タグではなく)
- ポリフィル(すでに含まれています)
- ESM/CommonJS の問題
- バンドルの分析
スクリプト
scripts.md で、以下について説明しています。
next/scriptとネイティブの script タグの使い分け- インラインスクリプトに必要な
id - 読み込み戦略
@next/third-partiesによる Google Analytics
ハイドレーションエラー
hydration-error.md で、以下について説明しています。
- よくある原因(ブラウザー API、日付、無効な HTML)
- エラーオーバーレイを使ったデバッグ
- 原因ごとの修正方法
Suspense の境界
suspense-boundaries.md で、以下について説明しています。
useSearchParamsとusePathnameによる CSR への切り替え- Suspense の境界が必要なフック
並列ルートとインターセプトルート
parallel-routes.md で、以下について説明しています。
@slotと(.)インターセプターを使ったモーダルのパターン- フォールバック用の
default.tsx router.back()を使った正しいモーダルの終了方法
セルフホスティング
self-hosting.md で、以下について説明しています。
- Docker 用の
output: 'standalone' - 複数インスタンスの ISR に対応するキャッシュハンドラー
- そのまま動作する機能と、追加の設定が必要な機能
デバッグのヒント
debug-tricks.md で、以下について説明しています。
- AI 支援デバッグ用の MCP エンドポイント
--debug-build-pathsを使った特定ルートの再ビルド