State machine · Diagram Design

Article lifecycle

The four states a post passes through from draft to archive, with the rejection loop made explicit. Published is the state the team optimizes for — hence coral.

CREATE SUBMIT APPROVE EXPIRE PURGE REJECT · REVISE STATE Draft unpublished STATE In Review awaiting approval STATE Published live on site STATE Archived noindex · hidden redirect retained

THE HEADLINE

Published is the win state

Everything flows toward Published. The rejection loop is dashed because it's a detour, not a failure — the article is still in-progress.

Reject is a loop, not a dead-end

  • Dashed to signal detour
  • Returns to Draft, not a new state
  • Review feedback is the action

Archive keeps the URL

Archived preserves the redirect map so inbound links survive. Only Purge removes the record entirely.