> ## Documentation Index
> Fetch the complete documentation index at: https://docs.writerzroom.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Publishing

> Connect platforms, manage credentials, and publish finalized content directly from WriterzRoom.

Publishing is the final step in the content lifecycle, moving a finalized draft from your Content Library to an external platform. WriterzRoom supports direct publishing to seven platforms without leaving the product.

Navigate to **Publishing** in the left sidebar to access platform connections and publishing history.

## Connected Platforms

| Platform  | Content types     | Connection method                |
| --------- | ----------------- | -------------------------------- |
| Medium    | Articles, stories | OAuth via Medium API             |
| WordPress | Posts, pages      | Application password + site URL  |
| Ghost     | Posts, pages      | Ghost Admin API key              |
| Dev.to    | Articles          | Dev.to API key                   |
| Hashnode  | Articles          | Hashnode Personal Access Token   |
| LinkedIn  | Articles, posts   | OAuth via LinkedIn API           |
| Beehiiv   | Newsletter issues | Beehiiv API key + publication ID |

## Setting Up a Connection

Navigate to **Publishing** in the sidebar. Select the platform you want to connect and follow the credential setup flow for that platform.

Each platform uses a different authentication method:

* **OAuth** — Medium, LinkedIn. You are redirected to the platform to authorize access and returned automatically.
* **API key** — Ghost, Dev.to, Hashnode, Beehiiv. Generate a key in your platform dashboard and paste it into the connection form.
* **Application password** — WordPress. Generate one from your WordPress dashboard under **Users → Security → Application Passwords**. Do not use your login password.

Credentials are encrypted and stored securely using Google Cloud Secret Manager. You do not need to re-enter them after the initial setup. After connecting, test the connection to confirm it is active before your first publish.

## Managing Connections

The Publishing workspace shows the status of all configured connections. From here you can:

* See which platforms are connected and healthy
* Re-authenticate when credentials expire (OAuth tokens, rotated API keys)
* Disconnect platforms you no longer use
* Test connections before relying on them for delivery

Connection health is checked each time you open the Publishing workspace. If a connection has expired or been revoked on the platform side, WriterzRoom surfaces a re-authentication prompt.

## Publishing a Draft

<Steps>
  <Step title="Open the draft">
    Go to your Content Library and open the draft you want to publish. Generation, editing, and any refinement should be complete before this step.
  </Step>

  <Step title="Select Publish">
    Click **Publish** from the content actions menu.
  </Step>

  <Step title="Choose a platform">
    Select the target platform from your connected integrations.
  </Step>

  <Step title="Configure publishing options">
    Set the title, tags, publish status (draft or published), and visibility settings as required by the platform.
  </Step>

  <Step title="Confirm and deliver">
    Submit the publish action. WriterzRoom sends the content to the destination platform and records the result.
  </Step>

  <Step title="Verify on the destination">
    Open the platform and confirm the content appears as expected. Published content retains a link back to the source in your Content Library.
  </Step>
</Steps>

<Warning>
  Only publish content that has been reviewed and confirmed ready. WriterzRoom does not auto-publish generated content. Once published, changes must be made on the destination platform directly.
</Warning>

## Tracking Published Content

Content cards in the library show a **Published** badge for pieces with completed publishing jobs. The content detail page shows a **Published Links** card listing the platform URLs where the piece has been delivered, including publish date and platform name.

## Scheduled Publishing

Content scheduled for a future publish date executes automatically on a 5-minute poll cycle. Set a scheduled date in the publishing options to defer delivery without manual intervention.

## Platform-Specific Notes

**Medium** — Content is published as a draft by default. You can choose to publish immediately, but Medium's distribution algorithm favors content that is reviewed before going live.

**WordPress** — Requires an application password, not your login password. Generate one from your WordPress dashboard under **Users → Security → Application Passwords**.

**LinkedIn** — OAuth tokens expire periodically. If publishing fails after a period of inactivity, re-authenticate from the Publishing workspace.

**Beehiiv** — Requires both an API key and a publication ID. The publication ID is found in your Beehiiv dashboard under **Settings → General**.

**Ghost** — Requires a Ghost Admin API key. Generate one from **Ghost Admin → Integrations → Add custom integration**.

## Troubleshooting

**Connection errors** — Re-authenticate via the Publishing settings if credentials have expired. OAuth tokens (Medium, LinkedIn) expire after extended inactivity.

**Publishing failures** — Check the destination platform's rate limits and content policies. Some platforms reject content that exceeds length limits or contains unsupported formatting.

**Format issues** — WriterzRoom publishes in the format most compatible with each platform: Markdown for Medium, Dev.to, Hashnode, and Ghost; HTML for WordPress, LinkedIn, and Beehiiv. If formatting appears broken on the destination, check the platform's Markdown or HTML rendering rules.

**Missing platforms** — Publishing integrations are available on Professional and Enterprise plans. Confirm your plan includes the platforms you need.

## Publishing and Workspace

On Enterprise, publishing connections are shared across the team workspace. Any Editor or Admin can publish to a connected platform. Viewer accounts cannot initiate publishing.

See [Workspace](/product/workspace) for team access controls.

## Related Pages

<CardGroup cols={2}>
  <Card title="Content Management" icon="folder-open" href="/product/content-management">
    Review, edit, export, and manage drafts in your Content Library before publishing.
  </Card>

  <Card title="Workspace" icon="building-2" href="/product/workspace">
    Manage team publishing access, roles, and org-level platform connections on Enterprise.
  </Card>

  <Card title="Publishing Settings" icon="settings" href="/product/profile-and-settings">
    Connect and disconnect publishing platforms from Settings → Publishing.
  </Card>

  <Card title="Generation Workspace" icon="zap" href="/product/generation-workspace">
    Configure and submit a generation request before content reaches the publishing step.
  </Card>
</CardGroup>
