← Blog

My build-in-public tool showed I had quit. So I rebuilt it on itself.

· 4 min read

Openstage turns your GitHub commits, along with notes, posts and milestones you add, into a public timeline, so people can follow what you build without assembling it from five tabs. I made it in the spring. My own timeline on it is the first thing a visitor sees.

On June 20 I stopped committing. I did not decide to stop. I had a job search to run, a client winding down, and other projects pulling at me. The last commit sat on my laptop, never pushed. For 82 days my page on Openstage told anyone who looked exactly what had happened: nothing.

That is the whole point of the product. It shows the work, including the absence of it. I had built a tool to prove consistency and it was proving the opposite about me, in public, at the top of my own landing page.

What the page showed

Eleven accounts, most of them friends. A "Posted" tab that had never held a post. A file for AI crawlers that cheerfully announced the eleven. A July plan to recruit thirty-six named builders by direct message that I never sent a single message from, because that's really not my style and I should have known it.

Nobody had paid for Pro. Not once. I had told myself that was a reach problem. It was, but it was not only that.

What was broken underneath

When I came back on September 10 I did not start with features. I started by reading my own app as if I had never seen it.

Email had never worked. Not once since the app existed. The Stripe checkout sent receipts to an address I had made up. Signing in asked GitHub for read and write access to every private repo you own, and commit messages from those repos went public by default. The dashboard made 178 calls to a URL shortener on every load, with a cache key that never repeated.

None of this was visible from the outside. All of it was visible from the inside, if I had looked.

What I changed

The product is smaller now and says one thing. Your GitHub commits become your proof-of-work page. It is useful with zero other users, because the page is the point, not the network.

I rebuilt the weekly recap twice. The first version wrote your post for you. I ran it against three real accounts and it picked the wrong commits every time, because no program knows which of your commits mattered this week. The second version lists them and you choose. You write the sentence. It only hands you the list.

Private repos are off by default now. If you turn one on, the commit messages show and the links do not. Code private, build public. Shared repos sync too, so a team shows up on the repo they share.

Email works. Subscribe works. The checkout sends real receipts. There is a content security policy. The landing page sells one product instead of three.

How I am running it this time

I wrote a ten-week plan with dated gates and a verdict on November 15 that does not move. Each gate has a number it needs and what happens if it misses. I have already reversed three decisions in it, in writing: the recap that wrote for you, the recap as the reason to use the product, and hiding private repos entirely. The first gate passed four days late, with one condition scored on weaker evidence than I had planned.

I post my own recap every week, and I am showing up where builders talk instead of waiting to be found.

Where it stands

Eleven accounts before the relaunch. One more since, and I have not told anyone yet. This post is me telling people. Three visitors from my first clip, no signups from it. Zero payments from anyone who is not me. The first stranger to take a hard look wrote back that the execution was strong and the audience was thin. That is the same diagnosis as my own plan.

So this post is the honest version of a launch. The product works. The question I am spending the next six weeks on is whether anyone wants it. If you build in public and want one link that keeps itself up to date, here is mine, and yours can be here as well.