>cat/works/corporate-renewal/README.md
title: コーポレートサイト フルリニューアル
year: 2026
role: Direction / Design / Frontend
category: 受託
stack: Next.jsReactTypeScriptTailwind CSSZodResend
リノベーション事業を
技術面では
技術スタック
| カテゴリ | ツール | 選定理由 |
|---|---|---|
| フレームワーク | Next.js 16 (App Router) | RSC・SSG対応で |
| フロント | React 19 / TypeScript / Tailwind CSS v4 | 型安全か |
| デプロイ | Vercel | Git連携で |
| アクセス解析 | Vercel Analytics + Speed Insights | 訪問者数・PV・Core Web Vitals 計測 |
| メール送信 | Resend | モダンな |
| スパム対策 | ハニーポット + 入力バリデーション + レート制限 + Content-Length 早期拒否 | 外部 |
| セキュリティ | next.config.mjs ヘッダー (HSTS, Permissions-Policy等) | 外部 |
| 画像高解像度化 | NanoBananaPro | 事業内容ページの |
| バリデーション | Zod 4 (v4/classic) | サーバー/クライアント共用・TypeScript |
| ユーティリティ | clsx + tailwind-merge | 条件付きクラス結合・Tailwind競合解消 |
| アニメーション | tw-animate-css | Tailwind CSS v4対応の |
| アイコン | Lucide React | 軽量・Tree-shakeable・アイコン数が |
| Lint | ESLint 9 + eslint-config-next + eslint-config-prettier | Next.js公式推奨構成・Prettier競合回避 |
| フォーマッター | Prettier | コードスタイルの |
| テスト | Vitest | ネイティブESM対応・高速・TypeScript |
| 画像最適化 | sharp | blurDataURLで |
| パッケージマネージャ | pnpm | ディスク効率・厳格な |
構成
├── app/
│ ├── page.tsx # トップページ
│ ├── layout.tsx # 共通レイアウト(ヘッダー・フッター・OGP)
│ ├── globals.css # グローバルスタイル
│ ├── error.tsx # エラーバウンダリ
│ ├── not-found.tsx # 404ページ
│ ├── robots.ts # robots.txt 生成
│ ├── sitemap.ts # サイトマップ生成
│ ├── contact/
│ │ └── page.tsx # お問い合わせページ
│ ├── privacy/
│ │ └── page.tsx # プライバシーポリシー
│ ├── works/
│ │ ├── page.tsx # 施工事例一覧
│ │ ├── loading.tsx # ローディングUI
│ │ └── [slug]/
│ │ └── page.tsx # 施工事例詳細(動的ルーティング)
│ └── api/
│ └── contact/
│ └── route.ts # お問い合わせ送信(Serverless Function)
├── components/ # UIコンポーネント
├── hooks/ # カスタムフック
├── lib/ # 設定・ユーティリティ・バリデーション
└── public/ # 静的アセット