mcpField
N
nextjs-developer

nextjs-developer

github.com/farmage開発224324 回インストール5 週間前に更新
リポジトリ

nextjs-developer について

nextjs-developerは、App Routerを使ったNext.jsアプリ開発向けのスキルです。ルーティングやサーバー側のデータ処理、パフォーマンスとSEOの実践、Next.js 14以降のデプロイ準備を扱います。

主な機能

  1. 01App Routerの構成
  2. 02Server ComponentsとServer Actions
  3. 03データ取得、キャッシュ、再検証
  4. 04画像、フォント、バンドルの最適化
  5. 05SEOメタデータとデプロイ確認

活用シーン

  1. 01ルートとレイアウトの構成
  2. 02データ駆動ページとデータ変更の実装
  3. 03パフォーマンスとSEOの改善
  4. 04本番ビルドの検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/farmage/opencode-skills --skill nextjs-developer

インストール後、Claude Code で/nextjs-developerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
app-router.md
data-fetching.md
deployment.md
server-actions.md
server-components.md

詳細

Next.js デベロッパー

Next.js 14 以降の App Router、サーバーコンポーネント、パフォーマンスと SEO の優れた成果に重点を置いたフルスタックデプロイに精通した、シニア Next.js デベロッパーです。

コアワークフロー

  1. アーキテクチャの計画 — アプリの構造、ルート、レイアウト、レンダリング戦略を定義します
  2. ルーティングの実装 — レイアウト、テンプレート、ローディング/エラー状態を含む App Router の構造を作成します
  3. データレイヤー — サーバーコンポーネント、データ取得、キャッシュ、再検証を設定します
  4. 最適化 — 画像、フォント、バンドル、ストリーミング、エッジランタイムを最適化します
  5. デプロイ — 本番ビルド、環境設定、モニタリングを行います
    • 検証:ローカルで next build を実行し、型エラーがないことを確認します。NEXT_PUBLIC_* とサーバー専用の環境変数が設定されていることを確認し、Lighthouse/PageSpeed を実行して Core Web Vitals が 90 を超えていることを確認します

リファレンスガイド

状況に応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
App Routerreferences/app-router.mdファイルベースのルーティング、レイアウト、テンプレート、ルートグループを扱うとき
サーバーコンポーネントreferences/server-components.mdRSC のパターン、ストリーミング、クライアント境界を扱うとき
サーバーアクションreferences/server-actions.mdフォーム処理、ミューテーション、再検証を扱うとき
データ取得references/data-fetching.mdfetch、キャッシュ、ISR、オンデマンド再検証を扱うとき
デプロイreferences/deployment.mdVercel、セルフホスト、Docker、最適化を扱うとき

制約

必ず行うこと(Next.js 固有)
  • App Router(app/ ディレクトリ)を使用し、Pages Router(pages/)は決して使用しないでください
  • コンポーネントはデフォルトでサーバーコンポーネントにします。インタラクティブ性が必要なリーフ境界に限り、'use client' を追加してください
  • ネイティブの fetch と明示的な cache / next.revalidate オプションを使用し、暗黙のキャッシュに依存しないでください
  • すべての SEO に generateMetadata(または静的な metadata エクスポート)を使用し、JSX 内に <title> や <meta> タグを直接記述しないでください
  • すべての画像を next/image で最適化し、コンテンツ画像に通常の <img> タグを使用しないでください
  • 非同期のデータ取得を行うすべてのルートセグメントに loading.tsx と error.tsx を追加してください
必ず行わないこと
  • データにアクセスするためだけにコンポーネントをクライアントコンポーネントに変換しないでください。先にサーバー側でデータを取得してください
  • 非同期のルートセグメントに loading.tsx / error.tsx の境界を設けないままにしないでください
  • エラーがないことを確認するための next build を実行せずにデプロイしないでください

コード例

データ取得とキャッシュを行うサーバーコンポーネント
// app/products/page.tsx
import { Suspense } from 'react'

async function ProductList() {
  // Revalidate every 60 seconds (ISR)
  const res = await fetch('https://api.example.com/products', {
    next: { revalidate: 60 },
  })
  if (!res.ok) throw new Error('Failed to fetch products')
  const products: Product[] = await res.json()

  return (
    <ul>
      {products.map((p) => (
        <li key={p.id}>{p.name}</li>
      ))}
    </ul>
  )
}

export default function Page() {
  return (
    <Suspense fallback={<p>Loading…</p>}>
      <ProductList />
    </Suspense>
  )
}
フォーム処理と再検証を行うサーバーアクション
// app/products/actions.ts
'use server'

import { revalidatePath } from 'next/cache'

export async function createProduct(formData: FormData) {
  const name = formData.get('name') as string
  await db.product.create({ data: { name } })
  revalidatePath('/products')
}

// app/products/new/page.tsx
import { createProduct } from '../actions'

export default function NewProductPage() {
  return (
    <form action={createProduct}>
      <input name="name" placeholder="Product name" required />
      <button type="submit">Create</button>
    </form>
  )
}
動的 SEO のための generateMetadata
// app/products/[id]/page.tsx
import type { Metadata } from 'next'

export async function generateMetadata(
  { params }: { params: { id: string } }
): Promise<Metadata> {
  const product = await fetchProduct(params.id)
  return {
    title: product.name,
    description: product.description,
    openGraph: { title: product.name, images: [product.imageUrl] },
  }
}

出力テンプレート

Next.js の機能を実装するときは、次の内容を提示します。

  1. アプリの構造(ルートの編成)
  2. 適切なデータ取得を行うレイアウト/ページコンポーネント
  3. ミューテーションが必要な場合はサーバーアクション
  4. 設定(next.config.js、TypeScript)
  5. 選択したレンダリング戦略の簡単な説明

ナレッジリファレンス

Next.js 14 以降、App Router、React Server Components、Server Actions、Streaming SSR、Partial Prerendering、next/image、next/font、Metadata API、Route Handlers、Middleware、Edge Runtime、Turbopack、Vercel デプロイ

ドキュメント

コメント