jpskill.com
🛠️ 開発・MCP コミュニティ 🔴 エンジニア向け 👤 エンジニア・AI開発者

🛠️ Next Best Practices

next-best-practices

Next.jsにおけるファイル規約、RSC境界、データパターン、非同期API、メタデータ、エラー処理、ルーティング、画像・フォント最適化、バンドルなど、開発におけるベストプラクティスをまとめたものです。

⏱ 障害ポストモーテム 1日 → 1時間
📜 元の英語説明(参考)

Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling

🇯🇵 日本人クリエイター向け解説

一言でいうと

Next.jsにおけるファイル規約、RSC境界、データパターン、非同期API、メタデータ、エラー処理、ルーティング、画像・フォント最適化、バンドルなど、開発におけるベストプラクティスをまとめたものです。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o next-best-practices.zip https://jpskill.com/download/5100.zip && unzip -o next-best-practices.zip && rm next-best-practices.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5100.zip -OutFile "$d\next-best-practices.zip"; Expand-Archive "$d\next-best-practices.zip" -DestinationPath $d -Force; ri "$d\next-best-practices.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して next-best-practices.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → next-best-practices フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-18
同梱ファイル
1

💬 こう話しかけるだけ — サンプルプロンプト

  • Next Best Practices を使って、最小構成のサンプルコードを示して
  • Next Best Practices の主な使い方と注意点を教えて
  • Next Best Practices を既存プロジェクトに組み込む方法を教えて

これをClaude Code に貼るだけで、このSkillが自動発動します。

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Next.js のベストプラクティス

Next.js のコードを記述またはレビューする際に、これらのルールを適用してください。

ファイルの命名規則

file-conventions.md を参照してください。

  • プロジェクト構造と特殊ファイル
  • ルートセグメント(動的、キャッチオール、グループ)
  • 並列ルートとインターセプトルート
  • v16 でのミドルウェア名の変更(middleware → proxy)

RSC の境界

無効な React Server Component パターンを検出します。

rsc-boundaries.md を参照してください。

  • 非同期クライアントコンポーネントの検出(無効)
  • 非シリアライズ可能なプロップの検出
  • Server Action の例外

非同期パターン

Next.js 15 以降の非同期 API の変更点です。

async-patterns.md を参照してください。

  • 非同期 paramssearchParams
  • 非同期 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.tsx
  • redirect, permanentRedirect, notFound
  • forbidden, unauthorized (認証エラー)
  • unstable_rethrow を catch ブロックで使用する

データパターン

data-patterns.md を参照してください。

  • Server Components vs Server Actions vs Route Handlers
  • データウォーターフォールを避ける (Promise.all, Suspense, preload)
  • クライアントコンポーネントでのデータフェッチ

ルートハンドラー

route-handlers.md を参照してください。

  • route.ts の基本
  • GET ハンドラーと page.tsx の競合
  • 環境の挙動(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 を参照してください。

  • useSearchParamsusePathname を使用した 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 を使用した特定のルートのリビルド
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Next.js Best Practices

Apply these rules when writing or reviewing Next.js code.

File Conventions

See file-conventions.md for:

  • Project structure and special files
  • Route segments (dynamic, catch-all, groups)
  • Parallel and intercepting routes
  • Middleware rename in v16 (middleware → proxy)

RSC Boundaries

Detect invalid React Server Component patterns.

See rsc-boundaries.md for:

  • Async client component detection (invalid)
  • Non-serializable props detection
  • Server Action exceptions

Async Patterns

Next.js 15+ async API changes.

See async-patterns.md for:

  • Async params and searchParams
  • Async cookies() and headers()
  • Migration codemod

Runtime Selection

See runtime-selection.md for:

  • Default to Node.js runtime
  • When Edge runtime is appropriate

Directives

See directives.md for:

  • 'use client', 'use server' (React)
  • 'use cache' (Next.js)

Functions

See functions.md for:

  • Navigation hooks: useRouter, usePathname, useSearchParams, useParams
  • Server functions: cookies, headers, draftMode, after
  • Generate functions: generateStaticParams, generateMetadata

Error Handling

See error-handling.md for:

  • error.tsx, global-error.tsx, not-found.tsx
  • redirect, permanentRedirect, notFound
  • forbidden, unauthorized (auth errors)
  • unstable_rethrow for catch blocks

Data Patterns

See data-patterns.md for:

  • Server Components vs Server Actions vs Route Handlers
  • Avoiding data waterfalls (Promise.all, Suspense, preload)
  • Client component data fetching

Route Handlers

See route-handlers.md for:

  • route.ts basics
  • GET handler conflicts with page.tsx
  • Environment behavior (no React DOM)
  • When to use vs Server Actions

Metadata & OG Images

See metadata.md for:

  • Static and dynamic metadata
  • generateMetadata function
  • OG image generation with next/og
  • File-based metadata conventions

Image Optimization

See image.md for:

  • Always use next/image over <img>
  • Remote images configuration
  • Responsive sizes attribute
  • Blur placeholders
  • Priority loading for LCP

Font Optimization

See font.md for:

  • next/font setup
  • Google Fonts, local fonts
  • Tailwind CSS integration
  • Preloading subsets

Bundling

See bundling.md for:

  • Server-incompatible packages
  • CSS imports (not link tags)
  • Polyfills (already included)
  • ESM/CommonJS issues
  • Bundle analysis

Scripts

See scripts.md for:

  • next/script vs native script tags
  • Inline scripts need id
  • Loading strategies
  • Google Analytics with @next/third-parties

Hydration Errors

See hydration-error.md for:

  • Common causes (browser APIs, dates, invalid HTML)
  • Debugging with error overlay
  • Fixes for each cause

Suspense Boundaries

See suspense-boundaries.md for:

  • CSR bailout with useSearchParams and usePathname
  • Which hooks require Suspense boundaries

Parallel & Intercepting Routes

See parallel-routes.md for:

  • Modal patterns with @slot and (.) interceptors
  • default.tsx for fallbacks
  • Closing modals correctly with router.back()

Self-Hosting

See self-hosting.md for:

  • output: 'standalone' for Docker
  • Cache handlers for multi-instance ISR
  • What works vs needs extra setup

Debug Tricks

See debug-tricks.md for:

  • MCP endpoint for AI-assisted debugging
  • Rebuild specific routes with --debug-build-paths