LabHub

ブログ

ヘッドレス CMS 2026 — Sanity / Contentful / Strapi 5 / Payload (Figma 買収) / Directus / Keystatic / Storyblok 徹底比較

한국어English日本語

プロローグ — 「コンテンツはどこに住むべきか」

2026 年、あるマーケティング PM の言葉。

「Next.js で作り直しています。コンテンツモデルは誰が決めますか? マーケターがテキストと画像を直接変更できる必要があって、多言語対応も必要で、ビルダーでページを組み立てたくて、それでいて開発者は MDX でも書けると嬉しい」

これが 2026 年のごく普通の要望だ。「CMS を入れよう」が答えではなくなった。エディタ UX、データモデル、API の形、デプロイモデル、価格、ロックイン という五軸のマトリクスで、自分たちのチームの位置を見つけなければならない。

この記事は 2026 年 5 月時点のヘッドレス CMS 市場を 1 枚に並べ、それぞれの CMS の強み・弱み・直近 12 ヶ月の変化を整理する。Strapi 5 の Document Service(2024.9)、Payload の Figma 買収(2024.9)を巡る OSS コミュニティの論争、GraphCMS から改名した Hygraph の現状 まで — 決定を後回しにせず、一度整理しよう。


1. 2026 年のヘッドレス CMS マップ — 四つの部族

まず市場を 4 つの部族に切る。1 つの CMS が 2 つの部族にまたがる場合もあるが、主たる運用モデル で分類する。

部族定義代表例
SaaS ホステッドベンダーがホスト、API のみ公開、月額課金Sanity, Contentful, Storyblok, Hygraph, Prismic, Dato, ButterCMS, Cosmic, Hashnode, microCMS, Newt
オープンソースセルフホスト自前サーバーにデプロイ、DB は自分で運用Strapi 5, Payload, Directus, KeystoneJS, Ghost, WordPress, Statamic
Git ベースコンテンツを Git リポジトリにコミット、ビルド時に処理Keystatic, Outstatic, decap CMS(旧 Netlify CMS), Contentlayer/MDX
ビジュアル・ページビルダーマーケターがドラッグでページ自体を作るBuilder.io, Storyblok(ビジュアル面), Webflow, Notion

この分類が重要なのは、エディタ UX、運用責任、ロックインの度合い が部族ごとに違うからだ。

軸でまとめるとこうなる。

SaaSOSSGit ベースビジュアル
マーケター UX最高普通低い最高
開発者の自由度普通高い非常に高い低い
ロックインリスクほぼなし
運用負担なしほぼなしなし
価格利用量比例インフラコストほぼ無料利用量比例

ここからは部族別に見ていく。


2. Sanity — リアルタイムの標準

Sanity は 2017 年にノルウェーで始まり、2026 年のヘッドレス CMS 市場で 開発者がもっとも好む SaaS の地位を固めつつある。

コア特性

// schemaTypes/post.ts — Sanity Studio のスキーマ
import { defineField, defineType } from 'sanity'

export const post = defineType({
  name: 'post',
  type: 'document',
  fields: [
    defineField({ name: 'title', type: 'string', validation: (r) => r.required() }),
    defineField({ name: 'slug', type: 'slug', options: { source: 'title' } }),
    defineField({ name: 'body', type: 'array', of: [{ type: 'block' }] }),
    defineField({
      name: 'author',
      type: 'reference',
      to: [{ type: 'author' }],
    }),
  ],
})

GROQ のクエリはこんな見た目。

// Next.js から記事一覧を取得
import { createClient } from '@sanity/client'

const client = createClient({
  projectId: 'abc',
  dataset: 'production',
  apiVersion: '2026-05-16',
  useCdn: true,
})

const posts = await client.fetch(`
  *[_type == "post" && defined(slug.current)]
  | order(publishedAt desc)[0...10]{
    title, "slug": slug.current, publishedAt,
    author->{name, avatar}
  }
`)

2026 年の変化

強みと弱み

強み弱み
リアルタイム協調 UXGROQ の学習コスト
schema-as-code(Git 追跡)自由度が高すぎて初期構造化に時間がかかる
画像 CDN と変換を内蔵価格が利用量で急速に上がる
強力な参照(references)マイグレーションは自分で書く

誰が選ぶべきか


3. Contentful — エンタープライズのデフォルト

Contentful は 2013 年ベルリン発で、2026 年も エンタープライズヘッドレス CMS のデフォルト だ。大企業の RFP にはほぼ必ず登場する。

コア特性

// Contentful の GraphQL クエリ
const query = `
  query {
    postCollection(limit: 10, order: publishDate_DESC) {
      items {
        title
        slug
        publishDate
        author { name }
      }
    }
  }
`

const res = await fetch(
  `https://graphql.contentful.com/content/v1/spaces/${process.env.CONTENTFUL_SPACE_ID}/environments/master`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${process.env.CONTENTFUL_TOKEN}`,
    },
    body: JSON.stringify({ query }),
  },
)

強みと弱み

強み弱み
エンタープライズ SLA・SOC 2・HIPAA価格が非常に速く上がる
ロケール・環境分離が成熟無料 tier が狭く段差が大きい
GraphQL・REST・CDN すべて安定スキーマがコードではない(UI 定義)
ワークフロー・承認フロー豊富UX は SaaS の中では保守的

誰が選ぶべきか


4. Strapi 5(2024.9) — Plugins v5 + Document Service

Strapi はフランス発の OSS ヘッドレス CMS。Node/TS ベース、MIT ライセンス。2024 年 9 月に Strapi 5 が正式リリースされ、2026 年現在の入り口は v5。

v5 のキーチェンジ

// Strapi 5 の Document Service API 例(カスタムルート内)
const documents = await strapi.documents('api::article.article').findMany({
  filters: { publishedAt: { $notNull: true } },
  sort: { publishedAt: 'desc' },
  populate: ['author'],
  status: 'published',
  locale: 'en',
})

// drafts と published を明示的に扱うのが v5 の違い
const draft = await strapi.documents('api::article.article').findOne({
  documentId: 'abc123',
  status: 'draft',
})

強みと弱み

強み弱み
MIT、セルフホスト可運用責任は自分(DB・画像・バックアップ)
プラグインエコシステムi18n・draft モデルが v4 から v5 で作り直し
TS フレンドリー管理 UI は SaaS 競合より素朴
Strapi Cloud オプションあり大規模データセットで admin パフォーマンス報告

誰が選ぶべきか


5. Payload(Figma 買収 2024.9) — TS-first の論争

Payload は TypeScript-first のヘッドレス CMS。2021 年登場、急速に開発者ファンを集めた。2024 年 9 月、Figma が Payload を買収 し、直後に OSS コミュニティで懸念と論争が起きた — 「Figma が Payload を自社製品に統合するにつれ、オープンソースとしてのアイデンティティが薄れるのではないか」。

2026 年 5 月時点の観察: Payload は MIT ライセンスを維持 しており、コアはオープンに活発開発中だ。だが、Payload Cloud(ホステッド)Figma 側の統合機能 が以前より速く増えている。コミュニティの一部はこれを「段階的な enclosure」と見ている。

コア特性

// payload.config.ts
import { buildConfig } from 'payload'
import { mongooseAdapter } from '@payloadcms/db-mongodb'

export default buildConfig({
  collections: [
    {
      slug: 'posts',
      fields: [
        { name: 'title', type: 'text', required: true },
        { name: 'slug', type: 'text', required: true, unique: true },
        {
          name: 'content',
          type: 'richText',
        },
        {
          name: 'author',
          type: 'relationship',
          relationTo: 'users',
        },
      ],
      access: {
        read: () => true,
        create: ({ req }) => Boolean(req.user),
      },
    },
  ],
  db: mongooseAdapter({ url: process.env.MONGODB_URI! }),
})
// Next.js のサーバーコンポーネントから直接問い合わせ
import { getPayload } from 'payload'
import config from '@/payload.config'

export default async function PostPage({ params }: { params: { slug: string } }) {
  const payload = await getPayload({ config })
  const result = await payload.find({
    collection: 'posts',
    where: { slug: { equals: params.slug } },
    limit: 1,
  })
  const post = result.docs[0]
  return <article>{post.title}</article>
}

Figma 買収の含意

誰が選ぶべきか


6. Directus — DB から API へ、逆向きに作る

Directus の出発点は変わっている。ほとんどの CMS が「管理 UI から DB へ」と進むのに対し、Directus は 既存の SQL DB に被せて、自動で管理 UI と REST/GraphQL API を生成 する。つまり既存データをそのまま CMS にする。

コア特性

-- 既存の articles テーブル
CREATE TABLE articles (
  id SERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  slug TEXT UNIQUE NOT NULL,
  content TEXT,
  published_at TIMESTAMPTZ
);

このテーブルを Directus に繋ぐだけで、即座に管理 UI と API が生まれる。

# REST で取得
curl "https://cms.example.com/items/articles?fields=*,author.*&filter[status][_eq]=published"

# GraphQL で取得
curl -X POST https://cms.example.com/graphql \
  -H "Content-Type: application/json" \
  -d '{"query":"{ articles(filter:{status:{_eq:\"published\"}}){ title slug }}"}'

強みと弱み

強み弱み
既存 DB をそのまま活用コンテンツ専用ユースケースには過剰一般化
BSL ライセンス(小規模は無料)BSL なので一部企業は要検討
Flows で強力な自動化リッチテキスト・ブロックモデルは SaaS 競合より弱い
データスキーマが SQL そのままi18n は自前モデリング

誰が選ぶべきか


7. Cosmic / Builder.io — ビジュアル + ヘッドレス

この 2 つは「マーケターがページを自分で作る」が中心価値。

Cosmic

Builder.io

// Next.js で Builder.io のページをレンダー
import { builder, BuilderComponent } from '@builder.io/react'

builder.init(process.env.NEXT_PUBLIC_BUILDER_KEY!)

export default async function Page({ params }: { params: { slug: string[] } }) {
  const content = await builder
    .get('page', { url: '/' + params.slug.join('/') })
    .toPromise()

  return <BuilderComponent model="page" content={content} />
}

誰が選ぶべきか(両方)

ただし デザインシステムの一貫性 を失いやすい。利用可能なコンポーネントカタログを事前に絞っておくのが鍵。


8. Keystatic(Thinkmill) — Git ベース TS-first

Keystatic はオーストラリアの Thinkmill が作り、Mark Pinches がコアメンテナーの 1 人。2023 年登場で、2026 年現在 Git ベース CMS の TS-first 代表 として定着した。

コア特性

// keystatic.config.ts
import { config, fields, collection } from '@keystatic/core'

export default config({
  storage: { kind: 'github', repo: 'me/blog' },
  collections: {
    posts: collection({
      label: 'Posts',
      slugField: 'title',
      path: 'content/posts/*',
      format: { contentField: 'content' },
      schema: {
        title: fields.slug({ name: { label: 'Title' } }),
        publishedAt: fields.date({ label: 'Published' }),
        content: fields.markdoc({ label: 'Content' }),
      },
    }),
  },
})

強みと弱み

強み弱み
コンテンツが自分のリポジトリにある(ロックイン 0)同時編集は Git workflow の制約で弱い
TS スキーマ、型安全マーケターが GitHub アカウント・OAuth に慣れる必要
無料(ホスティング・DB なし)大容量アセット(画像)は CDN を別途構成
ビルド時にそのまま取り込み多段階ワークフロー(承認)は PR で解決

誰が選ぶべきか


9. Storyblok — ビジュアルエディタの強者

Storyblok はオーストリア発の SaaS ヘッドレス CMS。2017 年スタートで、ビジュアルエディタ が最大の差別化。

コア特性

// Next.js で Storyblok ページを取得
import { storyblokInit, apiPlugin, getStoryblokApi } from '@storyblok/react'

storyblokInit({ accessToken: process.env.STORYBLOK_TOKEN, use: [apiPlugin] })

export default async function Page({ params }: { params: { slug: string[] } }) {
  const slug = params.slug?.join('/') || 'home'
  const sb = getStoryblokApi()
  const { data } = await sb.get(`cdn/stories/${slug}`, { version: 'published' })
  return <StoryblokComponent blok={data.story.content} />
}

強みと弱み

強み弱み
マーケターに優しいビジュアルエディタブロックコンポーネントのカタログ設計が重要
多言語が成熟価格が利用量で急上昇
グローバル CDNコンテンツモデルが SaaS UI 定義(schema-as-code 弱い)
ワークフロー豊富API レスポンスのサイズが大きい

誰が選ぶべきか


10. Hygraph(旧 GraphCMS) — GraphQL ファースト

GraphCMS は 2022 年に Hygraph へリブランド。名前は変わったが、GraphQL ファーストのヘッドレス CMS というアイデンティティはそのまま。

コア特性

# Hygraph GraphQL クエリ
query Posts {
  posts(orderBy: publishedAt_DESC, first: 10, locales: [en, ko]) {
    id
    title
    slug
    publishedAt
    author {
      name
    }
  }
}

誰が選ぶべきか


11. Prismic / Hashnode / Outstatic — その他 SaaS と Git

Prismic

Hashnode

Outstatic


12. Dato CMS / ButterCMS / KeystoneJS — その他ヘッドレス

Dato CMS

ButterCMS

KeystoneJS


13. Ghost / WordPress headless / Webflow / Notion — 非伝統的 CMS

この 4 つは「ヘッドレス専用に生まれていないがヘッドレスとして使う」部族。

Ghost

WordPress headless

Webflow

Notion as CMS


14. decap CMS(旧 Netlify CMS) / Statamic — Git ベースとフラットファイル

decap CMS(旧 Netlify CMS)

Statamic


15. 韓国 — Markdown CMS トレンドとカカオコンテンツ

2026 年の韓国でのヘッドレス CMS 利用パターンの特徴。

Markdown / Git ベース利用の増加

カカオコンテンツ / Brunch / Naver

SaaS 利用

韓国語検索・SEO の考慮


16. 日本 — microCMS、Newt、Storyblok 日本

日本は ローカル SaaS CMS が強い市場だ。

microCMS

// microCMS クライアント
import { createClient } from 'microcms-js-sdk'

const client = createClient({
  serviceDomain: 'example',
  apiKey: process.env.MICROCMS_API_KEY!,
})

const data = await client.get({
  endpoint: 'posts',
  queries: { limit: 10, orders: '-publishedAt' },
})

Newt

Storyblok 日本進出

Contentful・Sanity 利用


17. 誰が何を選ぶべきか — 意思決定ガイド

ユースケース第 1 候補第 2 候補備考
個人開発者ブログKeystatic / OutstaticHashnodeロックイン 0、Git フレンドリー
会社の技術ブログSanityStrapi 5複数著者・多言語
スタートアップマーケサイトStoryblok / Builder.ioSanityマーケター自律性
エンタープライズ本社サイトContentfulSanitySLA・コンプライアンス
ECSanity / StoryblokBuilder.ioページと商品の分離
多言語グローバルサイトSanity / ContentfulHygraphi18n の成熟度
データ + CMS 統合DirectusPayload既存 DB の活用
TS フルスタックPayloadStrapi 5コードファースト
セルフホスト必須Strapi 5 / Payload / Directus / KeystoneJSGhost運用責任は自分
日本市場中心microCMS / NewtStoryblok 日本ローカル UX
韓国グローバルサイトSanity / StoryblokContentful多言語・CDN
ライター・ニュースレターGhostHashnodeメール配信内蔵
WordPress からの移行WP headlessStrapi 5段階的移行
デザイナー主導サイトWebflowBuilder.ioデザインファースト
初期 MVP を速くNotion as CMSHashnode0 日セットアップ

選択ミスのシグナル

マイグレーションコストの目安


おわりに — コンテンツは資産

CMS を選ぶことは コンテンツ資産をどこに置くかを決める ことだ。ツールは 5 年ごとに乗り換えられるが、その間に積み上げたコンテンツは自社の資産だ。

2026 年 5 月時点の 1 行サマリ。

ルールは 2 つだけ。第 1 に、データ export を保証する CMS を選べ。 第 2 に、マーケターが毎日使う UI を自分で 1 度使ってみろ。 残りはカタログのディテール。


参考 / References

コメント

まだコメントはありません。

ログインするとコメントできます