Sanity:一个可以随便改的开源 CMS

sanity-io/sanity 在 GitHub 上拿到 6,186 Star。

Sanity 是一个开源内容管理平台,分两部分:Studio 是编辑器前端,Content Lake 是云端数据仓库。Studio 用 React 写的,你能改它的一切。

正文顶部截图

为什么会有这个东西

传统 CMS 有个老问题,内容和展示绑在一起。WordPress 的模板决定了内容怎么输出,换个前端就得重写一套。内容团队和开发团队经常因为"这个字段能不能加"吵起来。

Sanity 的做法是把内容完全结构化。你定义 schema,说清楚每个文档有哪些字段、什么类型、怎么关联。内容存进 Content Lake,前端通过 API 拿数据,用什么框架都行。

编辑器那边也不死板。Studio 里的每个输入组件都能替换成你自己的 React 组件。想要一个自定义的颜色选择器?写个组件挂上去就行。想要一个地图选点的字段?也能做。

它能干什么

Studio 是一个单页应用,装好就能用。实时协作,多个人同时编辑同一篇文档,互相能看到对方在改什么。

查询语言叫 GROQ,语法比 GraphQL 简单。不用写 resolver,不用定义 schema 文件,直接在查询里做过滤、排序、投影。也支持 GraphQL API,看你习惯哪个。

内容模型是代码定义的。写一个 JS 文件,描述文档类型和字段,跑一下就生效。改了模型,Studio 自动刷新,不用重新部署。

图片处理内置了。上传图片自动提取 EXIF、尺寸、主色调这些元数据。要裁剪、缩放,在 URL 上加参数就行。

文本编辑器用的是 Portable Text,富文本内容存的是结构化 JSON。想输出 Markdown?写个序列化器。想输出 HTML?也行。同一份内容可以同时给网站、App、邮件用。

README区域截图

怎么装

一条命令:

npm create sanity@latest

yarn 和 pnpm 也能用:

yarn create sanity@latest
pnpm create sanity@latest

装完会引导你选模板、建项目、配置数据集。免费计划包含一定的带宽和存储,超出部分按量计费。

Studio 本地跑起来之后,localhost:3333 就是你的编辑器。改 schema 文件,页面自动热更新。

和别的 CMS 比怎么样

WordPress 是最老牌的,但它的内容模型是数据库驱动的,字段类型有限,自定义要写 PHP 插件。前端和后端耦合,做 headless 模式得装额外插件。

Strapi 也是开源 headless CMS,Node.js 写的,内容模型通过后台界面配置。但它的编辑器自定义能力弱一些,实时协作支持不如 Sanity。

Contentful 是商业产品,功能成熟但价格不低。Sanity 的免费计划对小项目够用,Studio 又是开源的,成本上更友好。

Directus 走的是数据库优先路线,直接映射你已有的数据库表。Sanity 则是 schema 优先,你定义内容模型,它管底层存储。两种思路,看团队习惯。

适合什么场景

内容站点用 Sanity 很合适。博客、文档站、营销页面,内容团队在 Studio 里编辑,开发团队用 Next.js 或者别的框架从 API 拉数据渲染。

电商也行。商品信息、分类、促销活动这些结构化内容,定义好 schema 之后,内容团队自己维护,不用每次都找开发改模板。

多渠道分发的场景是 Sanity 的强项。同一份内容通过 API 推给网站、小程序、邮件系统、App,不用重复录入。

团队协作多的内容项目也适合。实时协作、历史版本、细粒度的权限控制,这些 Studio 都有。

技术栈

Studio 基于 React,用 TypeScript 重写过。插件系统让你能扩展几乎任何功能。官方提供了一堆插件:Google Maps 输入、颜色选择器、代码高亮、Markdown 导入等等。

Content Lake 是托管服务,你不用操心运维。API 支持 REST 和 GROQ,也有 GraphQL 端点。Webhook 可以在内容变更时触发外部系统。

SDK 覆盖了主流语言:JavaScript/TypeScript、Python、PHP、Java、.NET、Golang。不管你后端用什么技术栈,都能接。


Star 6,186,社区活跃度还行。Studio 完全开源,MIT 协议。如果你在找一个能深度定制的 CMS,Sanity 值得花半天时间跑一遍 demo 试试。

ar 6,186,社区活跃度还行。Studio 完全开源,MIT 协议。如果你在找一个能深度定制的 CMS,Sanity 值得花半天时间跑一遍 demo 试试。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐