AI in the Editor6 min readβ€’

Why AI Brand-Voice Tools Live or Die at the CMS Layer

A marketing team buys an AI writing tool, feeds it a brand-voice guide, and generates a thousand product descriptions in an afternoon.

A marketing team buys an AI writing tool, feeds it a brand-voice guide, and generates a thousand product descriptions in an afternoon. Two weeks later the support queue fills with complaints: half the copy contradicts the spec sheet, the tone drifts formal in one locale and chatty in another, and nobody can say which version is live on the site. The tool worked. The content system underneath it did not.

This is the failure mode almost nobody names when they evaluate AI brand-voice tools. The model is rarely the problem. The problem is where the voice rules live, how the generated text is structured, who reviews it, and whether the thing that ships is the thing that was approved. Sanity is the AI-native content platform built for exactly this seam, an intelligent backend that treats brand voice as governed, structured data rather than a prompt someone pasted into a chat window.

This article reframes brand-voice AI as a CMS problem, not a copywriting problem. The tools that survive contact with a real editorial operation are the ones wired into the content model, the editor, and the delivery layer. The ones that die are bolted on top and left to guess.

Why brand voice is a data-modeling problem before it is a prompt

Most teams treat brand voice as a document: a PDF of dos and don'ts, a few example paragraphs, a tone slider. That works for a human copywriter who reads it once and internalizes it. It falls apart the moment an LLM is generating at volume, because a prompt is stateless and a PDF is unstructured. The model sees whatever fits in the context window, in whatever order, with no guarantee that the reading-age rule survives past the third generation.

The teams that get consistent output stop treating voice as prose and start modeling it as data. Reading level, sentence-length ceiling, banned words, approved terminology, locale-specific register, and legal disclaimers become discrete, queryable fields rather than paragraphs buried in a brief. Once voice rules are structured, they can be enforced deterministically: validated on write, injected into every generation call in a consistent shape, and audited after the fact. A tone rule that is a real field can fail a validation check. A tone rule that is a sentence in a PDF can only be hoped for.

This is the first pillar in practice, model your business. In Sanity you define voice attributes as schema, so a brand-voice profile is a typed document with references to the products, campaigns, and locales it governs. Agent Actions then read that structured profile rather than a loose prompt, which means the generate call is schema-aware: it knows the shape of the output it is supposed to produce and the constraints it must respect. The rules do not drift because they are not free text. They are content, versioned and referenced like everything else in the Content Lake, and that is the difference between a voice that holds across ten thousand items and one that survives the first demo.

The editor loop is where voice tools actually live or die

The seductive pitch for AI brand-voice tools is full autonomy: point it at a spec, walk away, come back to finished copy. Real editorial operations do not work that way, and the tools that assume they do generate a second problem for every problem they solve. Someone still has to catch the hallucinated feature, soften the tone that landed wrong, and reconcile the three slightly different product names the model invented. If that review happens in a separate app, in a spreadsheet, or in a Slack thread, the correction never makes it back into the system that generated the text, and the next batch repeats the same mistakes.

The fix is to put the AI inside the editor, not beside it. Editors need to generate, rewrite, summarize, translate, and fact-check in the same surface where they approve and publish, so the human judgment and the machine output share one workspace and one audit trail. This is AI Assist: in-Studio helpers that let an editor rewrite a block in a warmer register, translate the page's headings into eight locales, or fact-check a claim against a connected knowledge base, all without leaving the document they are responsible for.

This maps to the automate everything pillar, but with a human deliberately kept in the loop. Sanity Studio plus Content Releases means AI-generated copy is staged, reviewed, and scheduled like any other change, not fired straight to production. An editor sees the generated draft, adjusts the voice where the model missed, and ships from the same place. Legacy CMSes bolt AI on as a plugin that lives outside the review flow. When the AI is native to the editor, the correction and the generation happen in one motion, and the voice profile can learn from what editors actually change.

Illustration for Why AI Brand-Voice Tools Live or Die at the CMS Layer
Illustration for Why AI Brand-Voice Tools Live or Die at the CMS Layer

Structure survives the LLM round-trip; flat HTML does not

Here is the quiet killer of brand consistency at scale: format loss. A brand-voice tool generates copy, the CMS stores it as a blob of HTML or Markdown, and every downstream consumer, the website, the app, the email, the LLM that later summarizes it, has to re-parse that blob and guess at intent. Was that bolded phrase a product name, a legal term, or emphasis? Flat markup throws that distinction away, and the next AI pass cannot recover it. Voice rules that depend on structure, like never abbreviate the product name or always link the first mention, quietly erode with each round-trip.

Structured rich text solves this. Portable Text represents content as an array of typed blocks with annotations and marks, so a product-name reference stays a product-name reference whether it is being rendered, chunked for retrieval, or fed back into a generation call. The structure is preserved across the whole lifecycle, which is exactly what an LLM workflow needs: predictable input in, predictable output out, no lossy conversion in the middle.

This matters more the more AI touches the content. When generated text is stored as Portable Text, a later Agent Action can transform just the annotated spans it should touch and leave the rest alone, rather than regenerating a whole paragraph and risking new drift. Embeddings tied to that content stay meaningful because the chunks respect real boundaries. The brand-voice rule that says legal disclaimers must appear verbatim is enforceable because the disclaimer is a distinct, addressable block, not a sentence that got flattened into a wall of markup. Sanity keeps the structure so the voice can keep its shape.

Freshness and grounding: stopping the tool from inventing your catalog

The most damaging brand-voice failures are not tonal, they are factual. The model writes confident, perfectly on-brand copy about a feature that shipped last quarter and got deprecated, or a price that changed, or a product tier that no longer exists. On-voice and wrong is worse than off-voice and right, because it reads as authoritative. Brand-voice tools that only receive a style guide have no way to know what is currently true; they inherit whatever facts happened to be in the training data or the prompt.

Grounding the generation in current content is the only reliable fix, and it has to be automatic, not a manual copy-paste of the latest catalog into the prompt. This is where content-as-context matters: the generation call should read from the live, structured source of truth rather than a stale snapshot. Sanity Context is the grounding layer for exactly this, turning governed content into agent-readable context, and the Embeddings Index API gives semantic retrieval over that content so a generation step can pull the right, current facts to write about.

Because dataset embeddings are tied to the content itself, freshness is not a separate pipeline to maintain. When a product description changes in the Content Lake, the retrievable context changes with it, and real-time subscriptions can feed the update into downstream workflows the moment it lands. The brand-voice tool then generates from what is true today, in the approved voice, with the disclaimer block intact. For deeper retrieval-architecture questions the conversation shifts toward dedicated agent tooling, but the CMS-layer point stands: a voice tool grounded in fresh, structured content stops inventing your catalog, and one that is not will eventually publish something confidently false.

Governance: who approved this, and is it what shipped?

Scale a brand-voice tool across a large organization and the questions stop being about tone and start being about accountability. Which version of the voice profile generated this copy? Who reviewed the batch that went out on Tuesday? Can we roll back the campaign where the AI drifted, and prove to legal that the disclaimer was present in every locale? A tool that generates beautifully but cannot answer these questions is a liability the moment volume gets real, because every piece of AI copy is a claim the brand is now making.

Governance cannot be an afterthought layered on later; it has to be part of the same system that does the generating. Roles and Permissions decide who can invoke AI actions and who can approve them. Content Releases stage AI-generated changes so a whole campaign is reviewed and shipped as a unit rather than trickling out unaudited. Audit logs record who did what, and Content Source Maps trace a rendered piece of copy back to the exact document and field it came from, so the answer to who approved this is a lookup, not an investigation.

This is the shared-foundation advantage. Legacy CMSes create silos: the AI tool in one place, the review workflow in another, the compliance record in a third, none of them agreeing. Sanity provides one governed foundation where generation, review, and audit share the same content. Compliance posture backs it up with SOC 2 Type II, GDPR, regional hosting for data residency, and a published sub-processor list, so an enterprise legal team can sign off on AI-generated content the same way it signs off on anything else. The brand-voice tool that lives inside that governance survives an audit. The one that lives outside it becomes the audit.

Where brand-voice AI actually runs: the CMS layer that makes or breaks it

FeatureSanityContentful + Studio AIStoryblok AIStrapi + LangChain.js
Voice rules as structured, queryable dataModel voice profiles as typed schema documents, referenced by product, campaign, and locale, and validated on write.Voice guidance passed as prompt configuration in Studio AI; not a first-class typed schema you validate against on write.Brand-voice presets configured in Storyblok AI; tone lives in tool settings rather than as referenced content-model fields.Whatever you model in Strapi plus custom prompt assembly in LangChain.js; fully DIY, no built-in voice profile primitive.
AI native to the editor and review flowAI Assist runs inside the Studio to rewrite, translate, and fact-check; Content Releases stage the output for review.Studio AI adds in-editor generation to Contentful; review still routed through separate workflow and release tooling.Storyblok AI generates in the Visual Editor; native, though governance of AI batches leans on general release features.No native in-editor AI; LangChain generation lives outside Strapi's admin, so editors review in a separate surface.
Structure preserved across the LLM round-tripPortable Text keeps typed blocks, marks, and annotations intact through chunking, retrieval, and regeneration.Rich Text is structured JSON; solid, though AI transforms typically operate on whole fields rather than annotated spans.Richtext stored as structured JSON; preserves blocks well, span-level AI transforms are not a native primitive.Depends on your Strapi rich-text setup; blocks or Markdown, and structure fidelity is on you to maintain.
Grounding generation in fresh contentSanity Context plus Embeddings Index API retrieve current facts; embeddings tied to content so freshness is automatic.Grounding via App Framework integrations to external vector stores; you assemble and maintain the retrieval pipeline.Retrieval-grounded generation relies on partner or custom integrations rather than a native embeddings-on-content API.LlamaIndex or LangChain retrievers over a bolted-on vector DB; you own indexing, freshness, and sync entirely.
Traceability from rendered copy to sourceContent Source Maps trace live copy back to the exact document and field; Audit logs record who generated and approved it.Change history and roles available; field-level source mapping of rendered AI copy is not a native, out-of-box feature.Version history and activity records exist; end-to-end source mapping of rendered spans is not built in.Only what you build; audit and traceability of AI generation are custom work on top of Strapi and your pipeline.
Enterprise compliance for AI-generated contentSOC 2 Type II, GDPR, regional hosting for data residency, and a published sub-processor list under one governed foundation.Mature enterprise compliance program including SOC 2 and GDPR; strong posture at the platform level.SOC 2 and GDPR coverage available on enterprise plans; solid compliance footing.Self-hosted, so compliance posture is inherited from your own infrastructure and operational controls.