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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
ck-web-frameworks.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
ck-web-frameworksフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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:
- App Router Architecture - Routing, layouts, pages, parallel routes
- Server Components - RSC patterns, client vs server, streaming
- Data Fetching - fetch API, caching, revalidation, loading states
- Optimization - Images, fonts, scripts, bundle analysis, PPR
Turborepo References:
- Setup & Configuration - Installation, workspace config, package structure
- Task Pipelines - Dependencies, parallel execution, task ordering
- Caching Strategies - Local cache, remote cache, cache invalidation
RemixIcon References:
- Integration Guide - Installation, usage, customization, accessibility
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
- Next.js: https://nextjs.org/docs/llms.txt
- Turborepo: https://turbo.build/repo/docs
- RemixIcon: https://remixicon.com
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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (9,096 bytes)
- 📎 references/nextjs-app-router.md (9,366 bytes)
- 📎 references/nextjs-data-fetching.md (10,229 bytes)
- 📎 references/nextjs-optimization.md (11,210 bytes)
- 📎 references/nextjs-server-components.md (10,792 bytes)
- 📎 references/remix-icon-integration.md (10,810 bytes)
- 📎 references/turborepo-caching.md (9,714 bytes)
- 📎 references/turborepo-pipelines.md (8,510 bytes)
- 📎 references/turborepo-setup.md (9,696 bytes)
- 📎 scripts/__init__.py (0 bytes)
- 📎 scripts/.coverage (53,248 bytes)
- 📎 scripts/nextjs_init.py (15,114 bytes)
- 📎 scripts/requirements.txt (430 bytes)
- 📎 scripts/tests/coverage-web.json (34,849 bytes)
- 📎 scripts/tests/requirements.txt (52 bytes)
- 📎 scripts/tests/test_nextjs_init.py (10,735 bytes)
- 📎 scripts/tests/test_turborepo_migrate.py (12,861 bytes)
- 📎 scripts/turborepo_migrate.py (13,231 bytes)