---
title: "Publishing Workflow"
description: "Move content from draft to reviewed public pages, discovery files, search, feeds, and feedback loops."
canonical_url: "https://docs.bulkheados.com/content/publishing-workflow/"
template: "page-node"
schema_type: "WebPage"
---

<div class="docs-content">
<p class="docs-lead">Publishing in BulkheadOS is designed as one connected workflow: write once, review the public impact, ship the page, and verify the surfaces readers and external tools will use.</p>

<h2 id="workflow-at-a-glance">Workflow At A Glance</h2>
<table>
<thead><tr><th>Step</th><th>HQ surface</th><th>What to check</th></tr></thead>
<tbody>
<tr><td><strong>1. Draft</strong></td><td>Library</td><td>Title, slug, body, summary, owner, and content type.</td></tr>
<tr><td><strong>2. Review</strong></td><td>Governance</td><td>Domain language, tone, required terms, and whether Git owns the content area.</td></tr>
<tr><td><strong>3. Preview</strong></td><td>Content editor</td><td>Rendered page, metadata, links, image alt text, and any read-only Git banner.</td></tr>
<tr><td><strong>4. Publish</strong></td><td>Library or Git Sync</td><td>Status, branch or source commit, and the expected public URL.</td></tr>
<tr><td><strong>5. Verify</strong></td><td>Discovery</td><td>HTML page, markdown alternate, structured data, sitemap, search, and machine-readable discovery files.</td></tr>
<tr><td><strong>6. Learn</strong></td><td>Feedback and comments</td><td>Repeated questions, page feedback, public replies, and support friction.</td></tr>
</tbody>
</table>

<h2 id="before-you-publish">Before You Publish</h2>
<ul>
<li>Confirm the page answers one clear reader job.</li>
<li>Use the customer's words in headings and examples where possible.</li>
<li>Check every internal link and any external link that affects trust.</li>
<li>Add image alt text that explains the image, not just the file name.</li>
<li>Make sure the summary is suitable for search results and social previews.</li>
</ul>

<h2 id="git-managed-content">Git-Managed Content</h2>
<p>If the content area is connected to Git, HQ shows it as read-only. Make the content change in the repository, then let Git Sync update the page. This keeps authors from accidentally maintaining one version in Git and another version in HQ.</p>

<div class="docs-callout docs-callout--info">
<p><strong>Release habit:</strong> Put the public page URL in the pull request or commit note. Reviewers can compare the intended customer page with the source change before it ships.</p>
</div>

<h2 id="after-you-publish">After You Publish</h2>
<ol>
<li>Open the live page and confirm it returns <code>200</code>.</li>
<li>Open the markdown alternate at the same path with <code>.md</code>.</li>
<li>Open the structured data link shown in the page header.</li>
<li>Search for a phrase from the page using the site search.</li>
<li>Check the relevant discovery file if the page changes public action guidance.</li>
<li>Watch feedback and comments for follow-up questions.</li>
</ol>

<h2 id="what-good-looks-like">What Good Looks Like</h2>
<p>A good release leaves no split story. The page, metadata, search result, markdown alternate, structured data, and machine-readable discovery files all point to the same reviewed explanation.</p>

<div class="docs-example-grid">
  <a class="docs-example-card" href="/content/git-sync-provider-setup">
    <span class="docs-example-card__eyebrow">Source Control</span>
    <strong class="docs-example-card__title">Git Sync Provider Setup</strong>
    <span class="docs-example-card__body">Connect a repository and keep Git-managed areas read-only in HQ.</span>
  </a>
  <a class="docs-example-card" href="/ai">
    <span class="docs-example-card__eyebrow">Public Discovery</span>
    <strong class="docs-example-card__title">AI &amp; Discovery</strong>
    <span class="docs-example-card__body">See how reviewed material becomes public discovery surfaces.</span>
  </a>
  <a class="docs-example-card" href="/content/feedback">
    <span class="docs-example-card__eyebrow">Feedback</span>
    <strong class="docs-example-card__title">Feedback Examples</strong>
    <span class="docs-example-card__body">Turn reader signals into the next docs improvement.</span>
  </a>
</div>
</div>
