Prompt
How do I set up a headless CMS for draft-to-publish workflows in a small news publisher?
Latest observation
Here’s a practical way to set up a headless CMS for a draft → review → publish workflow for a small news publisher.
1) Pick a CMS that supports editorial workflow
Look for:
- Draft/publish states
- Scheduled publishing
- Roles and permissions
- Version history / revisions
- Webhooks or API
- Optional: preview environments
Good options for small teams:
- Contentful — polished workflow, good roles, easy integrations
- Strapi — flexible, self-hosted, open source
- Sanity — very strong editorial experience and real-time collaboration
- Storyblok — visual editing, good for marketing/news hybrid teams
- Directus — great if you want CMS on top of an existing SQL database
If you want simplest editorial UX, Sanity or Contentful are common picks.
2) Define the content model for news
For a news publisher, keep the schema simple and reusable.
Typical content types:
- Article
- headline
- dek / summary
- body
- slug
- hero image
- author
- categories/tags
- publication date
- status
- SEO fields
- Author
- name
- bio
- photo
- Section
- politics, sports, local, etc.
- Optional:
- Breaking News alert
- Gallery
- Newsletter signup block
Recommended fields for article:
titleslugexcerptbodyfeaturedImageauthortagssectionstatus(draft,in_review,approved,published,archived)scheduledPublishAtpublishedAtseoTitleseoDescription
3) Design the editorial workflow
For a small newsroom, a simple workflow is usually enough:
- Draft
- Reporter writes and saves article
- In review
- Editor reviews, leaves comments, requests changes
- Approved
- Editor signs off
- Scheduled
- Article is queued for a future publish time
- Published
- Content becomes public on site/app
- Archived
- Optional for old or retired content
If your CMS supports only draft/published, you can still add custom workflow fields like status and reviewNotes.
4) Set roles and permissions
A small publisher usually needs these roles:
- Reporter
- create/edit own drafts
- submit for review
- Editor
- edit any content
- approve/reject
- schedule publishing
- Publisher/Admin
- final publish control
- manage users, settings, integrations
- Contributor/Freelancer
- create drafts only
- no publish rights
Important permissions:
- Prevent reporters from publishing directly
- Allow editors to preview draft content
- Restrict who can overwrite published content
- Keep an audit log of changes
5) Build preview before publish
Preview is critical for news.
How it works:
- The CMS stores draft content
- Your frontend has a preview mode
- Editors can click “Preview” to see the article before it goes live
Implementation idea:
- Frontend route like
/preview/[slug]?token=... - Preview API fetches draft content from CMS using a secure token
- Show draft content with a clear “Preview” banner
This lets editors check:
- layout
- image cropping
- headline length
- pull quotes
- embeds
- mobile responsiveness
6) Set up publishing and scheduling
You need two publishing paths:
Manual publish
- Editor clicks “Publish”
- CMS sends webhook to frontend or cache layer
- Site updates immediately
Scheduled publish
- Editor sets
scheduledPublishAt - CMS or a cron job publishes at that time
- Frontend gets notified via webhook
If the CMS doesn’t handle scheduling well, use:
- a background job
- serverless cron
- queue worker
7) Connect CMS to your frontend
Typical architecture:
- CMS stores content
- Frontend reads via API/GraphQL
- CDN/cache serves the public site
- Webhook triggers rebuild or cache purge on publish
Common frontend stacks:
- Next.js
- Nuxt
- SvelteKit
- Astro
For a news site, Next.js is a common choice because it handles:
- server-side rendering
- static regeneration
- preview mode
- good performance
8) Make publishing fast and reliable
News publishing needs speed.
Recommended setup:
- Use webhooks when content changes
- Clear cache or regenerate only affected pages
- Support breaking news updates without full site rebuild
- Keep homepage and section pages efficient
If using Next.js:
- Use Incremental Static Regeneration
- Revalidate article and section pages on publish
- Add preview mode for drafts
9) Add editorial safety checks
Before publishing, ensure:
- headline length is acceptable
- required fields are filled
- slug is unique
- featured image exists
- author is assigned
- article has section/tag
- spellcheck or basic validation passes
You can add:
- custom validation rules in CMS
- “pre-publish checklist”
- required approval for sensitive categories
10) Store media properly
For images and videos:
- Use the CMS asset library or external storage like S3
- Generate optimized sizes
- Store alt text
- Track image credits
- Keep metadata for copyright/compliance
For newsrooms, image workflow matters almost as much as article workflow.
11) Add analytics and audit logs
You’ll want to know:
- who edited what
- when it was published
- how often stories are updated
- which stories are breaking most traffic
Useful features:
- version history
- change log
- user activity log
- publishing timestamps
- traffic analytics integration
12) Suggested minimal stack for a small news publisher
A practical low-complexity setup:
- CMS: Sanity or Strapi
- Frontend: Next.js
- Hosting: Vercel / Netlify / Cloudflare
- Assets: CMS storage or S3
- Preview: CMS preview mode + frontend preview route
- Publishing: webhook-triggered revalidation
- Search: Algolia or built-in site search
13) Example workflow in practice
- Reporter creates article in CMS
- Editor gets notified
- Editor opens preview link
- Editor requests revisions or approves
- Article is scheduled or published
- Webhook updates the website
- Article appears live on homepage/section page
- Later edits create a new revision and republish automatically
14) Common pitfalls
Avoid these:
- choosing a CMS without preview support
- giving everyone publish access
- rebuilding the whole site for every small edit
- overcomplicating the schema
- not planning image handling
- no audit trail
- no backup/export strategy
15) Best-practice recommendation
For a small publisher, the best balance is usually:
- Simple schema
- 3–4 roles max
- Draft/review/publish with preview
- Webhook-driven publishing
- Scheduled publishing
- Version history
If you want, I can also give you:
- a recommended CMS comparison table,
- a sample content model, or
- a step-by-step implementation plan in Next.js + Sanity/Strapi.
Observation history
Unlock observation history
Create a free Obsurfable account to unlock historical responses, model comparisons, and deeper brand intelligence.
How did Obsurfable measure this prompt?
Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.
Which AI systems does Obsurfable collect answers from?
OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, and Meta AI.