·6 min read·Cross-posting, Workflow

Cross-Post Your Blog to 5 Platforms Without Leaving the Terminal

You wrote one article. Now you need it on Dev.to, Hashnode, Medium, your WordPress site, and your Ghost blog. That used to mean 30+ minutes of copy-pasting and reformatting. Here's how to do it in one command.

Why cross-posting matters

Every platform has a different audience. Dev.to skews toward web developers and open source contributors. Hashnode has a strong presence in the JavaScript and DevOps communities. Medium reaches a broader tech audience. WordPress powers your own domain. Ghost gives you a newsletter-ready blog.

If you only publish on one platform, you're leaving readers on the table. A single article published across five platforms can easily get 3-5x the total reach compared to publishing on just one.

There's also an SEO angle. When you cross-post with proper canonical URLs, you get backlinks pointing to your original article. Google sees the canonical tag and attributes ranking authority to your primary URL. More platforms, more signals, better rankings.

The manual way: 30+ minutes per article

If you cross-post manually today, you probably know this routine:

  • Open Dev.to, paste markdown, fix formatting, add tags, set canonical URL, save draft
  • Open Hashnode, paste markdown, fix different formatting issues, configure canonical URL
  • Open Medium, paste — realize Medium doesn't support markdown well — reformat manually
  • Open WordPress admin, paste into Gutenberg, fix block formatting, set featured image
  • Open Ghost admin, paste, configure newsletter settings, set canonical URL

Each platform has its own editor quirks, its own markdown flavor, its own metadata fields. You end up spending more time reformatting than you spent writing. And you have to remember to set the canonical URL on every single one, or you'll create duplicate content problems.

The Pipepost way: one command, all platforms

Pipepost's cross_publishtool sends your article to multiple platforms in a single operation. It handles the API differences, sets canonical URLs correctly, and maps your content to each platform's format.

you: "Cross-publish this article to Dev.to, Hashnode, Ghost, WordPress, and Medium. Use https://myblog.com/my-article as the canonical URL."
Cross-publishing to 5 platforms...
Dev.to — draft created — https://dev.to/you/my-article-draft
Hashnode — draft created — https://you.hashnode.dev/my-article
Ghost — draft created — https://yourghost.com/my-article
WordPress — draft created — https://yourwp.com/?p=142
Medium — draft created — https://medium.com/@you/my-article
Canonical URL set on all platforms: https://myblog.com/my-article

Five drafts, all with correct canonical URLs, all properly formatted for each platform. The whole operation takes about 10 seconds.

Setting up each platform

Before cross-publishing, you need to configure API keys for each platform. This is a one-time setup. Tell Claude which platforms you want to use:

you: "Set up my Dev.to key: dv1_abc123"
you: "Set up Hashnode with token: hn_xyz789 and publication ID: abc"
you: "Set up Ghost with URL: https://myblog.ghost.io and admin key: 6x0..."
you: "Set up WordPress at https://myblog.com with user: admin and app password: xxxx"
you: "Set up Medium with integration token: med_abc123"

Here's where to get each key:

  • Dev.to— Settings → Extensions → Generate API Key
  • Hashnode— Settings → Developer → Personal Access Token
  • Ghost— Settings → Integrations → Add Custom Integration
  • WordPress— Users → Profile → Application Passwords
  • Medium— Settings → Integration Tokens

All credentials are stored locally in ~/.pipepost/config.json. They're only used when you explicitly trigger a publish.

Canonical URLs: getting them right

Canonical URLs tell search engines which version of your article is the “original.” This is critical for cross-posting. Without canonical URLs, Google sees five copies of the same article and has to guess which one to rank. With canonical URLs, it knows exactly which one to prioritize.

Pipepost handles this automatically. When you specify a canonical URL in your cross-publish command, it gets set on every platform that supports it (which is all five). Your original post gets the SEO credit, and the cross-posts act as distribution channels.

The typical pattern: publish the original on your own domain (Ghost or WordPress), then cross-post to Dev.to, Hashnode, and Medium with the canonical pointing back to your site.

When to cross-post vs. when to publish exclusively

Cross-posting works best for evergreen technical content — tutorials, guides, deep dives. This type of content performs well across all platforms and benefits from the wider reach.

Platform-specific content (like Dev.to challenges or Hashnode hackathon entries) should stay on that platform. And if you're building newsletter subscribers on Ghost, consider publishing some exclusive content there to give people a reason to subscribe.

A reasonable strategy: cross-post 70% of your articles, keep 30% exclusive to your primary platform.

Get started

Cross-publishing to all five platforms requires the Pro tier ($19/mo). Dev.to publishing alone is free. Either way, installation takes 30 seconds:

View on GitHub

Pipepost is MIT licensed and open source. Check the docs for full API reference on each platform.