2026年选择无头CMS:Payload CMS vs Hygraph对比

在2026年选择无头CMS就像在哲学辩论中选择立场。一方是Payload CMS——开源、自托管、代码优先,越来越受欢迎的开发者想要完全控制。另一方是Hygraph(前身为GraphCMS)——一个托管的GraphQL原生SaaS平台,为你处理基础设施。我在过去两年中使用两者都发布了生产项目,诚实的答案是:没有哪一个普遍更好。但有一个几乎肯定更适合你的具体情况。让我们详细了解为什么。

目录

Payload CMS vs Hygraph 2026: Self-Hosted vs GraphQL SaaS Compared

架构和哲学

这两个CMS来自根本不同的世界观,理解这一点比任何功能对比表都更重要。

Payload CMS:代码优先,自托管

Payload是一个TypeScript优先、开源的无头CMS,运行在你自己的基础设施上。自从Payload 3.0版本发布(在2024年底推出,整个2025年不断改进),它直接构建在Next.js之上。这不是打字错误——Payload实际上就是一个Next.js应用。你的CMS管理面板、API路由和前端都可以存在于同一项目中。

配置即代码。你在TypeScript文件中定义集合、字段、钩子和访问控制。没有用于架构构建的UI——你编写它、提交它、版本控制它。这取决于你的团队是觉得很棒还是很糟糕。

Payload支持MongoDB和PostgreSQL(通过Drizzle ORM)作为数据库适配器。截至2026年初,Postgres适配器已经成熟,这是我对大多数新项目的推荐。

Hygraph:GraphQL原生SaaS

Hygraph采取相反的方法。这是一个完全托管的平台,具有可视化架构构建器、托管的GraphQL API和零基础设施管理。你在他们的UI中建模你的内容、配置webhooks、设置环境,然后就可以开始了。

在幕后,Hygraph运行在全球分布式边缘基础设施上。他们的内容API是GraphQL专用的(没有REST端点),这是一个有意的设计决定。他们已经深入投资GraphQL生态系统——包括支持内容联合、远程源和联合类型。

Hygraph不是开源的。你在租赁该平台。

开发者体验

本地开发

使用Payload,本地开发只需pnpm dev。你在配置更改时获得热重载,管理UI在localhost上运行,你可以在一个进程中调试所有内容。由于它是Next.js,你的整个堆栈——前端、CMS、API——都在一个next dev命令中运行。这真的很不错。在开发过程中没有远程API的网络延迟,没有模拟层,没有单独的CMS实例要管理。

Hygraph要求你在开发过程中针对他们的云API工作。他们确实提供开发环境和分支(在更高层的计划中),但你总是在发出网络请求。对于远离他们边缘节点的地区的团队,这可能会在开发过程中增加显著延迟。另外,设置为零——注册、创建项目、开始查询。

TypeScript支持

Payload自动从你的配置生成类型。由于你的架构就是TypeScript,类型始终是同步的。这是那些听起来很小但直到你处理过一个CMS(架构与现实漂移)才明白的事情之一。

Hygraph要求你从他们的GraphQL架构生成类型,通常通过GraphQL代码生成器。它有效,但这是你管道中的额外步骤。如果有人在Hygraph UI中更改架构但没有更新生成的类型,你会在运行时发现。

管理UI

Payload的管理面板是基于React的,完全可自定义。你可以交换字段组件、添加自定义视图、注入你自己的路由。从Payload 3.x来看,它看起来干净现代,尽管不会赢得任何设计奖项。这是函数式的。

Hygraph的管理UI经过精心打磨,专为内容编辑而构建。内容编辑体验对于非技术用户来说可能更顺畅。侧边栏导航、资源管理和内容阶段工作流从纯UX角度来看感觉更成熟。

功能 Payload CMS Hygraph
本地开发 完整本地堆栈 仅云API
TypeScript 原生、自动生成 通过GraphQL代码生成
管理定制 完整React组件覆盖 有限(自定义侧边栏应用)
内容编辑器UX 好的、开发者导向 精心打磨、编辑导向
设置时间 5-15分钟(需要Node + DB) 2分钟(注册即用)

内容建模

Payload的方法

Payload中的内容建模在代码中进行。这是一个简化的示例:

import { CollectionConfig } from 'payload'

export const Articles: CollectionConfig = {
  slug: 'articles',
  admin: {
    useAsTitle: 'title',
  },
  fields: [
    {
      name: 'title',
      type: 'text',
      required: true,
    },
    {
      name: 'content',
      type: 'richText',
    },
    {
      name: 'author',
      type: 'relationship',
      relationTo: 'users',
    },
    {
      name: 'publishedAt',
      type: 'date',
    },
  ],
}

这被版本控制、在PR中审查并与你的应用代码一起部署。需要添加字段?更改配置、如果你使用Postgres运行迁移、部署。心智模型与你如何使用ORM定义数据库架构非常接近。

Payload支持块、数组、组、选项卡、条件逻辑和自定义字段类型。blocks字段类型对于构建灵活的页面构建器特别强大。

Hygraph的方法

Hygraph为你提供可视化架构编辑器。你拖放字段类型、配置验证、设置模型之间的引用。这很直观且快速进行初始设置。非开发者可以理解架构(尽管他们是否应该更改它是另一回事)。

Hygraph支持组件(可重用字段组)、联合类型(用于多态引用)和称为"远程源"的概念,让你将外部API直接联合到你的内容图中。最后一个功能对于某些架构来说真的很独特和有用。

缺点是什么?Hygraph中的架构更改发生在他们的UI中。虽然他们在企业计划上提供环境分支和架构迁移,但你不会获得Payload原生提供的相同代码审查工作流。

Payload CMS vs Hygraph 2026: Self-Hosted vs GraphQL SaaS Compared - architecture

API设计和查询

Payload:REST + GraphQL

Payload开箱即用地提供REST API和GraphQL API。REST API从你的集合自动生成并遵循可预测的约定。GraphQL API也自动生成。

但这里是大多数人错过的东西:Payload也暴露了一个本地API,让你直接从服务器端代码查询你的数据库,没有任何HTTP开销:

// 服务器组件或API路由
const articles = await payload.find({
  collection: 'articles',
  where: {
    publishedAt: { less_than: new Date().toISOString() },
  },
  depth: 2,
  limit: 10,
})

这个本地API非常快,因为它完全跳过网络层。当你使用Next.js和Payload在同一项目中构建时,这是你获取内容的主要方式。这是一个巨大的优势。

Hygraph:仅GraphQL

Hygraph一直使用GraphQL。没有REST API。你的查询看起来像这样:

query GetArticles {
  articles(where: { publishedAt_lt: "2026-01-01" }, first: 10) {
    title
    content {
      html
    }
    author {
      name
    }
  }
}

GraphQL API设计得很好,具有扎实的过滤、分页和排序。他们支持内容阶段(DRAFT、PUBLISHED)、字段级本地化以及从边缘提供缓存内容的高性能读取端点。

如果你的团队已经大量使用GraphQL——比如你使用Apollo客户端或urql——Hygraph感觉很自然。如果你的团队不了解GraphQL,学习曲线是真实的。

性能和可扩展性

Payload的性能完全取决于你的基础设施。在装有PostgreSQL和正确索引的合理VPS上运行,我看到本地API的P95响应时间低于30毫秒,REST/GraphQL端点约为50-80毫秒。但你负责扩展。需要处理流量峰值?那是你的问题——添加更多容器、扩展数据库、设置缓存。

Hygraph为你处理扩展。他们的边缘缓存读API(他们称之为"内容API")从全球分布式CDN节点提供响应。典型的响应时间是全球20-50毫秒。对于阅读量大的内容站点,这很难在没有显著基础设施工作的自托管端实现。

对于我们的无头CMS开发项目,我们发现Payload搭配正确缓存(在Next.js中使用ISR或按需重新验证)对于大多数实际流量模式的性能与Hygraph的边缘API相当。

2026年定价细分

这是事情变得有趣的地方。让我列出真实数字。

计划 Payload CMS Hygraph
免费/开源 $0(自托管,所有功能) 免费层:2个座位、100万API调用/月、500内容条目
小团队 ~$20-50/月托管成本 初始:$0(有限)、增长:自定义定价
中等规模 ~$100-300/月(VPS + DB + 存储) 专业版:起价~$399/月
企业级 $500-2000/月基础设施(差异很大) 企业版:自定义定价(~$1500+/月)
Payload Cloud 每个项目起价$30/月 不适用

Payload CMS本身是MIT许可证,完全免费。你为你自己的托管基础设施付费(服务器、数据库、存储)。一个Hetzner VPS($20/月)、一个托管Postgres实例($15-30/月)和S3兼容存储($5-10/月)为你获得了不到$60/月的生产就绪设置。Payload还提供Payload Cloud——他们的托管服务——每个项目起价$30/月,如果你不想管理自己的基础设施这会简化部署。

Hygraph的免费层可用于小项目和原型。但一旦你需要超过2个团队座位、自定义角色、多个环境或更高的API限制,你就跳到他们的付费计划。专业层在2026年大约运行$399/月,这是一个有意义的经常性成本。企业定价是协商的,但通常从约$1,500/月开始。

这里的细微差别是:如果你考虑管理基础设施的开发者时间,Hygraph的定价对于没有DevOps专业知识的小团队可能实际上更便宜。反过来说,对于管理许多项目的机构,Payload的免费核心意味着你的每个项目的边际成本只是托管。

自托管vs SaaS:真正的权衡

这是核心的张力,我想对两方都诚实。

自托管(Payload)获胜的原因

  • **数据所有权。**你的数据存在于你的数据库中。就是这样。没有供应商可以更改他们的条款、淘汰功能或扣留你的内容。
  • **没有API速率限制。**你受基础设施限制,而不是任意的计划层。
  • **大规模成本。**一旦你超过某个流量阈值,自托管就便宜得多。
  • **定制深度。**钩子、自定义端点、自定义字段类型、管理UI覆盖——没有什么你不能改变。
  • **与你的应用共存。**在同一进程中运行Payload和Next.js消除了内容查询的网络延迟。

SaaS(Hygraph)获胜的原因

  • **零运维负担。**没有要修补的服务器、没有要备份的数据库、没有要担心的扩展。
  • **开箱即用的全球边缘性能。**Hygraph的CDN支持API在没有你配置任何内容的情况下快速到达任何地方。
  • **内容联合。**Hygraph的远程源功能让你将来自外部API的数据直接拉入你的内容图。这对可组合架构来说真的很强大。
  • **非开发者友好。**当架构构建器是可视化的时,入门内容编辑更简单。
  • **正常运行时间保证。**Hygraph在他们的企业计划上提供SLA。自托管正常运行时间是你的问题。

对于基础设施管理是一个优势的团队(或与处理它的Next.js开发机构合作的团队),Payload是更强的选择。对于想要纯粹专注于内容和前端开发的团队,Hygraph消除了真正的摩擦。

认证和访问控制

Payload

Payload具有内置身份验证。用户、会话、电子邮件验证、密码重置——这些都在这里。你可以使用函数定义字段级和集合级访问控制:

access: {
  read: ({ req: { user } }) => {
    if (user?.role === 'admin') return true
    return {
      publishedAt: { less_than: new Date().toISOString() },
    }
  },
  update: ({ req: { user } }) => user?.role === 'admin',
}

这是真实的、代码级的访问控制。你可以编写任何你想要的逻辑。需要对外部服务进行检查?前进。需要基于当前文档的字段限制访问?完成。

Hygraph

Hygraph使用具有可配置权限的永久认证令牌系统。你创建具有特定内容阶段访问权限的令牌(例如,仅读取PUBLISHED、读取DRAFT、写入)。对于更细粒度的控制,他们支持与角色相关的自定义权限。

它有效,但不如Payload的方法灵活。你通过他们的UI配置权限,而不是在代码中表达它们。复杂场景——比如"编辑器只能更新他们分配的类别中的文章"——在Hygraph中需要创意解决方法,但在Payload中很简单。

插件生态和可扩展性

自3.0以来,Payload的插件生态已经大幅增长。值得注意的插件包括:

  • @payloadcms/plugin-seo — SEO元数据字段和预览
  • @payloadcms/plugin-form-builder — 动态表单创建
  • @payloadcms/plugin-search — 全文搜索集成
  • @payloadcms/plugin-redirects — 重定向管理
  • 社区插件用于Stripe集成、AI内容生成等

编写自定义插件很简单,因为他们只是修改Payload配置的函数。

Hygraph的可扩展性通过以下方式提供:

  • 应用和侧边栏扩展 — 编辑器中的自定义UI元素
  • Webhooks — 在内容更改时触发外部工作流
  • 远程源 — 联合外部GraphQL和REST API
  • 管理API — 以编程方式管理架构和内容

Hygraph的应用市场已经增长,但仍小于Payload的插件生态。不过,远程源功能是Payload没有等效功能的东西。能够直接将Shopify产品目录缝合到你的内容图中而不需要中间件确实很有用。

何时选择哪个

在用两者处理多个生产项目后,这是我诚实的推荐框架:

选择Payload CMS如果:

  • 你是一个(或与一个)熟悉TypeScript和基础设施的开发团队合作
  • 你需要对CMS行为进行深度定制
  • 数据所有权和供应商独立性对你很重要
  • 你正在构建一个Next.js应用并希望本地API性能优势
  • 你是一个机构管理许多项目并想最小化每个项目的许可成本
  • 你需要复杂、代码驱动的访问控制

选择Hygraph如果:

  • 你想要零基础设施管理
  • 你的团队已经投资于GraphQL
  • 你需要来自多个源的内容联合
  • 你的内容编辑需要开箱即用的精心打磨、可视化编辑体验
  • 你需要保证全球边缘性能而无需配置CDN
  • 你的项目时间紧张,你承受不起设置时间

对于我们在Social Animal构建的许多项目——特别是AstroNext.js项目——Payload已经成为我们的默认推荐。共存故事、TypeScript原生方法和零许可成本与我们的工作方式一致。但我们也为需要托管平台简单性的团队的客户发布了Hygraph支持的项目。

选择任何一个都没有问题。问题在于在没有理解权衡的情况下选择一个。如果你不确定哪个方向对你的项目是正确的,我们很乐意讨论

常见问题

Payload CMS真的免费吗? 是的。Payload CMS是MIT许可证,核心完全免费,包括所有功能——没有"高级层"将功能锁定在付费墙后面。你为你自己的托管基础设施(服务器、数据库、存储)付费。Payload还提供Payload Cloud,他们的托管服务,如果你不想管理自己的基础设施,每个项目起价$30/月。

Hygraph可以不用GraphQL知识工作吗? 内容编辑方面不需要任何GraphQL知识——编辑只是使用可视化界面。但是,从Hygraph查询内容的开发者必须使用GraphQL。没有REST API替代。如果你的前端团队不熟悉GraphQL,需要考虑一个学习曲线。

Payload CMS如何处理媒体和文件上传? Payload有一个内置上传系统,支持本地文件存储、S3兼容存储(AWS S3、Cloudflare R2、MinIO)和其他适配器。它包括自动图像调整大小、焦点选择,并根据你的配置生成响应图像大小。对于大多数项目,将其连接到S3存储桶或Cloudflare R2是推荐的方法。

Hygraph支持本地化吗? 是的。Hygraph拥有内置的字段级本地化,这意味着你可以标记单个字段为可本地化,而不是复制整个内容条目。这是一个强大的功能——你在项目设置中配置你的语言环境,然后内容编辑可以在编辑器中切换语言。Payload也支持本地化,具有类似的字段级方法。

我可以从Hygraph迁移到Payload(或反之)吗? 迁移可能但在任何方向都不是平凡的。两个系统都有API,让你导出和导入内容。主要挑战是内容建模差异——特别是富文本,它在每个系统中的存储方式不同。计划一个迁移脚本和彻底测试。对于大型内容库,预算至少2-4周用于清理迁移。

哪个CMS更适合电子商务? 都不是电子商务平台,但两者都与无头商务解决方案整合得很好。Hygraph在这里有优势,因为其远程源功能可以直接将产品数据从Shopify或commercetools联合到你的内容图中。Payload也可以很好地与电子商务后端合作,但你通常会使用钩子和自定义端点自己构建集成。对于严肃的电子商务项目,考虑结合专用商务后端使用任一CMS。

Payload 3.x与Payload 2.x相比如何? Payload 3.x是一次重大重写。最大的变化是Payload现在作为Next.js插件运行,而不是Express应用。这意味着你的CMS和前端共享相同的进程,启用本地API以实现零延迟查询。它也添加了PostgreSQL支持(通过Drizzle ORM)、实时预览和重新设计的管理UI。如果你使用过Payload 2.x并觉得它有限,3.x值得再看一遍——这是一个根本不同的体验。

2026年Payload CMS的最佳托管设置是什么? 对于大多数项目,我们推荐:VPS或容器服务(Railway、Render、Fly.io或Hetzner VPS with Docker)、托管PostgreSQL(Neon、Supabase或你的VPS提供商的产品)和Cloudflare R2用于媒体存储。小到中等项目的总成本通常运行$40-80/月。对于更大的部署,Vercel与Payload Cloud或Kubernetes设置有效。检查我们的定价页面了解我们如何为客户项目处理基础设施设置。