Skip to content
Home/Trust Center/Publishing engine proof
PUBLIC PROOF ARTIFACT

Long-form publishing that runs on the real platform, not a parallel demo lane.

Sprint 4 turns the public blog into a real publishing surface with private drafts, immediate publish, scheduled release through the shared job worker, and auditable cancellation history.

Sprint 4 proofArticles + schedulingUpdated 2026-03-31
4
Published proof checks
1
Shared queue runtime
0
Duplicate content systems
WHY THIS EXISTS
Publishing claims should be testable.

HOWFAR now exposes a single article lifecycle that editors can use, operators can audit, and reviewers can verify from public routes plus integration proof.

  • Drafts remain private until publication
  • Scheduled release uses the same background job system already in production
  • Public blog, sitemap, and feed surfaces update from the same source of truth
4Published proof checks
1Shared queue runtime
0Duplicate content systems

Published checks

Draft authoring stays private until publication

Articles now have an explicit draft lifecycle in the shared Post runtime, so incomplete work is editable by the author without leaking into the public blog or sitemap.

  • `src/app/api/articles/route.ts`
  • `src/app/api/articles/[articleId]/route.ts`
  • `src/app/app/articles/**`
Public publishing path is profile-linked and SEO-aware

Published articles flow onto `/blog`, render canonical metadata, appear in sitemap/feed outputs, and link back to the author’s public profile when available.

  • `src/app/blog/page.tsx`
  • `src/app/blog/[slug]/page.tsx`
  • `src/app/sitemap.xml/route.ts`
  • `src/app/feed.xml/route.ts`
Scheduled publishing uses the existing job queue

Scheduling writes a queued background job instead of inventing a new scheduler, and cron processing promotes due articles into the published state.

  • `src/lib/server/articles.ts`
  • `src/lib/server/jobs/queue.ts`
  • `src/lib/server/jobs/processors.ts`
  • `src/app/api/cron/jobs/process/route.ts`
Cancellation and audit history are inspectable

Every create, update, publish, schedule, and cancel action writes an audit event so the editorial lifecycle can be reviewed after the fact.

  • `src/lib/server/audit.ts`
  • `src/app/app/articles/[articleId]/edit/page.tsx`
  • `tests/integration/next-app-routes.integration.spec.ts`
  • `docs/ops/P1_PUBLISHING_ENGINE_PROOF_2026-03-31.md`
Dock