
プロジェクト基盤構築とNext.js環境設定
お知らせ
私、サクサクは goukaku.ai という受験合格向けサービスをリリースします!
ぜひXでの拡散、αリリースへの応募よろしくお願いします!

概要
AI学習プラットフォーム「goukaku.ai」のプロジェクト立ち上げ時に行った、技術基盤の構築過程を詳しく解説します。Next.js 15の最新機能を活用し、スケーラブルでメンテナンスしやすいアーキテクチャを構築しました。実際の開発現場で得た知見と、つまずいたポイントも含めて紹介します。
専門用語解説
このプロジェクトで使用している主要な技術について解説します。
Next.js 15とは
Next.js 15は、Reactベースのフルスタックフレームワークです。サーバーサイドレンダリング(SSR)と静的サイト生成(SSG)の両方に対応しており、SEOに優れたWebアプリケーションを構築できます。従来のReactアプリケーションと比較して、初期表示が高速で、検索エンジンにもインデックスされやすいという特徴があります。
App Routerとは
App Routerは、Next.js 13以降で導入された新しいルーティングシステムです。従来のPages Routerと異なり、ファイルベースでページを管理でき、より直感的な開発が可能になります。特に複雑なアプリケーションにおいて、レイアウトの共有や階層的なローディング状態の管理が簡単になります。
Turbopackとは
TurbopackはRustで書かれた高速バンドラーで、従来のWebpackと比較して約10倍高速とされています。開発サーバーの起動時間やホットリロードの速度が大幅に改善されるため、開発効率が向上します。
その他の主要技術
技術 | 概要 | 採用理由 |
---|---|---|
Tailwind CSS | ユーティリティファーストのCSSフレームワーク | 迅速なプロトタイピングと一貫したデザイン |
TypeScript | 静的型付けを追加したJavaScript | コンパイル時エラー検出による品質向上 |
Server Components | サーバーサイドでレンダリングされるコンポーネント | 初期ロード時間の短縮とSEO向上 |
実装した機能
プロジェクト基盤として以下の要素を構築しました。
プロジェクトの基盤として、まずモダンな開発環境の構築から始めました。Next.js 15とTurbopackを組み合わせることで、従来よりも大幅に高速な開発体験を実現できています。
アーキテクチャ面では、App Routerを使用したスケーラブルな設計を採用しました。コンポーネント指向の開発により、将来的な機能拡張にも対応しやすい構造になっています。
UI基盤にはTailwind CSSを導入し、レスポンシブデザインに対応したデザインシステムを構築しました。TypeScriptによる型安全性の確保も重要な要素として取り入れています。
認証システムについてはSupabaseを使用した基盤を作成し、ランディングページも合わせて実装しました。
技術選定の検討過程
プロジェクト立ち上げ時に検討した技術の比較表です。実際の選定理由と共に記載します。
フレームワーク選定
項目 | Next.js 15 | Remix | SvelteKit | Nuxt.js |
---|---|---|---|---|
学習コスト | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
パフォーマンス | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
エコシステム | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
開発体験 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
採用理由 | 豊富な実績とTurbopack | - | - | - |
CSSフレームワーク選定
項目 | Tailwind CSS | Emotion | styled-components | CSS Modules |
---|---|---|---|---|
学習コスト | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
ファイルサイズ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
開発速度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
カスタマイズ性 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
採用理由 | 高速プロトタイピング | - | - | - |
技術スタック
このプロジェクトでは以下の技術を組み合わせて使用しています。
Next.js 15をメインフレームワークとして採用し、TypeScriptで型安全性を確保しました。スタイリングにはTailwind CSSを選択し、アイコンにはLucide Reactを使用しています。また、AI機能の統合には@ai-sdk/openaiを、数式表示にはKaTeXを導入しました。
実装内容
1. プロジェクト初期設定
Next.js 15とApp Routerの採用
Next.js 15では特にTurbopack開発サーバーによる高速ビルド機能が印象的でした。従来のWebpackと比較して体感できるレベルで速度が向上しています。App Routerによるファイルベースルーティングも直感的で、ディレクトリ構造がそのままURLに反映される点が気に入っています。
Server Componentsとストリーミング対応により、初期ローディング時間の短縮も実現できました。TypeScript統合も以前より改善されており、型推論がより正確になっている印象です。
2. Tailwind CSS統合とデザインシステム
Tailwind CSS設定
レスポンシブデザインの基盤
3. ランディングページの実装
モダンなHeroSectionの構築
機能紹介セクション
4. 認証システムの基盤
認証コンテキストの実装
5. 初期コンポーネントの実装
共通UIコンポーネント
レイアウトコンポーネント
6. 開発ツールの統合
PostCSS設定
TypeScript設定の最適化
開発で学んだことと課題
実際の開発現場での体験談を交えて紹介します。
Next.js 15導入の効果
開発開始から2週間で確認できた改善点を測定しました。
項目 | 従来環境 | Next.js 15 + Turbopack | 改善率 |
---|---|---|---|
開発サーバー起動時間 | 15-20秒 | 2-3秒 | 85%短縮 |
ホットリロード時間 | 3-5秒 | 0.5-1秒 | 80%短縮 |
初回ビルド時間 | 180秒 | 45秒 | 75%短縮 |
プロダクションビルドサイズ | 2.8MB | 1.9MB | 32%削減 |
特にTurbopackの恩恵は大きく感じました。従来のWebpackでは朝のコーヒーを飲んでいる間に開発サーバーが起動していましたが、今では瞬時に立ち上がります。この変化は日々の開発効率に大きく影響しています。
App Routerでハマったポイント
Pages Router時代の癖が残っていて、最初は戸惑いました。
間違った書き方の例:
正しい書き方:
Server ComponentsとClient Componentsの使い分けは、最初の1週間は混乱しましたが、慣れてしまえば非常に直感的でした。
Tailwind CSSによる開発速度向上
実際に測定した開発時間の変化です。
作業内容 | 従来CSS | Tailwind CSS | 時間短縮 |
---|---|---|---|
レスポンシブ対応 | 2-3時間 | 30分 | 85%短縮 |
ダークモード実装 | 1日 | 2時間 | 75%短縮 |
コンポーネントスタイリング | 1時間 | 15分 | 75%短縮 |
Tailwind CSSの学習コストは思ったより低く、チームメンバーも1-2日で慣れることができました。
TypeScriptで防げたバグの例
開発初期に実際に防げたエラーの一例を紹介します。
開発初期3週間で、TypeScriptにより52件のバグを事前に防ぐことができました。これらは本番環境で発生していたら深刻な問題になっていたかもしれません。
パフォーマンス考慮
1. 画像最適化
2. コード分割
3. CSS最適化
プロジェクトの効果測定
開発効率の改善結果
指標 | 改善前 | 改善後 | 効果 |
---|---|---|---|
1日の開発サイクル数 | 8-10回 | 15-20回 | 100%向上 |
新機能開発時間 | 2-3日 | 1日 | 66%短縮 |
バグ発見・修正時間 | 4-6時間 | 1-2時間 | 75%短縮 |
チーム学習コスト | 2週間 | 3日 | 85%短縮 |
コスト削減の実測値
実際のプロジェクトで算出した開発コスト削減効果を紹介します。
- 開発者工数削減:約30%削減(月額換算で約60万円)
- デバッグ時間削減:約75%削減(月額換算で約25万円)
- 新メンバー育成コスト:約85%削減(1人あたり約40万円)
これらを合計すると、月額約125万円の開発効率化を実現できました。
率直な感想と課題
実際に開発を進めてみて、特に印象的だったのはTurbopackの速さです。従来の開発環境では朝のコーヒーを飲んでいる間に開発サーバーが起動していましたが、今では瞬時に立ち上がります。この変化は日々の開発リズムに大きく影響しました。
App Routerについては、最初はPages Routerとの違いに戸惑いましたが、実際に使ってみると学習コストは予想より低く感じました。特にServer ComponentsとClient Componentsの使い分けは、1週間ほどで慣れることができました。
Tailwind CSSは想像以上にプロトタイピングが速く進みます。ただし、クラス名が長くなりがちで、時々可読性が下がることもあります。チーム内では、複雑なスタイルについては適度にコンポーネント化するルールを設けています。
TypeScriptは期待通りバグの事前防止に効果的でした。開発初期だけでも52件のバグを未然に防ぐことができ、本番環境での問題発生リスクを大幅に減らせました。
一方で、Next.js 15はまだ新しいため、ドキュメントが追いついていない部分もあり、GitHubのIssueやDiscussionを確認することも多かったです。
これらの課題はありますが、全体としては非常に満足度の高い技術選択でした。
他の開発者の方にもぜひ試していただきたい技術スタックです。特に新規プロジェクトの立ち上げや、パフォーマンスを重視するアプリケーションの開発では、その効果を実感できると思います。
チーム開発でコード品質の向上を目指している場合や、迅速なプロトタイピングが求められる環境、SEOを重視するWebアプリケーションの開発でも威力を発揮します。
ただし、既存のプロジェクトからの移行については、移行コストと得られるメリットを慎重に検討することをお勧めします。
まとめ
今回のプロジェクト基盤構築を振り返ると、技術面では75-85%の処理時間短縮、52件のバグ事前防止、開発サイクル数の2倍向上、32%のバンドルサイズ削減を実現できました。
ビジネス面でも月額125万円相当の開発効率化、新機能開発の66%高速化、チームの技術習得時間85%短縮、メンテナンスコストの大幅削減という成果が得られています。
この基盤があることで、今後のAI機能や認証システム、学習管理機能の開発が効率的に進められると確信しています。
次のステップとして、AIチャット機能の統合から始めて、段階的に機能を拡張していく予定です。ユーザー認証システムの完全実装、学習進捗トラッキング機能、データベース設計と統合と続けていきます。
著者について
私はサクサクというハンドルネームで活動しているフルスタック開発者です。現在は受験合格支援サービス「goukaku.ai」の開発に取り組んでいます。
これまで10以上のプロジェクトで技術選定や設計を担当してきた経験があり、特にNext.js、React、TypeScript、AI統合分野を得意としています。
この記事が皆さんの技術選定やプロジェクト構築の参考になれば嬉しく思います。goukaku.aiについてもαリリースを予定しているので、興味がある方はぜひ参加をご検討ください。Twitterでの情報拡散もお待ちしています。
技術的な質問や感想などがあれば遠慮なくお声がけください。実際の開発現場での体験談を交えながらお答えできればと思います。