Next.js · React · TypeScript
空のリポジトリではなく、定義されたアーキテクチャから始めましょう。
Foundation は設定重視のウェブサイト基盤で、フレームワークに依存しないコア、ポートとアダプター、スキーマで検証する設定、本物の検証ゲートを備えています。基礎を引き継ぎ、これから作るサイトに本当に固有の部分へ時間を使えます。
- Next.js App Router と React Server Components
- プロジェクト全体が TypeScript で、設定はスキーマで検証されます
- リポジトリに単体・アーキテクチャ・実ブラウザのテストゲートがあります
アーキテクチャの概要
依存の向きが一方向の 4 つの段階です。中央の 2 つが基盤で、最初と最後はあなたのものです。
- Stage 1
サイトデータ、コンテンツ、アセット
身元、ナビゲーション、言語、Markdown コンテンツ、ビジュアル — 導入者の入力であり、何かが読む前に検証されます。
- Stage 2
Foundation の派生環境
フレームワークに依存しないドメイン概念と、それを調整するアプリケーションサービス。フレームワークの import はありません。
- Stage 3
表現、ルーティング、連携点
ルート、レイアウト構成、メタデータ、そして設定から予約、問い合わせ、地図、分析を結びつけるアダプターのファクトリ。
- Stage 4
デプロイ
静的生成を重視したビルドを、自分のリポジトリから自分のホスティングアカウントへ公開します。
依存の向きは仮定ではなくテストで示されます。コアは React や Next.js、外側の層を import できず、アプリケーション層は具体的なアダプターに踏み込めません。
設定か、コードか
この境界がプロジェクトの要点です。ビジネス固有の判断の多くはデータであり、本当の拡張はコードです。Foundation はどちらが何かを明確にします。
通常は設定または記述
- 身元:名称、スローガン、説明、正規 URL
- ナビゲーション、および補助またはフッターのグループ
- 言語の構成と UI 辞書
- 事業所、営業時間、経路
- コンテンツ:Markdown のページとコレクション
- ブランド、アイコン、画像
- 予約、問い合わせ、地図、分析の事業者の選択
- 提供内容、ポートフォリオ、ブログ、推薦の機能の有効化
- 設定契約が公開する表現上の値
振る舞いを本当に拡張するときはコードが必要
- 既存の機能に対する新しい事業者アダプター
- 新しい再利用可能な機能
- 新しい UI の振る舞いや操作
- 新しい下流のアプリケーションモジュール
- 確立された設定の境界の外側にあるもの
承認された立場:身元、コンテンツ、ブランド、機能選択の大半はアプリケーションのコアの外にあります。ただしコードを一切書かないという約束ではありません。本当に新しい機能はプラットフォームの仕事であり、Foundation はプラグインの仕組みがあるかのように示唆せず、そう明言します。
エンジニアリング契約
プロジェクトが守るもの、そして主張しないもの。
厳格に検証された設定
1 つのスキーマ、未知のキーの拒否、役立つ失敗、そして設定はローダー経由でのみ読み取られます。
ヘキサゴナルな境界
純粋なコア、ポートとアプリケーションサービス、ファクトリの背後のアダプター、薄いフレームワークのルート。
依存の強制
アーキテクチャテストがソースツリーを走査し、禁止された import で失敗するため、図とコードが離れません。
サーバー優先の構成
React Server Components と静的生成が既定で、クライアントの対話性は必要なコンポーネントに限られます。
実ブラウザでの検証
コミットされたヘッドレスブラウザのマトリクスが、デスクトップ、タブレット、モバイルの幅、キーボードとポインタ、動きの抑制、ダークスキーマを確認し、未達の表明があれば実行を失敗させます。
アーキテクチャと単体のゲート
境界テストと単体テストが、アセット検査、型検査、lint、本番ビルドと並んで実行されます。
機能主張の規律
文書化された主張は、実装・検証済みというプロジェクト自身の記録と突き合わせられるため、主張が証拠を超えることはありません。
正直なアップグレードモデル
設定、コンテンツ、アセットがアプリケーションのコアの外にあるため、プラットフォームの改善はあなたの作業を上書きせずに取り込めます。
プロジェクトが主張しないこと
Foundation は WCAG への適合、セキュリティ認証、ペネトレーションテスト、公開された性能や Lighthouse のスコア、すべてのブラウザと端末での動作を主張しません。アクセシビリティと性能は、プロジェクトが検証できる範囲で開発・検証されるものであり、認証されたものではありません。
Foundation が止まる場所
同じ所有権の分担を技術的に述べたものです。Foundation は運用の複雑さの手前で意図的に止まり、あなたが選ぶサービスへの連携点を提供します。
導入者が所有するもの
- 設定
- コンテンツ
- 言語辞書
- ビジネスのビジュアル
- 事業者の選択
- 下流の拡張
Foundation が所有するもの
- アプリケーションアーキテクチャ
- 再利用可能な UI の仕組み
- 設定の検証
- ルーティングとコンテンツの仕組み
- 連携点
- 検証のインフラ
拡張は外から内へ進みます。新しい事業者はアダプターとファクトリの分岐、スキーマの enum エントリであり、新しいコンテンツ種別や言語はデータです。本当に新しい機能はプラットフォームの仕事です。
導入の流れ
8 つの段階です。コマンド単位の詳細はリポジトリにあり、ここでは作業の形を示します。
- 1
Foundation を入手
公開リポジトリを clone または fork します。
- 2
インストールして実行
依存をインストールし、ローカルでサイトを起動します。
- 3
設定
身元、言語、機能、事業者の選択を定義します。
- 4
コンテンツとアセットを書く
ページを書き、ブランドのアセットの役割を置き換えます。
- 5
事業者を接続
連携点を実際に使うサービスへ向けます。
- 6
検証
プロジェクト自身の品質ゲートをローカルで実行します。
- 7
デプロイ
自分のリポジトリとアカウントからビルドして公開します。
- 8
維持と更新
上流の改善を、あなたの素材を上書きせずに取り込みます。
リポジトリの手引きは、トラブルシューティングを含むすべての段階を扱っています。
権威あるドキュメント
GitHub が正規の技術情報源です。このサイトは要約し、リポジトリが手順を示します。
Repository
コード全体、ライセンス、そしてプロジェクトが何であり何でないかの宣言。
README.md
プロジェクトの内容、クイックスタート、リポジトリ構成、ライセンスの立場。
ARCHITECTURE.md
アーキテクチャのスタイル、境界、依存の向き、連携のパターン。
CUSTOMIZING.md
下流利用者のための手引きと、設定の完全なリファレンス。
DEPLOYMENT.md
リリース手順書と、デプロイ後の確認リスト。
BRAND_ASSETS.md
ブランドアセットの差し替え契約:置き換え可能なすべてのビジュアルの役割。
手引き
導入、カスタマイズ、ブランド、コンテンツ、更新、検証、デプロイ、トラブルシューティングの手順。
上記の各リンク先は公開リポジトリで、そこにドキュメントが維持されています。
読み、実行し、変更する
コード、テスト、ドキュメントが根拠です。そこから始めてください。