I launched on Twitter. It got 4 likes. Then I figured out what I should have done.
Founders launch a feature on Twitter once and call it done. The actual loop is five channel-native posts. Here's why each one matters and what each channel actually wants.

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, and zero signups.
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, Hacker News, 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 five places. Because the people you want to reach are in five places.
A launch is five posts, not one
Same launch, five different posts. Each one written for the platform it lives on. Not the same post pasted five times. The same post pasted five times is what most schedulers do, and it's why every channel gets bored.
Here's how the five 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 self-hosting their RAG instead of using a managed vector DB?
Body: We just ripped out [managed vendor] and moved retrieval to Postgres + pgvector. The pitch was lower cost; the real win was that the DB and the vectors live in the same place, so backups and migrations got drastically simpler.
Curious if anyone else made this trade-off. Did anything blow up in production that we should watch for?
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/ Replaced our managed vector DB with Postgres + pgvector this quarter.
Latency went up ~7ms at p50. Reliability and ops simplicity both jumped a lot. Worth it.
Here's the actual numbers and what broke.
2/ Reads at p50: 9ms → 16ms. Acceptable.
Reads at p99: 41ms → 84ms. We had to add an HNSW index and tune ef_construction. The default index settings are deceptively bad at scale.
3/ [continue with concrete data]
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.
Most teams default to a managed vector DB because the docs are friendly and the tutorials are everywhere. Last quarter we made the opposite call and moved retrieval into Postgres.
Three reasons it worked for us:
- The team already operates Postgres. New surface area is the most expensive thing in a small infra.
- Backups and migrations stop being two separate workstreams.
- The "vector DB" market is still settling. Owning the storage means we move when the answer becomes obvious, not before.
Open to hearing where this would have been the wrong choice.
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.
Killed our managed vector DB and put everything in Postgres + pgvector. p99 read latency doubled, but we no longer wake up to two unrelated alerts at 3am. Trading milliseconds for sleep is the right trade in year one.
One paragraph, no thread, no scheduling. It reads like you're in a group chat with people you respect.
Hacker News — Show HN, mostly link, mostly let it speak
HN does not want a thread. HN wants the artifact. The post is the link to your write-up; the comments are where you actually talk.
Show HN: Migrating from [managed vector DB] to Postgres + pgvector
And in the comments, the first thing you do is show up and answer the obvious questions: latency numbers, what broke, why you didn't just stick with what was working. HN is a comments-first platform pretending to be a links platform.
The cost of skipping this work
You can skip all of the above by copy-pasting the same post into all five places. Schedulers like Buffer or Hootsuite make this very easy. It is also exactly how to get downvoted on Reddit, ignored on HN, 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 five-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 five.
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. Five posts, maybe 8 to 12 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 conversation. The replies, the comments, the DMs that come from each variant all flow back into the same inbox. So when r/SaaS pops off and LinkedIn goes silent, you can see it. 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 tool that posts on your behalf. You read every draft. You hit send. If you wanted a bot, the internet has plenty.
This is not a guarantee that all five 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 14 days, no card. Drop a recent blog post or a tool you've shipped. Pick three or four channels. See what five drafts grounded in your product, in your voice, actually look like.
The first 100 Solo signups lock in $19/mo for life instead of $29 — that's the Founding 100 cohort, and the counter is live on the pricing page. If you're going to do five-channel launches, do them with a tool that learns what worked.
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.