DEV Community

J Now
J Now

Posted on

Cross-posting to four platforms manually means tracking it all in your head

Here's the specific tax of consistent OSS distribution: you write a post for Bluesky (300 chars), then rework it for X (280), then expand it for Dev.to (150–400 words), then remember you already used the "what problem it solves" angle last week so you need a different frame, then do it again next Thursday. Most people do this twice and stop.

I built marketing-pipeline to handle that mechanical layer. The angle inventory and recency tracking live in projects.yml. The daily cron (marketing cycle) runs via GitHub Actions at 14:00 UTC on weekdays, picks the least-recently-used angle for each project, formats it per channel, and posts. You don't decide what ran last — the file knows.

Onboarding a new project is one command:

marketing onboard --name my-tool --repo owner/repo --kind mcp-server
Enter fullscreen mode Exit fullscreen mode

That fetches the README, sends it to Claude, and writes the extracted problem, facts, and rotation angles to projects.yml. The kind field also routes directory submissions automatically — mcp-server targets MCP Registry, Smithery, Glama, and PulseMCP; claude-skill targets awesome-claude-code; browser-extension targets Chrome Web Store, Firefox AMO, and Edge Add-ons.

One gate I spent real time on: pipeline/antislop.py hard-rejects posts containing excited, game-changer, unlock, empower, AI-powered, emoji, hashtags, exclamation points, and rhetorical questions before anything reaches a platform. That list exists because those tokens are the exact fingerprint of marketing copy that developers skip. The gate runs before publish, not as a suggestion.

The pipeline requires an Anthropic API key plus credentials for Bluesky, Dev.to, and Hashnode at minimum. Mastodon and Slack are optional. One thing it can't automate: awesome-claude-code requires a human to submit via their GitHub issue form — the pipeline generates the payload, you paste it.

github.com/robertnowell/marketing-pipeline

Top comments (0)