How to write a build-in-public update without starting from a blank page
Most build-in-public updates die the same way: the maker opens a blank compose box on a Sunday night, can’t remember what actually happened that week, and either skips the post or writes something vague enough to say nothing. The fix isn’t willpower, it’s a fixed process. Here’s the one we use, by hand or automated.
1. Pick a fixed window
Build-in-public updates read best on a cadence, not whenever you remember. Pick a week boundary (Saturday–Friday, Monday–Sunday, whatever) and stick to it, even on quiet weeks — a quiet week is still worth a line.
2. Pull the real numbers for that window
Commits and merged PRs from your repo's default branch, plus whatever revenue or traffic number you track (MRR, new customers, churn, visitors). Write down the actual figures before you write a single sentence of narrative — numbers anchor the post and are what makes it build in public instead of a status update.
3. Write the narrative from the numbers, not from memory
Lead with what shipped, say what the numbers did and why (a launch, a bug, a quiet week), and don't skip the bad weeks — churn and flat growth are part of the story and skipping them is what makes build-in-public posts feel fake.
4. Make a chart
A single line or bar chart of the metric you're tracking over the last several weeks does more than a paragraph of numbers. It doesn't need to be fancy — consistent axes and one series read fine on both X and LinkedIn.
5. Publish on the platforms your audience actually reads
Copy to clipboard for X, downloadable image as a fallback for anywhere, LinkedIn if that's where your audience is. Consistency beats platform count — pick one or two and keep showing up.
Doing this every week by hand
Steps 1–4 take real time — digging through git log, your payment dashboard and whatever analytics you use, then turning that into readable prose. That’s the part that gets skipped on a busy week, which is exactly the week a build-in-public habit is supposed to survive.
Or skip straight to the post
Ship & Shout automates steps 2–4: it reads your GitHub (or GitLab/Bitbucket) activity and your revenue source read-only, drafts the narrative in your voice, and renders the chart — every week, on your schedule, nothing published until you approve it. Try it on any public repo with no account at /try, or see the exact fields it reads per provider on the integrations pages.
Prefer to just summarize a week’s commits yourself first? Commit summary and weekly update templates are free, no account needed.