| Publish to live | Ahead: 2 to 3 seconds, measured | “In 60 seconds or less” on the high-frequency CDN1 |
|---|
| While the cache refreshes | Readers get the previous copy while the edge refetches | “If a cache is stale, it’s refreshed in the background”1 |
|---|
| What a publish clears | Only the entries and models it touched | Sync Tags, so “updates only affect what needs to be refreshed”1 |
|---|
| Content model | Built in the admin, drag and drop | TypeScript in your repo, deployed with CI/CD2 |
|---|
| Query languages | REST and GraphQL | GROQ and GraphQL5 |
|---|
| GraphQL after a model change | Ahead: Follows your models. Nothing to deploy. | Run sanity graphql deploy to update the API3 |
|---|
| Reviewing changes | One queue of every unpublished change, with word-level diffs | Compare any two versions2 |
|---|
| Scheduling | Wall-clock time plus a time zone | Specific dates and times, per release4 |
|---|
| Named releases and rollback | Not yet. One publish queue. | Ahead: Releases you preview together and roll back4 |
|---|
| Editing together | No co-editing, comments or tasks yet | Ahead: Multiplayer editing; comments and tasks on Growth2,5 |
|---|
| Live updates in an open page | Not yet | Ahead: Live Content API1 |
|---|
| Writing content over an API | Not in /api/ or GraphQL, which are read-only | Ahead: Mutation API: create, patch and delete documents7 |
|---|
| MCP server | Runs locally with an API key. 19 tools; none change content. | Ahead: Hosted, signs in with OAuth or a token, creates and patches documents6 |
|---|
| Roles | Four fixed: admin, developer, content, viewer | 2 on Free, 5 on Growth, custom on Enterprise5 |
|---|
| Datasets | One set of content per project, no separate environments yet | Ahead: 2 on every plan5 |
|---|