メインコンテンツまでスキップ

PayloadCMS とは / なぜ今

この章のゴール

  • Headless CMS の中で PayloadCMS が何をしている存在なのかを言語化できる
  • 3.x で起きた変化 (Next.js 同居・Server Components 対応・Postgres stable) の意味を理解する
  • Figma 買収後の現状を踏まえ、他 CMS (Strapi / Sanity / Contentful) との立ち位置の違いを掴む
  • 自分のプロジェクトに 向く / 向かない の判断軸を持つ

Headless CMS とは (1 段落で復習)

「Headless CMS」とは、コンテンツの管理画面 (Admin UI) と保存先 (DB) を提供しつつ、表示部 (フロントエンド) を持たない CMS のことです。WordPress のようにテーマ層 + DB + 管理画面を 1 つに詰めた「モノリシック CMS」と対比すると、Headless はフロントエンドを自由に選べる代わりに、自分でフロントエンドを実装する必要があります。表示部はクライアント (Next.js / Astro / iOS / Android など) から API 経由でコンテンツを取得して構築します。

PayloadCMS のポジション

PayloadCMS は Headless CMS の 1 つで、次の特徴で他と区別されます。

特徴内容
OSS (MIT)コードはすべて公開・改変可能。SaaS ロックインなし
Self-hosted自分のインフラ・自分の DB で動かす (Vercel / Railway / Docker / 自前 Node サーバなど)
Code-first configpayload.config.ts という TypeScript ファイル 1 本でコンテンツモデルから認証まで定義
Next.js native (3.x)Next.js プロジェクトに 同居 install できる CMS (公式自称: "the first CMS that installs directly into any Next.js app")
3 層 APIREST / GraphQL は config から自動生成され、Local API は getPayload() で初期化して Node 内で直接呼び出せる

公式は自身を「Next.js fullstack framework」とも表現しています。CMS という枠を超え、Next.js を使ったフルスタック開発のフレームワーク的な位置取りを志向しているのが特徴です。

3.x で何が変わったか

PayloadCMS は 2024 年 11 月 19 日に v3.0 stable をリリースし、3.x 系で次の変化が起きました。

  • Next.js への同居: 2.0 (2023-10-09) で Lexical / Postgres / Live Preview が導入され、3.0 (2024-11-19) で Next.js native architecture が完成しました。3.x からは Next.js の app/ ディレクトリにそのまま install され、Admin UI も API も Next.js の route として動作します
  • Server Components 対応: 3.x の Local API は Next.js の React Server Components (RSC) から getPayload() で直接呼び出せます。HTTP を介さず、Node プロセス内でデータ取得が完結
  • Postgres adapter stable: 従来 MongoDB が標準でしたが、3.x で @payloadcms/db-postgres が stable 化。Drizzle ORM ベースの migration を備えます
  • SQLite / Vercel Postgres adapter: 同じ Drizzle ベースで SQLite と Vercel Postgres にも対応
  • Lexical Rich Text editor stable: 旧 Slate から Lexical (Meta 開発) へ移行し、inline/block components を持つリッチエディタが標準に
  • 依存削減: v2.0 の 88 依存から 27 依存 へ大幅圧縮 (ESM 採用、React Compiler 前倒し)

これらは「Headless CMS を Next.js プロジェクトの中に シームレスに溶かす」という方向の更新であり、Next.js を主軸に開発しているチームにとっては運用形態がかなり変わります。

Figma 買収の文脈

PayloadCMS の公式ドキュメントには冒頭に 「Payload is now part of Figma!」 と掲示されています。Figma がデザイン・コンテンツ周辺の開発者ツールを取り込む流れの一環で、買収後も OSS / MIT ライセンスは継続、ロードマップに大きな転換は起きていません。

買収以後にエンタープライズ機能 (SSO / AI 自動埋め込み / publishing workflow など) が拡充されていることは公式から確認できます。OSS コアの自由度は維持されつつ、エンタープライズ層が厚くなる構造です (買収後のロードマップの大幅な変更については公式アナウンスを未確認)。

他 Headless CMS との比較

主要な Headless CMS との立ち位置の違いを整理します。

CMSホスティングコンフィグの主軸DBフロント統合
PayloadCMSSelf-host (OSS)TypeScript ファイルPostgres / Mongo / SQLiteNext.js 同居
StrapiSelf-host (OSS)管理画面 + JSON / JSPostgres / SQLite / MySQL (v5 から NoSQL 非対応)API 経由 (任意のフロント)
SanitySaaSStudio + GROQ クエリSanity 独自 (リアルタイム Content Lake)API 経由 (任意のフロント)
ContentfulSaaS管理画面Contentful 独自API 経由 (任意のフロント)
DirectusSelf-host (Source-available)管理画面 + JSONRDB 各種 (SQL)API 経由 (任意のフロント)

PayloadCMS が際立つ点は 「OSS / Self-host」 × 「TypeScript config」 × 「Next.js 同居」 の組み合わせです。Sanity / Contentful のような SaaS ベンダーロックインを避けつつ、Strapi の「管理画面でモデル定義」よりも コードで完結させたい、という志向のチームに刺さります。

ライセンスについて

Directus は 2024 年に BSL (Business Source License) へ移行し、2026 年 5 月の v12 リリースで MSCL (Monospace Sustainable Core License) へ再移行しています。年商 $5M 未満・従業員 50 人未満の組織は引き続き無償で利用可能ですが、純粋な OSS ではない点に注意してください (Directus blog: Evolving Our License)。

向く用途・向かない用途

PayloadCMS が 向く 典型例:

  • Next.js (App Router) で公開サイトや SaaS アプリを構築しており、コンテンツ管理層を自前で持ちたい
  • データを自分の DB / 自分のクラウドに置きたい (法務・コンプライアンス要件 / SaaS 課金回避)
  • TypeScript で型安全にコンテンツモデルを定義したい
  • 認証・認可・メディアアップロードを 1 つの CMS で完結させたい (Auth0 / S3 を別立てで組まないで済む)

PayloadCMS が 向かない / 慎重に検討すべき 典型例:

  • 非エンジニアだけでコンテンツモデル自体を変更したい (モデル変更は payload.config.ts 編集 + デプロイが必要)
  • Edge runtime / Static export のみでホストしたい (PayloadCMS は Node runtime 必須)
  • 複数プロジェクトで同じコンテンツストアを共有したい場合の中央集権配信 (SaaS ベンダーが提供する CDN 配信網に分がある)
  • 「とにかく早く動かしたい」場合の SaaS 比較: Contentful / Sanity は初期セットアップが速い

この章のまとめ

  • PayloadCMS = OSS / Self-host / TypeScript config / Next.js native の Headless CMS
  • 2024 年 11 月の 3.0 stable が転換点 — Next.js への同居、Server Components 対応、Postgres / SQLite adapter、Lexical stable
  • Figma 買収 は OSS コアに影響なく、エンタープライズ層を厚くする方向
  • 「自分の DB に Next.js と同居させたい」チームには第一候補。Edge / Static のみのホスティングや、非エンジニアによるモデル変更には不向き

次に読む

次章 02 Core Concepts — Config-First / Collections / Globals では、PayloadCMS の中核である payload.config.ts と Collections / Globals の概念を扱います。

参考