Your team ships 15 PRs a week. Your audience sees zero.
Shipcast turns your merged PRs into tweets, threads, and LinkedIn posts so your team builds in public without the content tax.
Free while in beta. No credit card.
Add dark mode support
Implemented theme toggle with system preference detection and persistent storage across sessions.
Shipped dark mode today.
Here's what we learned about theme systems, CSS variables, and respecting user preferences...
The gap between shipping and storytelling
Your team is building. Features ship. Bugs get fixed. The product gets better every week.
But nobody outside your team knows.
Meanwhile, that founder with half your output has way more followers.
The difference isn't what they ship. It's that they talk about it.
You know you should build in public.
You just don't have time to translate code into content.
The translation problem
Here's what happens now:
A developer finishes a feature. They write a decent PR description. It gets reviewed, approved, merged. Done.
Except... someone should probably tweet about this. Or write a LinkedIn post.
But who?
The Developer
Doesn't want to. They already explained it in the PR—why explain it again?
Marketing
Doesn't understand the technical context. (If you even have marketing.)
The Founder
Is drowning in other priorities.
Spoiler: nobody.
So the PR gets merged. And the story dies in the commit log. Again.
The PR already contains the story. We just extract it.
Shipcast connects to your GitHub repos and watches for merged PRs.
Added dark mode across the app with system preference detection...
All in your voice. Ready to review and post.
Merge PR. That's it.
Automatically populated with stories from real work.
The PR already contains the story.
We just extract it.
Shipcast connects to your GitHub repos and watches for merged PRs.
Connect
Two clicks to link repos
Ship
Code as usual
Generate
Content appears automatically
Post
Review & go
Connect
Two clicks to link repos
Ship
Code as usual
Generate
Content appears automatically
Post
Review & go
When code ships, we read everything:
Then we generate content:
All in your voice. Ready to review and post.
Merge PR. That's it.
Automatically populated with stories from real work.
What you get
Watches your repos
Connect once. We monitor for merged PRs automatically.
Reads the full context
PR title, description, commits, and diffs. We understand what actually shipped.
Automated release notes
Weekly changelog compiled from merged PRs, categorized by type. Delivered every Monday.
Executive summaries
Non-technical weekly summary for stakeholders who don't read code. Perfect for investor updates and team syncs.
Learns your voice
Tell us about your product, your audience, your tone. Content sounds like you, not a robot.
Zero developer friction
No new tools for your team to learn. No extra steps in the workflow. The PR is the input.
And every week, we compile it all.
The updates you owe people. Written automatically.
Release notes for your users. Executive summaries for your stakeholders. Generated from the PRs you already shipped.
This week the team shipped dark mode — a top-requested feature — and improved performance with a 23% smaller bundle. The app now respects system theme preferences automatically.
Built for small teams who ship fast
You're a good fit if:
- Your team merges 5+ PRs per week
- You know you should be building in public
- Nobody on the team wants to be a "content creator"
- You'd rather ship features than write tweets
You're NOT a good fit if:
- You want AI to fully automate your social presence (you still review and post)
- You're looking for a general content tool (we're GitHub-specific)
- You don't use PRs in your dev workflow
From PR to post in seconds
See how a real merged PR transforms into ready-to-publish social content.
feat: add OPENCODE_DISABLE_FILETIME_CHECK flag
We shipped a tiny switch that removes a surprisingly annoying workflow blocker. Set OPENCODE_DISABLE_FILETIME_CHECK to skip the pre-edit timestamp check (some folks hit it with ~0.2s gaps). Result: no more forced re-reads when you already have context.
We shipped a tiny switch in OpenCode that removes a surprisingly annoying workflow blocker: you can opt out of the pre-edit check that was forcing unnecessary re-reads.
Some of our users told us they’d get blocked from editing even when the file content was already in context. The tool would insist on re-reading the file first, and it broke momentum fast.
The worst part: even a split-second timing mismatch could trigger it. We saw reports where 0.2s between read and edit was enough to throw the error.
+2 more tweets
The tiny switch that removes a surprisingly annoying workflow blocker. In OpenCode, we’ve had a safety check before edits: if the file timestamp didn’t match what OpenCode last saw, we’d stop and require a re-read. In theory, that protects you from making changes against stale context. In practice, it was getting in the way of real work. We heard from users who were already holding the right context, but still got blocked from editing — sometimes because of tiny timing differences. One report: even 0.2s between read and edit could still trigger the error. So we shipped an escape hatch. If you’re a power user and you know what you’re doing, you can now set `OPENCODE_DISABLE_FILETIME_CHECK` to bypass that pre-edit verification. That means quick edits can proceed without being forced to re-read the file first, when you already have the content. This is one of those “convenience vs safety” tradeoffs we try to make explicit. Defaults should keep you safe. But developers also need control when the tool’s guardrails become friction. Key takeaway: you can now opt out of the pre-edit check that was forcing unnecessary re-reads, making quick edits smoother when you already have the context.
Frequently asked questions
"Can't we just ask developers to tweet about their PRs?"
You can ask. They won't do it consistently. And even when they do, context-switching from code to content kills momentum. Good luck with that.
"What about AI quality? Will this sound generic?"
We read the actual diff, not just the title. And we learn your voice. The output is a starting point—you review and edit before posting.
"What if our PRs have sensitive information?"
You choose which repos to connect. You review every piece of content before it goes anywhere. Nothing posts automatically.
"Do developers need to change anything?"
No. They write PRs like they always do. Better PR descriptions = better content, but the workflow doesn't change.
Your PRs are already full of stories. Stop letting them die in the commit log.
Free while in beta. No credit card.
Why we built this
We're a small team. We ship constantly.
We also know we should be building in public. Every blog post says so. Every growth playbook recommends it.
But after a day of coding, nobody wants to context-switch into "content mode."
So we didn't.
PRs got merged. Features shipped. Nobody heard about it.
Then we realized: the PR already contains the story. The title. The description. The commits. The code itself. All the raw material is there.
We just needed something to extract it.
That's Shipcast.
— Hossein Kazemi