「Astroで作ろう」と決めてから構成を考えると、後で「静的生成なのに動的機能が欲しい」「記事が増えて管理が辛い」にはまります。先に用途を決め、その用途に合う静的構成を選びます。

先に結論:決める順は「目的 → 更新 → 動き → 配信 → 運用」

順番を間違えると、初期HTML、配信の単純さ、復旧しやすさという静的構成の強みを使わないまま、ページ全体をクライアント実行へ寄せてしまいます。

  1. 目的: 記事か、診断か、計算か、ポートフォリオか、複合か
  2. 更新頻度: ほぼ固定か、月数回か、毎日か
  3. インタラクション密度: 最小・標準・高い・実験的
  4. 配信: FTP静的・Cloudflare Pages・Vercel・GitHub Pages
  5. 運用人数: 1人か小規模チームか

この5つを決めると、Astro のどの機能(Content Collections / React Islands / SSR)を使うかが自ずと決まります。

目的別の推奨構成(BUILD ORBITからの実例)

目的推奨構成避ける構成実例
記事・ナレッジContent Collections + 静的生成全ページ SPA複数の記事サイト(30件中多数)
診断・比較静的HTML + 小さな Island(状態のみ)結果をサーバーで生成Local AI Compass
計算ツール静的 + クライアント計算 Islandサーバー常時稼働配信設計ラボ
ポートフォリオ静的生成 + 軽い遷移重い3D/WebGL個人サイト群
複合静的基盤 + 必要分だけ Island一律 React 化複数サイト運営

Astro公式は、content-drivenなサイトをserver-firstで構成し、JavaScriptを必要なコンポーネントだけへ明示的に追加する方針を示しています(2026年9月1日確認)。

構成の採用理由を証拠へ渡す

構成を決めたら、フレームワーク名だけでなく「何を静的に残し、何を動かし、どこで公開を止めるか」を一行で記録します。あとから別のProjectと比較できる単位を先に揃えると、技術選定が好みの表明で終わりません。

記録する判断確認するもの
目的と更新頻度記事・診断・計算・ポートフォリオのどれか、誰がいつ更新するか
HTMLに残す情報見出し、本文、表、主要リンク、JavaScriptなしでも必要な結論
Islandへ切り出す状態検索、絞り込み、診断、URL状態など、操作で変化する範囲だけ
配信と復旧直接URL、404、sitemap、dist/upload/の一致、戻す手順
採用しない条件認証・非公開データ・決済など、静的配信では責任を持てない要件

この記録は、Project AtlasAll Projectsで実例を照合し、Design Patternsで再利用できる判断へ変換します。自分の条件を当てはめるときはBuild Simulatorを使い、最後はAIサイトの公開前チェックリストで公開可否を確認します。

実例でHTMLとIslandの境界を照合する

フレームワークの機能表だけでは、どこまでを静的に残すかが決まりません。BUILD ORBITの30 Projectから、役割が異なる3例を同じ記録欄で照合します。これは利用者数や速度の比較ではなく、実装責務の比較です。

ProjectHTMLへ残すもの状態を持つ範囲採用しない前提
Local AI Compass診断の説明、開始ガイド、比較・トラブル記事PC条件と目的からのクライアント内診断PC環境を無視した一つの断定結果
ToolCompass購入ガイド、比較表、停止条件条件比較と購入前チェックの判定最新在庫や口コミをサーバーで保証する構成
BUILD ORBITNotes、Project、Pattern、品質説明Orbit・Simulatorなどの局所的な操作全文をクライアント描画するSPA

この表から先に決めるのは「Astroを使うか」ではなく、読者が操作しなくても受け取るべき判断材料は何かです。HTML側の結論・前提・次のリンクが定まらないままIslandを作ると、検索入口とno-JSの代替経路を同時に失います。実際の配信・同期条件は静的ホスティングでも成立するインタラクティブサイト構成へ渡します。

更新頻度が決めるもの

  • ほぼ固定: ビルドを手動・CI のどちらでも可。FTP 静的配信も現実的。
  • 月数回〜毎日: Content Collections で記事をデータとして扱い、build を自動化。キャッシュ戦略を決める。

更新が多いのに「毎回 FTP で手動 upload」だとヒューマンエラーが増えます。配信は更新頻度で選びます。

インタラクション密度は「動かす範囲」で決める

React Islands は「状態を持つ一部」だけをクライアント化します。密度が高いほど初期 JS が増えるため、INP(応答遅延)の予算と天秤に掛けます。

  • 最小: ほぼ静的、共有ボタン程度
  • 標準: フィルタ・診断・フォーム
  • 高い: リアルタイム描画、複数 Island 連携
  • 実験的: Canvas/SVG 多用(性能予算の検証必須)

採用後の実装境界は静的ホスティングでも成立するインタラクティブサイト構成で扱います。このNoteは「Astroを選ぶか」、リンク先は「選んだ後にHTMLと状態をどう分けるか」のownerです。

配信は「やり直しやすさ」で選ぶ

配信方式向くケース注意
FTP静的既存サーバーへ完成ファイルを置くupload同期・直接URL・rollback
マネージド静的配信build・preview・履歴を自動化するprovider側のbuild設定
repository型配信小規模な静的成果をGitから公開するbase path・公開範囲・release
サーバー実行認証やrequestごとのデータが要るruntime・費用・運用責任

BUILD ORBIT の Projectデータでは、静的配信で成立した機能が大半を占めます。SSR が本当に要るかを先に問います。

運用人数が決める「更新しやすさ」

1人なら、frontmatter の完結さ・テンプレート・自動チェックが命です。小規模チームならレビュー工程と品質ゲートを build に組み込みます。

公開前に確認すること

構成を決めたら、AIサイトの公開前チェックリスト で最終確認。特に「静的生成なのに動的機能が漏れていないか」「no-JS で本文が読めるか」を確認します。

避ける判断

「Astro が人気だから」「SPA より速いらしいから」だけでは構成を決めません。目的と更新頻度から逆算します。速さは構成の結果であり、目的ではありません。

よくある誤解

  • 「静的 = 地味」:インタラクティブ表現は Island で可能
  • 「Astro = ブログ専用」:診断・計算・ポートフォリオも静的で成立
  • 「 Islands は何でも React で書ける」:動かす範囲を絞らないと性能が落ちる

次の行動

  1. 目的を1文で書く
  2. 更新頻度を決める
  3. 動かす範囲を最小に絞る
  4. 配信を決める
  5. Build Simulator で構成を試す

確認した一次情報

  1. Astro: Why Astro(外部サイト) — 確認 2026/9/7
  2. Astro: Content Collections(外部サイト) — 確認 2026/9/7
  3. Astro: Deploy your Astro site(外部サイト) — 確認 2026/9/7
  4. React: Add React to an Existing Project(外部サイト) — 確認 2026/9/7
  5. web.dev: Core Web Vitals(外部サイト) — 確認 2026/9/7