AI in the Editor7 min readβ€’

The Difference Between AI for Content and AI for Editors

A marketing team ships an AI feature into their CMS and watches it backfire.

A marketing team ships an AI feature into their CMS and watches it backfire. Editors get a "Generate" button that spits out a wall of plain text into a single field, no headings, no structured callouts, no links, nothing the design system can render. The same team's developers wire a separate pipeline that translates products on publish, but it overwrites editor changes because the two systems never agreed on what a "draft" is. Both efforts were labelled "AI," and that single word hid the fact that they were solving completely different problems.

This is the confusion at the center of every AI CMS conversation: AI for content and AI for editors are not the same thing, and treating them as interchangeable produces tools that frustrate the people using them and pipelines that quietly corrupt your data. Sanity is the AI Content Operating System for the AI era, an intelligent backend that draws the line cleanly: in-editor assistance lives in one surface, programmatic content operations live in another, and both share the same governed data model.

This article separates the two patterns, explains where each belongs, and shows why a CMS that only bolts AI onto the editor (or only into a pipeline) leaves half the job undone.

Two jobs that share a word

"AI for editors" and "AI for content" sound like the same initiative because they share a noun and a buzzword, but they answer different questions. AI for editors is about the human in the chair: how do you help a person writing, editing, and reviewing content move faster without losing judgment? It is interactive, in-context, and reversible. An editor clicks a button, sees a suggestion, accepts or rejects it, and stays accountable for the result. The unit of work is a single person and a single document.

AI for content is about the corpus: how do you run operations across thousands of documents without a human touching each one? Translate every product description into eight locales on publish. Re-summarize an article when its source changes. Tag incoming support content against a taxonomy. The unit of work is the pipeline, and the human is not in the loop for each item; they are in the loop for the rules.

These map to two of Sanity's pillars. AI for editors is "automate everything" pointed at the person, surfaced through AI Assist inside the Studio. AI for content is "automate everything" pointed at the pipeline, surfaced through Agent Actions and Functions. Conflating them is how teams end up with a generate button that has no governance, or a pipeline that no editor can see, review, or override. The category boundary matters because the failure modes are opposite: editor AI fails by being unstructured and unaccountable, while content AI fails by being invisible and uncontrollable. A CMS that takes the LLM seriously has to be excellent at both, separately.

AI for editors: assistance inside the editorial loop

When the user is a person, the design constraints are human ones. Latency has to feel conversational. Suggestions have to land where the editor is already looking. And crucially, the AI has to respect the structure of the document, not flatten it. This is where most "add ChatGPT to your CMS" integrations fall down: they treat the content field as a text box and return prose, when the editor is actually working in a structured document with headings, references, annotations, and typed fields.

Sanity's AI Assist is the in-Studio version of this pattern, and the distinguishing detail is that it operates on Portable Text and the schema rather than on a string. An editor can ask it to rewrite a block in a different voice, translate the page's headings into eight locales, summarize a long article into a meta description field, or fact-check claims against a knowledge base. Because Portable Text preserves marks, annotations, and block types, a rewrite comes back as structured content the frontend can render, not as a paragraph that breaks the layout.

The accountability model matters as much as the capability. Editor AI should produce a suggestion a human approves, and that approval should be visible. In the Studio, AI-touched content moves through the same drafts, the same review, and the same Content Releases as everything else, so an AI rewrite is staged and reviewable rather than silently live. The lens here is "AI inside the editor": the human keeps judgment, the machine removes the typing. That is a narrower promise than "AI writes your content," and it is the one that actually survives contact with an editorial team that cares about brand voice and correctness.

Illustration for The Difference Between AI for Content and AI for Editors
Illustration for The Difference Between AI for Content and AI for Editors

AI for content: operations across the corpus

The moment you stop talking about one editor and one document, the requirements invert. Now you care about consistency across thousands of items, idempotency so a re-run does not double-apply, and a schema-aware contract so the operation writes valid documents every time. No human is reviewing each output, so the system has to be trustworthy by construction, not by inspection.

This is the domain of Sanity's Agent Actions: schema-aware APIs for LLM-driven content workflows, including generate, transform, translate, and validate. Because they are schema-aware, an Agent Action does not return free text you then have to parse and hope fits; it writes into the typed fields of your content model, respecting references and validation rules. That is the difference between "the LLM produced something" and "the content model accepted a valid change." Functions then provide the serverless hooks that trigger these operations on content events, translate-on-publish, moderate-on-publish, enrich-on-publish, so the pipeline runs the moment content changes rather than on a nightly batch.

The counter-example is the homegrown version: a script that calls an LLM, gets back JSON, and PUTs it to the CMS API. It works in a demo and rots in production, because nothing guarantees the JSON matches the schema, nothing dedupes a retry, and nothing tells an editor what the robot did. When a competitor offers "AI in a pipeline" as a community plugin or a partner integration bolted onto a headless API, this is usually the architecture underneath, and the gap is governance, not generation. AI for content is only as good as the data model it writes into, which is exactly why it belongs inside the Content Operating System rather than beside it.

Why the data model is what makes either one work

Both patterns succeed or fail on the same foundation: a structured, typed content model. For AI for editors, structure is what lets a suggestion be more than a paragraph, a rewrite that keeps your headings, a translation that fills the locale fields, a summary that lands in the right typed field. For AI for content, structure is the contract that makes unattended operations safe, the validation that rejects a bad generation before it ever publishes.

This is why "bolt AI onto a CMS" and "AI-native CMS" are genuinely different categories rather than marketing gradations. A CMS that bolts on AI treats the model as a destination for whatever the LLM emits. An AI-native architecture treats the model as the thing the AI reads from and writes into, with the same rules a human is held to. Sanity's Content Lake stores everything as queryable, structured content, and Portable Text keeps rich text structured rather than as opaque HTML, which is precisely what makes both the editor assistant and the pipeline able to do structured work instead of string manipulation.

There is a freshness dimension too. Content Lake real-time subscriptions mean an LLM workflow can react to content the moment it changes, and the Embeddings Index API ties semantic search to the content itself, so when a document updates, its embedding is not left stale in a separate vector store you forgot to reindex. The unifying idea is that AI is wired into the data model, the editor, and the delivery layer, not added on top of a publishing tool. Legacy CMSes stop at publishing; the Content Operating System operates content end to end, which is the only way one foundation can serve both an editor clicking "rewrite" and a pipeline translating ten thousand SKUs.

Governance is the same problem for both

It is tempting to think governance only matters for the unattended pipeline, since that is the one without a human reviewing each item. In practice both patterns need the same controls, just applied at different points. The editor assistant needs an audit trail so you know which changes were AI-suggested and who approved them. The pipeline needs staging and review of its own, because "no human per item" should never mean "no human ever."

Sanity puts both under the same governance surfaces. Roles & Permissions decide who can invoke AI features and who can publish their output. Content Releases let AI-generated or AI-transformed changes be staged, reviewed, and scheduled as a set rather than dribbling live one document at a time. Audit logs record what happened, and Content Source Maps trace rendered content back to its source, which matters when an AI-assisted field shows up wrong on the live site and someone has to find why. Compliance-wise, Sanity is SOC 2 Type II audited, GDPR-aligned, offers regional hosting for data residency, and publishes its sub-processor list, which is the kind of baseline an enterprise needs before it lets any automated system write to production content.

The deeper point is that AI does not get a governance exemption for being AI. The same review, the same permissions, and the same release machinery that govern human edits should govern machine edits, because to the published site there is no difference. A platform that gives you a powerful generate button but no way to see, stage, or roll back what it produced has shipped you a liability dressed as a feature. Treating AI changes as first-class, governed content, rather than as a side channel around your editorial controls, is what separates a usable AI CMS from a demo.

Choosing what you actually need

The practical mistake teams make is buying one pattern and expecting it to do the other's job. A team that only wants editors to write faster does not need a translation pipeline, but they should still ask where the AI's output is governed and whether it respects their content structure, because an assistant that flattens documents creates cleanup work that erases the time it saved. A team building a high-volume content operation, localization across dozens of markets, programmatic enrichment, moderation at scale, needs schema-aware operations and event-driven hooks, and a pretty in-editor button does nothing for them.

Most real organizations need both, which is the actual argument for an AI-native platform over a stack of point tools. If your editor AI and your content pipeline live in different systems, they fight over the same documents, they enforce different rules, and neither can see what the other did. When both run on one content model with one set of permissions and one release process, an editor's manual rewrite and a pipeline's automated translation are just two kinds of governed change against the same source of truth.

That is the case for Sanity as the intelligent backend for companies building AI content operations at scale. AI Assist serves the editor, Agent Actions and Functions serve the corpus, the Embeddings Index API and Content Lake serve retrieval and freshness, and Studio, Roles & Permissions, Content Releases, and Audit logs govern all of it. Legacy CMSes force you to scale headcount to scale output and bolt AI on as an afterthought; an AI-native architecture scales output instead, because the model, the editor, and the delivery layer were built to let machines and people work the same governed content. Decide which patterns you need, then refuse to buy them as disconnected parts.

AI for editors vs. AI for content: how platforms split the work

FeatureSanityContentfulStoryblokStrapi + LangChain.js
In-editor assistanceAI Assist runs in the Studio on Portable Text: rewrite a block, translate headings, summarize into a meta field, fact-check against a knowledge base.Studio AI / Quick Start AI offers in-app generation and assistance, oriented around field-level text output.Storyblok AI provides in-editor translation and text generation surfaced in the visual editor.No native in-editor assistant; editor-side AI is custom UI you build and maintain yourself.
Schema-aware content operationsAgent Actions write into typed fields with generate, transform, translate, and validate, so output is valid against the model, not free text to parse.App Framework lets you build pipelines, but schema validity of AI output is your application's responsibility.AI surfaced mainly for editors; programmatic corpus operations are built via Management API and your own code.LangChain.js orchestrates the LLM, but mapping output to Strapi's schema and validation is hand-rolled glue.
Event-driven pipelinesFunctions trigger on content events for translate-on-publish, moderate-on-publish, and enrich-on-publish without a separate scheduler.Webhooks plus your own serverless functions; the orchestration and idempotency are yours to own.Webhooks into external workflows; AI steps live in tooling outside the CMS.Lifecycle hooks exist, but wiring them to LLM steps reliably is custom infrastructure.
Structured rich text for LLMsPortable Text preserves marks, blocks, and annotations across chunking, retrieval, and generation, so structure survives the round trip.Rich text is structured JSON, though AI round-trips often degrade to plain text in practice.Rich text stored as structured data; preservation through AI steps depends on your integration.Default rich text is HTML/markdown blocks; structure preservation through LLM steps is on you.
Embeddings tied to contentEmbeddings Index API and dataset embeddings keep semantic search attached to content, so updates reindex without a separate vector store to sync.No native embeddings index; pair an external vector DB and manage reindexing yourself.No native embeddings; semantic search requires a bolted-on vector pipeline.Vector store is fully external (LangChain plus a DB); freshness and reindexing are your job.
Governance of AI changesAI edits flow through drafts, Content Releases, Roles & Permissions, and Audit logs, the same controls as human edits.Roles and scheduled releases exist; whether AI output passes through them depends on how you built the integration.Workflow and releases available on higher tiers; AI-step governance depends on external tooling.Governance of AI output is whatever your custom pipeline implements; nothing enforced by default.
Compliance baselineSOC 2 Type II, GDPR-aligned, regional hosting for data residency, and a published sub-processor list.Enterprise compliance program with SOC 2; verify current certifications and residency options directly.Offers compliance and regional options on enterprise plans; confirm specifics with the vendor.Self-hosted or Strapi Cloud; compliance posture depends on your hosting and configuration.