DEV Community

J Now
J Now

Posted on

You shipped it, posted once, got silence, and never posted again

The pattern is predictable: you build something useful, write the README, post it on launch day, get a modest spike, then distribution stops because posting consistently is repetitive work that compounds on your actual job. Most OSS tools don't die from lack of quality — they die from lack of presence.

I built marketing-pipeline to solve my own version of this. After launching a few tools that got one post and then silence, I wanted something that would keep rotating content across channels after the initial setup, without me deciding every day whether to write a post.

The core mechanic is a daily cron that runs at 14:00 UTC on weekdays via GitHub Actions. It cycles through registered projects, picks the least-recently-used angle for each one, drafts platform-appropriate content for Bluesky, Mastodon, Dev.to, and Hashnode (per-channel length limits enforced: 300 chars for Bluesky, 280 for X, 150–400 words for Dev.to), then publishes. After initial setup, there's no daily intervention.

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 to extract the problem, facts, and rotation angles, and writes everything to projects.yml. The kind field routes projects to type-specific directory listings automatically — mcp-server gets submitted to the MCP Registry, Smithery, and Glama; browser-extension goes to Chrome Web Store and Firefox AMO; claude-skill targets awesome-claude-code.

One thing I spent real time on: an antislop gate in pipeline/antislop.py that hard-rejects posts before publishing if they contain specific tokens — excited, game-changer, unlock, empower, AI-powered, emoji, hashtags, exclamation points, and rhetorical questions. Marketing copy defaults to that register when generated at volume; the gate exists to prevent it from compounding.

The one thing that can't be automated: awesome-claude-code submissions require a human to file a GitHub issue. The pipeline generates the payload, but their rules require manual submission once per project.

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

Top comments (0)