What to Post When Building in Public: A Developer's Content System
Concrete post types that work for developers building in public, with examples and a repeatable weekly structure.
Most developers who try building in public stall on the same question: what do I actually post today? Shipping code doesn't automatically produce something worth putting in front of an audience — a raw commit log reads like plumbing, not a story anyone would stop scrolling for.
This guide breaks down the six post types that consistently work for developers, shows what a shipped-change post looks like before and after a rewrite, and lays out a weekly cadence you can sustain without it eating into actual build time.
What makes a build-in-public post worth reading?
A build-in-public post is worth reading when it gives someone who isn't you a specific outcome, number, decision, or lesson — 'working on the dashboard today' shows nothing, while 'cut signup time from 90 seconds to 12' shows something concrete.
The most common critique of build-in-public content is that it turns into a diary: daily status updates with no hook for a stranger scrolling past. A post that only makes sense to the person who wrote it isn't really public, it's just visible.
The fix isn't posting less, it's narrowing what you post to a handful of formats that reliably land with an audience.
The 6 post types that consistently work
Six post types cover nearly every good build-in-public update: shipped changes, numbers, decisions, lessons, asks, and milestones.
- Shipped changes — what a commit means for the person using the product
- Numbers — a real metric with enough context to mean something
- Decisions — a fork in the road you're inviting input on
- Lessons — what broke, and what you'd do differently
- Asks — a direct request for feedback, testers, or opinions
- Milestones — launches, first customer, first revenue
Shipped changes (what your commits mean for users)
Posting about what you shipped works when you translate the day's commits into the outcome a user gets, not the implementation sitting in your diff.
Before: 'Refactored the auth middleware and added a caching layer.' After:'Login now takes under a second instead of three — no changes needed on your end.' It's the same work, but only the second version, from a hypothetical example product, tells a stranger why they should care.
Numbers, decisions, and lessons
The middle three post types share one rule: context turns a fact into a story, so a raw number posted alone is weaker than the same number with a comparison attached.
- Numbers: '47 signups this week' says less than '47 signups this week, up from 12, after adding a demo video.'
- Decisions: 'Deciding whether to gate the export feature behind a paid plan — here's the tradeoff I'm weighing' invites replies instead of just broadcasting.
- Lessons: 'Spent two days on a caching bug that turned out to be a stale environment variable' travels further than most shipped-change posts because it's useful to people who've never heard of your product.
Asks and milestones
Asks (feedback requests, polls, 'would you use this') and milestones (launch day, first paying customer) get the highest engagement of any post type, but they only work if you save them for moments that are genuinely rare — post an ask every day and it reads as noise instead of a milestone.
A weekly cadence that doesn't eat your build time
A sustainable cadence for most builders is one automated shipped-change update on each shipping day, plus two to three manual posts — a lesson, a number, an ask — spread across the week. Developers who keep building in public consistently tend to land somewhere in a two-to-five-posts-per-week range, and daily shipped-change updates alongside a couple of higher-effort posts fits comfortably inside that.
This is the layer gittomarket is built to automate. Connect a GitHub repo once, and on every day you ship, it auto-renders a designed commit stat card and posts it to X, with LinkedIn and Bluesky cross-posts, so the shipped-change post happens without you opening a text box. Captions are written by AI for your customers, not as a raw commit dump, and you can review each post through a Telegram approve flow — tap approve, or ignore it and it posts on its own.
The free plan includes 10 auto-posts a month, which is enough to cover the routine shipped-change side of this cadence while you write the two or three manual posts yourself. See pricing or how this fits a solo founder's workflow.
Turning posts into a permanent record
Posts decay in the feed within days, so route the same updates into a permanent home — a changelog, blog, or public build page — that search engines and AI assistants can still find months later.
gittomarket writes an auto blog article from the same commits it turns into stat cards, and hosts a proof-of-work build page at /w/<slug> with waitlist capture — so the shipped-change and lesson posts you've already written end up archived somewhere durable instead of only living in a feed. You can see what that looks like on gittomarket's own build page or browse the blog.
Where gittomarket fits
gittomarket fits as the automated half of a build-in-public content system: it handles the daily shipped-change post so it never gets skipped, and archives it into a blog post and build page so the work doesn't disappear from the feed after a few days.
It's a hosted SaaS — connect a GitHub repo once, and on every shipping day it renders a commit stat card, writes an AI caption for your customers, and posts to X with LinkedIn/Bluesky cross-posts, either auto-posting or waiting for your Telegram approval. The free plan covers 10 auto-posts a month and includes a build page from day one; see the founding plan, $9/mo for the first 20 spots before the price steps up at launch. It won't write your decision, lesson, or ask posts — those still need to come from you.
Fair questions
Should I post every day when building in public?
Not as a rule of manual writing — daily shipped-change updates work well when they're automated, but hand-writing a post every single day tends to cause burnout faster than skipping some days does. One automated update per shipping day plus 2-3 manual posts a week is a more sustainable target than daily manual writing.
Do screenshots or plain text posts perform better for dev updates?
Both have a place: screenshots and short clips work well for UI changes and milestones where seeing the change is the point, while plain text works better for numbers, decisions, and lessons where the reasoning is the content. A designed stat card sits between the two — visual enough to stop a scroll, but built around a real number rather than a raw screenshot.
Should I post the same update on X and LinkedIn?
The core fact can stay the same, but the framing usually shouldn't be identical — X tends to reward short, direct posts, while LinkedIn readers expect a bit more context around the same update. Cross-posting the same card and caption, which is how gittomarket's X/LinkedIn/Bluesky cross-post works, is a reasonable default for routine shipped-change posts; save distinct framing for manual lesson and ask posts.
What should I post on days when I didn't ship anything?
Skip the shipped-change post entirely rather than manufacturing one — an empty 'still working on it' update is exactly the diary-entry pattern that makes build-in-public content forgettable. Use a no-ship day for one of the other post types instead: a decision you're weighing, a lesson from something that didn't work, or an ask for feedback.
Set it up once. Let it run.
Free plan includes 10 auto-posts a month and your public build page from day one — no card required.
Start free →