9 min read

I launched on Twitter and got 4 likes. The four-channel version got me signups.

One tweet reaches maybe 30 of the right people. Your buyers are spread across four feeds, and each one wants a different post. Here's the four-channel launch loop, and exactly what Reddit, X, LinkedIn, and Bluesky each reward.

I launched on Twitter and got 4 likes. The four-channel version got me signups.

I shipped a real feature last month. Three weeks of work. The kind of thing that, in a YC office hours, you'd describe as a wedge.

I posted about it on Twitter at 9:43am. 78-word announcement, three bullet points, screenshot, link. Hit send.

By that night it had 4 likes, two of which were from friends.

I closed the laptop and felt stupid. Not because the feature was bad. The feature was good. The launch was the problem. The launch was "I tweeted once and waited."

This post is what I should have done. It's also what most founders I talk to do, which is to say, the same thing I did, which is post once on Twitter and then complain that distribution is hard.

Launching once on Twitter is launching nowhere

Here's the bad math you do without realizing.

You have ~300 followers on Twitter. Two thirds aren't your ICP. Of the ~100 who are, maybe 30% will see the tweet because of the algorithm. So at best, 30 people in your target audience saw your launch. Of those, maybe 3 cared enough to click. Maybe one signs up.

You shipped a real feature for thirty potential viewers and one signup.

The places where your ICP actually congregates, r/SaaS, r/startups, r/Entrepreneur, Indie Hackers, the LinkedIn feed of fellow SaaS founders, the Bluesky-CTO crowd, got nothing. You didn't tell them. They didn't hear.

The fix isn't to tweet better. The fix is to launch in four places. Because the people you want to reach are in four places.

A launch is four posts, not one

Same launch, four different posts. Each one written for the platform it lives on. Not the same post pasted four times. The same post pasted four times is what most schedulers do, and it's why every channel gets bored.

Here's how the four posts differ for the same feature.

Reddit: a post in r/SaaS or r/startups

Reddit is a community of strangers who hate being sold to. The post can't open with "Excited to announce…". It opens with a problem or a question.

Title: Anyone else move their background jobs off a managed queue to a self-hosted worker?

Body: We were paying $290/mo for a hosted job-queue service to run maybe 40k jobs a day (image resizing, webhook retries, nightly exports). Moved it to a small self-hosted worker on a box we already pay for last week, dropped the cost to ~$25/mo, and the median job actually starts faster now because there's no cross-region hop.

Things I learned: get your retry + dead-letter handling right before you cut over, or a single bad job silently stalls the line. Also, batching the nightly export into chunks beat one giant job by a mile.

Notice what's not there: the product name in the title. A link in the first sentence. The phrase "I'm excited to share". A subreddit doesn't owe you their attention. You earn it by being the kind of poster who'd belong there if you had no product.

X (Twitter): a thread, not a tweet

X is a place to perform. The audience is other founders and operators who reward specificity and contrast. One tweet won't carry it; threads do.

1/ moved our background jobs off a managed queue onto a self-hosted worker and cut that bill by ~90%. quick notes on what actually mattered.

2/ ~40k jobs/day (image resizing, webhook retries, exports) went from $290/mo to $25/mo on a box we already run. that's the headline. but the reliability story is the interesting part.

3/ the thing that bites you is retries. set a dead-letter queue on day one. one poison job with infinite retries can quietly stall the whole line.

4/ batch the big nightly stuff. our export was one 9-minute job; split into chunks it finished in under 2 and stopped blocking everything behind it. nobody told me this.

5/ what didn't matter as much as I feared: ops burden. it's one worker process with a healthcheck and an alert. not the 2am pager I'd talked myself out of.

The X version reads like a senior engineer thinking out loud. Not like marketing copy.

LinkedIn: the same story, in a different register

LinkedIn rewards being the smart one at the meeting. Your peer group there isn't "indie hacker on Reddit"; it's "fractional CTO who consults at three companies." The post is about the decision, not the feature.

A few weeks ago we made a call to move our background-job processing off a managed queue service and onto a self-hosted worker. Here's the result and the reasoning, because I think a lot of teams are spending money they don't need to.

Result: $290/mo → $25/mo. Net saving: ~$3,200/year on this workload alone. Engineering time to migrate: about a day, including the cutover and a week of watching it closely.

The reasoning: we already run servers with spare headroom. The managed queue was solving a scale problem we don't have yet (we run tens of thousands of jobs a day, not tens of millions). Once you cross that threshold the calculus changes. Below it, you're paying for managed convenience on a workload your existing infrastructure already handles competently.

The general principle, IMO: most managed-infrastructure buys at early stages are premature. Validate the workload on what you already run first. If you outgrow it, leaving later is cheap.

Different register. Same launch. The CTO on LinkedIn does not want to read "we just shipped 🚀".

Bluesky: short, off-the-cuff, link in the post

Bluesky is small but the crowd is the chunk of dev Twitter that left during the migration, heavy on infra-engineering and product-craft people. Tone is closer to early Twitter. You can be more honest.

we cut our background-job bill by ~90% by moving off a managed queue onto a self-hosted worker. write-up here [link]. tl;dr: most small teams are paying managed-queue prices for a workload their own box shrugs off. the export jobs run faster now too lol

One paragraph, no thread, no scheduling. It reads like you're in a group chat with people you respect.

The cost of skipping this work

You can skip all of the above by copy-pasting the same post into all four places. Schedulers like Buffer or Hootsuite make this very easy. It is also exactly how to get downvoted on Reddit, ghosted on Bluesky, and shadow-throttled on LinkedIn. The reason is simple: each platform's audience can smell a cross-post. You're treating their feed like a billboard. They treat you accordingly.

The other failure mode, what I did, is launching only where you're comfortable. For most founders that's Twitter. The math above is why that fails.

The four-channel discipline is what actually compounds. Each post is a small reps surface in its own right. People who reply on Reddit are not the people who reply on LinkedIn. You're not building one audience; you're building four.

What I do now

After enough launches that flopped, I built the thing I needed.

Drop the artifact in. A blog post, a feature spec, a changelog entry, a tool URL, whatever the launch is grounded in. Pick the channels you care about. Pick the subreddit (or two, or three). The engine writes a native post for each one, grounded in your actual product context and in your voice. You read each draft, edit, send, or let autopilot pace them out for you. Four posts, maybe 6 to 10 minutes of editing total instead of three hours of staring at a blank text box.

Then, and this is the part the schedulers miss, each post becomes its own pipeline of conversations. The replies, the comments, the DMs that come from each variant, the people who actually want what you shipped, all flow back into the same inbox. So when r/SaaS pops off and LinkedIn goes silent, you can see exactly where the signups came from. The next launch leans where the last one worked.

I built this because I'm bad at distribution discipline. It turns out the cost of that discipline isn't motivation. It's friction. Remove enough friction and the discipline shows up on its own.

What this is not

Worth saying out loud:

This is not a volume bot. Every draft is grounded in your product, judged before it ships, and sent from your own account at a human pace. Run it approve-first and read every draft yourself, or let it fly inside your guardrails. If you wanted a spam cannon, the internet has plenty.

This is not a guarantee that all four posts will work. The X post might do nothing. r/SaaS might bury you. LinkedIn might generate one strange DM. That's normal. The point isn't that every channel hits. The point is that you ran the play, and the next launch will be better-targeted because of what you learned from this one.

And this is not a replacement for shipping something worth launching. If the feature is "we added a new emoji to the dropdown", no amount of channel-native posting will save it. The reps work on launches that are actually worth a reader's time.

If your last launch did 4 likes

If the scene at the top sounded familiar, here's the easy thing.

Thread Otter is free for 7 days, no card. Drop a recent blog post or a tool you've shipped. Pick two or three channels. See what four drafts grounded in your product, in your voice, actually look like.

If you're going to do four-channel launches, do them with a tool that learns what worked.

threadotter.com/pricing

The one launch I'm proudest of last month wasn't the one I tweeted. It was the one where I shipped the post composer, then used the post composer to write a post about the post composer, sent it to four channels, and watched two of them actually land. The reps compounded. They will for you too.