Originally published on the Openstage blog.
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.
Mine: openstage.dev/tuxnotfound
Yours: openstage.dev/your_username

Top comments (2)
You've kept November 15 fixed, but passing a gate on weaker evidence can still change what counts as enough to continue. "Zero payments from anyone who is not me" makes that distinction matter: a passed gate could justify more building without giving you a clearer demand verdict. What evidence had you originally required for that condition to pass?
Good question. The original bar was a non-founder at the keyboard, like someone from my pilot team, turning their own week of work into a postable recap in under a minute. Before the gate date nobody had tried it, so I scored it on a timed read an agent ran against public accounts: about 25 and 65 seconds. That shows the tool works, but it says nothing about demand.
The difference matters, as you point out. The early gates didn't measure demand. They checked that I was showing up and that the tool was usable. Demand is scored once, on November 15, and that gate needs at least one payment from someone who isn't me, with no substitute. Passing an early gate buys the next step, never the verdict.