層2 必要な役割 › CMSの方式の違い
CMSの方式の違い
ひとことで言うと
Astroのサイトでコンテンツを扱う方式には、リポジトリのファイルで管理する方式、別サービスのヘッドレスCMSを使う方式、EmDashのようにAstroのアプリケーションの中に管理画面を持つ方式があります。3つは解決する問題が異なります。
図:編集者が作業する場所とコンテンツの流れ
図のテキストを読む
flowchart LR
subgraph FB["ファイルで管理するAstroのコレクション"]
FB1["リポジトリのファイル"] -- "開発時・ビルド時に読む" --> FB2["Astroのサイト"]
end
subgraph HL["別サービスのヘッドレスCMS"]
HL1["CMSの管理画面<br/>(別のアプリケーション)"] -- "ネットワークのAPI" --> HL2["Astroのサイト"]
end
subgraph ED["EmDash(管理画面とサイトが1つのアプリケーション)"]
ED1["管理画面"] -- "データベースに保存" --> ED3["データベース"]
ED3 -- "リクエスト時に読む" --> ED2["Astroのサイト"]
end
図の補足
公式の比較表の内容です。
| 判断のポイント | EmDash | ファイルで管理するAstroのコレクション | 別サービスのヘッドレスCMS |
|---|---|---|---|
| 編集者が作業する場所 | Astroのアプリケーションが提供する管理画面 | リポジトリのファイルと開発ツール | CMSの提供元、または別に運用する管理画面のアプリケーション |
| ページがコンテンツを読み込むタイミング | サーバーで描画するページへのリクエスト時 | 開発中、またはサイトのビルド時 | ビルド時またはリクエスト時に、ネットワークのAPIを通じて |
| コンテンツモデルを定義する場所 | EmDashのデータベース(管理画面またはCLIから) | リポジトリのソースコード | CMSの設定 |
| チームが運用するもの | Astroのアプリケーション、データベース、メディアの保存先 | Astroのアプリケーションとビルドの仕組み | Astroのアプリケーションと、CMSのアカウントまたはサービス |
| リリースの分け方 | 管理画面とフロントエンドを一緒にデプロイする | コンテンツとフロントエンドは通常一緒にビルドする | CMSとフロントエンドを別々にデプロイする |
公式は、それぞれが合う条件を次のように説明しています。
- ファイルで管理する方式:コンテンツがバージョン管理の対象に属し、書き手がGitの作業に慣れている場合。
- 別サービスのヘッドレスCMS:複数のアプリケーションが、独立してデプロイされる1つのコンテンツサービスを必要とする場合。
- EmDash:編集者とAstroのサイトが1つのアプリケーションであることに利点があり、チームがまとめてデプロイすることを受け入れられる場合。
WordPressはこの比較表に含まれていません。WordPressとEmDashの対応は、CMSとはと公式「WordPress開発者のためのEmDash」で扱います。
根拠にした公式ページ
- EmDash公式「なぜEmDashか」(本サイトの訳):https://docs.emdashcms.com/why-emdash/