Editorial feedback often arrives as one large sentence: “Publishing is still too hard.” If engineering treats that as a request for a full CMS redesign, the work gets risky quickly. Preview, validation, media upload, taxonomy, approvals, and search indexing all have different failure modes.
The faster path is to translate the complaint into smaller editorial jobs and ship one job at a time.
Start with the exact publishing pain
Ask what the editor was trying to do when the tool got in the way:
Draft a new article
Fix metadata on an existing article
Preview the homepage card
Upload a cover image
Schedule a post
Correct a published mistake
Find broken internal links
Each job maps to a different engineering slice. “Images are annoying” may not require a media library. It may require one optional cover image field, a stable upload folder, validation for file type, and a preview that shows the image where readers will see it.
Split a broad request into PR-sized changes
A real breakdown might look like this:
Request: "Make publishing safer"
PR 1: add schema validation for title, description, date, tags
PR 2: render homepage-card preview in the CMS
PR 3: validate cover image path and alt text
PR 4: add draft/future-date exclusion to RSS and sitemap
PR 5: add correction note field for published updates
Each PR has a visible acceptance check. Editors can confirm whether the slice solved the problem before the team builds the next layer.
Use different validation for drafts and published content
Editors need to save incomplete work. Public pages should not ship incomplete metadata. Treat those as two modes.
const publishedPostSchema = z.object({
title: z.string().min(8),
description: z.string().min(50).max(180),
pubDatetime: z.date(),
tags: z.array(z.string()).min(1),
cover: z
.object({
src: z.string(),
alt: z.string().min(12),
})
.optional(),
});
Draft validation can be looser. Publishing validation should protect navigation, search, RSS, social previews, and accessibility.
Keep the reader surface honest
Internal workflow fields should not leak into the public site. Status, priority, editor notes, review score, and workflow owner may be useful inside the CMS. Readers usually need a stable article, clear metadata, working navigation, RSS, contact, and correction paths.
If the site is static, do not imply live community features, private messages, or real-time membership just because a template has those components. Public behavior should match what the site can actually support.
Preserve correction history without overbuilding
Repository-backed content already has Git history, but non-engineers need a readable trail. A small correction field or issue link can be enough:
correction:
date: 2026-06-11
reason: "Updated broken preview instructions after CMS config changed."
requestedBy: "editorial-review"
The goal is not bureaucracy. It is making sure a future editor can answer, “Did this page change after publication, and why?”
Review editorial changes as workflows
A good review does not ask only whether the component renders. It asks whether the editor can complete the job:
Can a draft be saved while incomplete?
Does publish fail with a useful message when metadata is missing?
Does preview match the public route?
Are uploaded assets referenced through a stable path?
Can a correction be traced later?
Small workflow slices are easier to ship, easier to roll back, and easier for editors to judge. They also keep the public site focused on reading instead of exposing the machinery behind publishing.