DEV Community

J Now
J Now

Posted on

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

Every time I shipped something and wanted to keep it visible, the actual work was this: write a Bluesky version under 300 chars, a different one for X under 280, something longer for Dev.to, remember what angle I used last week so I'm not repeating myself, then do it again next Tuesday. I'd do it once, skip the second week, and the project went quiet.

marketing-pipeline stores all of that state in projects.yml — angles, recency, per-channel formatting — and runs it on a daily cron at 14:00 UTC via GitHub Actions.

Onboarding looks like this:

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

That command fetches the README, sends it to Claude, and writes problem, facts, and a rotation pool of angles back to projects.yml. From there the marketing cycle command picks the least-recently-used angle for each project, generates platform-appropriate drafts, and posts.

Per-channel limits are enforced in code: Bluesky 300 chars, X 280, Mastodon 500, Dev.to/Hashnode 150–400 words. Before anything is published, pipeline/antislop.py hard-rejects a specific token list — excited, game-changer, unlock, AI-powered, emoji, hashtags, exclamation points, rhetorical questions. Not as a style suggestion. As a hard gate that aborts the post.

The kind field on each project routes to the right directories automatically. mcp-server targets MCP Registry, Smithery, Glama, and PulseMCP. claude-skill targets awesome-claude-code (with a human-required submission step, since their rules require a GitHub issue form — the pipeline generates the payload, you submit once). browser-extension targets Chrome Web Store, Firefox AMO, and Edge Add-ons.

Social posting covers Bluesky, Dev.to, Hashnode, and Mastodon. You need an Anthropic API key plus credentials for at least Bluesky, Dev.to, and Hashnode to run it end to end.

https://github.com/robertnowell/marketing-pipeline

Top comments (0)