Build in public3 min read

What to post when nothing shipped

Most days do not produce a feature. That is not a content problem, unless you respond to it by inventing one.

You committed to posting regularly. Today you fixed two small bugs, updated some dependencies, and spent three hours on something that is not finished.

Nothing shipped. Now what?

The wrong answer

The wrong answer is to inflate what you did.

Big progress on the export feature today.

You did not make big progress. You made some progress. The reader cannot tell the difference, which is exactly why doing this repeatedly is corrosive: nobody catches you, and the vocabulary drifts until "big progress" is what you call an ordinary afternoon, and you have nothing left to say when something genuinely significant happens.

The second wrong answer is a motivational post. Nobody followed you for encouragement, and "keep pushing" from someone who did not ship today reads exactly as it is.

The better answers

The decision you made. Unfinished work still contains choices. You picked an approach, rejected another, or discovered the problem was different from what you thought. That is a post, and often a better one than the eventual feature announcement, because the reasoning is visible while it is still live.

The thing that was harder than expected. Three hours on something you budgeted twenty minutes for is interesting. Why was it harder? What did you assume that was not true? That is the most transferable kind of content there is.

The small fix with a real cause. A two line bug fix is boring. A two line bug fix where the cause was an assumption you made three months ago is a post.

Nothing. Genuinely a valid option. A quiet week followed by something substantial beats seven filler posts.

Why filler is more expensive than silence

People underrate this. The cost of posting nothing is that your feed is quiet for a few days. The cost of posting filler is that readers learn your posts are not worth opening.

Attention is the thing you are accumulating. Filler spends it. And the spend is invisible, which is what makes it dangerous: nobody unfollows you over one thin post, they just stop clicking, and you never see the moment it happened.

What we built into the product

Noomachy DevTracker will tell you when it cannot find a story. The message is deliberate:

You worked that day, but I could not find a story worth posting. That is better than inventing one.

It would be trivially easy to always produce something. Take the highest scoring commit, wrap it in a template, done. Every day has output, the product looks productive.

We decided against it, because a tool that reliably produces mediocre posts is worse than one that sometimes says nothing. The first trains you to stop reading its output. The second means that when it does produce something, it is because there was something there.

The noise filter is what makes that possible: dependency bumps, merge commits, lockfile changes and formatting all score low, and a day consisting entirely of those clears no threshold. It reports the activity and declines to build a story on it.

The reframe

Shipping is not the only thing worth writing about. It is just the most obvious.

Decisions, surprises, dead ends, things that took longer than they should have, assumptions that turned out wrong. Those happen on the days nothing ships, and they are frequently better material than the launch post, because the launch post is the one everybody writes.

build-in-publicwritingconsistency

Keep reading