jpskill.com
🛠️ 開発・MCP コミュニティ

ck:web-frameworks

Next.jsやTurborepoといった技術を活用し、Reactアプリの構築、サーバーでの表示、高速化、キャッシュ戦略、依存関係の共有などを効率的に行うための土台を構築するSkill。

📜 元の英語説明(参考)

Build with Next.js (App Router, RSC, SSR, ISR), Turborepo monorepos. Use for React apps, server rendering, build optimization, caching strategies, shared dependencies.

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

一言でいうと

Next.jsやTurborepoといった技術を活用し、Reactアプリの構築、サーバーでの表示、高速化、キャッシュ戦略、依存関係の共有などを効率的に行うための土台を構築するSkill。

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

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

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

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

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

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して ck-web-frameworks.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → ck-web-frameworks フォルダができる
  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-18
取得日時
2026-05-18
同梱ファイル
18

📖 Skill本文(日本語訳)

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

Web Frameworks スキルグループ

Next.js、Turborepo、RemixIcon を使用して、最新のフルスタック Web アプリケーションを構築するための包括的なガイドです。

概要

このスキルグループは、Web 開発のための3つの強力なツールを組み合わせています。

Next.js - SSR、SSG、RSC、および最適化機能を備えた React フレームワーク Turborepo - JavaScript/TypeScript 用の高性能モノレポビルドシステム RemixIcon - 3,100以上のアウトラインおよび塗りつぶしスタイルのアイコンを備えたアイコンライブラリ

このスキルグループを使用するタイミング

  • 最新の React を使用して新しいフルスタック Web アプリケーションを構築する場合
  • 複数のアプリと共有パッケージを持つモノレポをセットアップする場合
  • サーバーサイドレンダリングと静的生成を実装する場合
  • インテリジェントなキャッシュでビルドパフォーマンスを最適化する場合
  • プロフェッショナルなアイコンで一貫性のある UI を作成する場合
  • 複数のプロジェクトにわたるワークスペースの依存関係を管理する場合
  • 適切な最適化を行って本番環境対応のアプリケーションをデプロイする場合

スタック選択ガイド

単一アプリケーション: Next.js + RemixIcon

スタンドアロンアプリケーションを構築する場合に使用します。

  • Eコマースサイト
  • マーケティングウェブサイト
  • SaaSアプリケーション
  • ドキュメントサイト
  • ブログおよびコンテンツプラットフォーム

セットアップ:

npx create-next-app@latest my-app
cd my-app
npm install remixicon

モノレポ: Next.js + Turborepo + RemixIcon

共有コードを持つ複数のアプリケーションを構築する場合に使用します。

  • マイクロフロントエンド
  • マルチテナントプラットフォーム
  • 共有コンポーネントライブラリを持つ社内ツール
  • ロジックを共有する複数のアプリ (Web、管理、モバイルWeb)
  • ドキュメントサイトを持つデザインシステム

セットアップ:

npx create-turbo@latest my-monorepo
# その後、apps/ディレクトリにNext.jsアプリを設定します
# 共有UIパッケージにremixiconをインストールします

フレームワーク機能比較

機能 Next.js Turborepo RemixIcon
主な用途 Webフレームワーク ビルドシステム UIアイコン
最適な用途 SSR/SSGアプリ モノレポ 一貫性のあるアイコン
パフォーマンス 組み込みの最適化 キャッシュと並列タスク 軽量フォント/SVG
TypeScript 完全サポート 完全サポート 型定義が利用可能

クイックスタート

Next.js アプリケーション

# 新しいプロジェクトを作成
npx create-next-app@latest my-app
cd my-app

# RemixIconをインストール
npm install remixicon

# レイアウトにインポート
# app/layout.tsx
import 'remixicon/fonts/remixicon.css'

# 開発を開始
npm run dev

Turborepo モノレポ

# モノレポを作成
npx create-turbo@latest my-monorepo
cd my-monorepo

# 構造:
# apps/web/          - Next.jsアプリケーション
# apps/docs/         - ドキュメントサイト
# packages/ui/       - RemixIconを含む共有コンポーネント
# packages/config/   - 共有設定
# turbo.json         - パイプライン設定

# すべてのアプリを実行
npm run dev

# すべてのパッケージをビルド
npm run build

RemixIcon 統合

// Webフォント (HTML/CSS)
<i className="ri-home-line"></i>
<i className="ri-search-fill ri-2x"></i>

// Reactコンポーネント
import { RiHomeLine, RiSearchFill } from "@remixicon/react"
<RiHomeLine size={24} />
<RiSearchFill size={32} color="blue" />

参照ナビゲーション

Next.js 参照:

  • App Router Architecture - ルーティング、レイアウト、ページ、並列ルート
  • Server Components - RSC パターン、クライアント vs サーバー、ストリーミング
  • Data Fetching - fetch API、キャッシュ、再検証、ローディング状態
  • Optimization - 画像、フォント、スクリプト、バンドル分析、PPR

Turborepo 参照:

  • Setup & Configuration - インストール、ワークスペース設定、パッケージ構造
  • Task Pipelines - 依存関係、並列実行、タスク順序
  • Caching Strategies - ローカルキャッシュ、リモートキャッシュ、キャッシュ無効化

RemixIcon 参照:

  • Integration Guide - インストール、使用法、カスタマイズ、アクセシビリティ

共通パターンとワークフロー

パターン 1: フルスタックモノレポ

my-monorepo/
├── apps/
│   ├── web/              # 顧客向け Next.js アプリ
│   ├── admin/            # 管理ダッシュボード Next.js アプリ
│   └── docs/             # ドキュメントサイト
├── packages/
│   ├── ui/               # RemixIcon を含む共有 UI
│   ├── api-client/       # API クライアントライブラリ
│   ├── config/           # ESLint、TypeScript 設定
│   └── types/            # 共有 TypeScript 型
└── turbo.json            # ビルドパイプライン

turbo.json:

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".next/**", "!.next/cache/**", "dist/**"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "lint": {},
    "test": {
      "dependsOn": ["build"]
    }
  }
}

パターン 2: 共有コンポーネントライブラリ

// packages/ui/src/button.tsx
import { RiLoader4Line } from "@remixicon/react"

export function Button({ children, loading, icon }) {
  return (
    <button>
      {loading ? <RiLoader4Line className="animate-spin" /> : icon}
      {children}
    </button>
  )
}

// apps/web/app/page.tsx
import { Button } from "@repo/ui/button"
import { RiHomeLine } from "@remixicon/react"

export default function Page() {
  return <Button icon={<RiHomeLine />}>Home</Button>
}

パターン 3: 最適化されたデータフェッチング

// app/posts/[slug]/page.tsx
import { notFound } from 'next/navigation'

// ビルド時に静的生成
export async function generateStaticParams() {
  const posts = await getPosts()
  return posts.map(post => ({ slug: post.slug }))
}

// 1時間ごとに再検証
async function getPost(slug: string) {
  const res = await fetch(`https://api.example.com/posts/${slug}`, {
    next: { revalidate: 3600 }
  })
  if (!res.ok) return null
  return res.json()
}

export default async function Post({ params }: { params: { slug: string } }) {
  const post = await ge
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Web Frameworks Skill Group

Comprehensive guide for building modern full-stack web applications using Next.js, Turborepo, and RemixIcon.

Overview

This skill group combines three powerful tools for web development:

Next.js - React framework with SSR, SSG, RSC, and optimization features Turborepo - High-performance monorepo build system for JavaScript/TypeScript RemixIcon - Icon library with 3,100+ outlined and filled style icons

When to Use This Skill Group

  • Building new full-stack web applications with modern React
  • Setting up monorepos with multiple apps and shared packages
  • Implementing server-side rendering and static generation
  • Optimizing build performance with intelligent caching
  • Creating consistent UI with professional iconography
  • Managing workspace dependencies across multiple projects
  • Deploying production-ready applications with proper optimization

Stack Selection Guide

Single Application: Next.js + RemixIcon

Use when building a standalone application:

  • E-commerce sites
  • Marketing websites
  • SaaS applications
  • Documentation sites
  • Blogs and content platforms

Setup:

npx create-next-app@latest my-app
cd my-app
npm install remixicon

Monorepo: Next.js + Turborepo + RemixIcon

Use when building multiple applications with shared code:

  • Microfrontends
  • Multi-tenant platforms
  • Internal tools with shared component library
  • Multiple apps (web, admin, mobile-web) sharing logic
  • Design system with documentation site

Setup:

npx create-turbo@latest my-monorepo
# Then configure Next.js apps in apps/ directory
# Install remixicon in shared UI packages

Framework Features Comparison

Feature Next.js Turborepo RemixIcon
Primary Use Web framework Build system UI icons
Best For SSR/SSG apps Monorepos Consistent iconography
Performance Built-in optimization Caching & parallel tasks Lightweight fonts/SVG
TypeScript Full support Full support Type definitions available

Quick Start

Next.js Application

# Create new project
npx create-next-app@latest my-app
cd my-app

# Install RemixIcon
npm install remixicon

# Import in layout
# app/layout.tsx
import 'remixicon/fonts/remixicon.css'

# Start development
npm run dev

Turborepo Monorepo

# Create monorepo
npx create-turbo@latest my-monorepo
cd my-monorepo

# Structure:
# apps/web/          - Next.js application
# apps/docs/         - Documentation site
# packages/ui/       - Shared components with RemixIcon
# packages/config/   - Shared configs
# turbo.json         - Pipeline configuration

# Run all apps
npm run dev

# Build all packages
npm run build

RemixIcon Integration

// Webfont (HTML/CSS)
<i className="ri-home-line"></i>
<i className="ri-search-fill ri-2x"></i>

// React component
import { RiHomeLine, RiSearchFill } from "@remixicon/react"
<RiHomeLine size={24} />
<RiSearchFill size={32} color="blue" />

Reference Navigation

Next.js References:

Turborepo References:

RemixIcon References:

Common Patterns & Workflows

Pattern 1: Full-Stack Monorepo

my-monorepo/
├── apps/
│   ├── web/              # Customer-facing Next.js app
│   ├── admin/            # Admin dashboard Next.js app
│   └── docs/             # Documentation site
├── packages/
│   ├── ui/               # Shared UI with RemixIcon
│   ├── api-client/       # API client library
│   ├── config/           # ESLint, TypeScript configs
│   └── types/            # Shared TypeScript types
└── turbo.json            # Build pipeline

turbo.json:

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".next/**", "!.next/cache/**", "dist/**"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "lint": {},
    "test": {
      "dependsOn": ["build"]
    }
  }
}

Pattern 2: Shared Component Library

// packages/ui/src/button.tsx
import { RiLoader4Line } from "@remixicon/react"

export function Button({ children, loading, icon }) {
  return (
    <button>
      {loading ? <RiLoader4Line className="animate-spin" /> : icon}
      {children}
    </button>
  )
}

// apps/web/app/page.tsx
import { Button } from "@repo/ui/button"
import { RiHomeLine } from "@remixicon/react"

export default function Page() {
  return <Button icon={<RiHomeLine />}>Home</Button>
}

Pattern 3: Optimized Data Fetching

// app/posts/[slug]/page.tsx
import { notFound } from 'next/navigation'

// Static generation at build time
export async function generateStaticParams() {
  const posts = await getPosts()
  return posts.map(post => ({ slug: post.slug }))
}

// Revalidate every hour
async function getPost(slug: string) {
  const res = await fetch(`https://api.example.com/posts/${slug}`, {
    next: { revalidate: 3600 }
  })
  if (!res.ok) return null
  return res.json()
}

export default async function Post({ params }: { params: { slug: string } }) {
  const post = await getPost(params.slug)
  if (!post) notFound()

  return <article>{post.content}</article>
}

Pattern 4: Monorepo CI/CD Pipeline

# .github/workflows/ci.yml
name: ck:CI
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - run: npm install
      - run: npx turbo run build test lint
        env:
          TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
          TURBO_TEAM: ${{ secrets.TURBO_TEAM }}

Utility Scripts

Python utilities in scripts/ directory:

nextjs-init.py - Initialize Next.js project with best practices turborepo-migrate.py - Convert existing monorepo to Turborepo

Usage examples:

# Initialize new Next.js app with TypeScript and recommended setup
python scripts/nextjs-init.py --name my-app --typescript --app-router

# Migrate existing monorepo to Turborepo with dry-run
python scripts/turborepo-migrate.py --path ./my-monorepo --dry-run

# Run tests
cd scripts/tests
pytest

Best Practices

Next.js:

  • Default to Server Components, use Client Components only when needed
  • Implement proper loading and error states
  • Use Image component for automatic optimization
  • Set proper metadata for SEO
  • Leverage caching strategies (force-cache, revalidate, no-store)

Turborepo:

  • Structure monorepo with clear separation (apps/, packages/)
  • Define task dependencies correctly (^build for topological)
  • Configure outputs for proper caching
  • Enable remote caching for team collaboration
  • Use filters to run tasks on changed packages only

RemixIcon:

  • Use line style for minimal interfaces, fill for emphasis
  • Maintain 24x24 grid alignment for crisp rendering
  • Provide aria-labels for accessibility
  • Use currentColor for flexible theming
  • Prefer webfonts for multiple icons, SVG for single icons

Resources

Implementation Checklist

Building with this stack:

  • [ ] Create project structure (single app or monorepo)
  • [ ] Configure TypeScript and ESLint
  • [ ] Set up Next.js with App Router
  • [ ] Configure Turborepo pipeline (if monorepo)
  • [ ] Install and configure RemixIcon
  • [ ] Implement routing and layouts
  • [ ] Add loading and error states
  • [ ] Configure image and font optimization
  • [ ] Set up data fetching patterns
  • [ ] Configure caching strategies
  • [ ] Add API routes as needed
  • [ ] Implement shared component library (if monorepo)
  • [ ] Configure remote caching (if monorepo)
  • [ ] Set up CI/CD pipeline
  • [ ] Configure deployment platform

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。