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.

Connect GitHub

Free while in beta. No credit card.

#247 Merged

Add dark mode support

Implemented theme toggle with system preference detection and persistent storage across sessions.

+127 -43 12 files
Ready to post Draft

Shipped dark mode today.

Here's what we learned about theme systems, CSS variables, and respecting user preferences...

Tweet Thread LinkedIn

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.

15 merged PRs per week
× 0 posts about them
= invisible progress

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.

Developer PR Merged ??? (nothing)

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?

// too busy shipping

Marketing

Doesn't understand the technical context. (If you even have marketing.)

// what's a PR?

The Founder

Is drowning in other priorities.

// 47 unread emails

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.

PR #247: Add dark mode support Merged
Description

Added dark mode across the app with system preference detection...

Commits
feat: add theme toggle
fix: color contrast in sidebar
+ 2 more
Diff
+247 -89 12 files
We extract the story
Tweet
Thread
LinkedIn
Blog
Release Notes
Executive Summary

All in your voice. Ready to review and post.

Developer workflow

Merge PR. That's it.

Content pipeline

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.

01

Connect

Two clicks to link repos

02

Ship

Code as usual

03

Generate

Content appears automatically

04

Post

Review & go

When code ships, we read everything:

PR title and description Commit messages The actual diff

Then we generate content:

Tweets announcing features
Threads explaining technical approach
LinkedIn for professionals
Blog draft for changelog
Release notes from merged PRs
Executive summary for stakeholders

All in your voice. Ready to review and post.

Developer workflow

Merge PR. That's it.

Content pipeline

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.

Week of Apr 7–13 3 PRs shipped
Release Notes
Features: Dark mode support across the app
Fixes: Color contrast in sidebar navigation
Improvements: Reduced bundle size by 23%
Executive Summary

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.

anomalyco/opencode

feat: add OPENCODE_DISABLE_FILETIME_CHECK flag

#6581 7 months, 3 weeks ago +7 -1

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.

1.

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.

2.

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.

3.

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.

Connect GitHub

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