On Sunday, August 9, indie developer Terry Godier published a blog post titled “Mea Culpa – Dark Hours.” By mid-morning it had racked up 383 points and 169 comments on Hacker News, making it one of the day’s most-discussed stories. The post was an apology: Godier had used Claude to build a web app called Dark Hours, a utility for checking what’s visible in the night sky. A developer named Beher pointed out on Bluesky that the app was strikingly similar to his own open-source project, DarkHours.app — same name, same feature set, even the same bug that routed users to “random fields in Mexico.” Godier admitted the similarity, promised to change the name and differentiate the features, and wrote the post to direct attention to Beher’s original work.
It was a gracious apology. It was also, whether Godier intended it or not, a remarkably effective launch.
The original DarkHours.app did not have 383 points on Hacker News. Neither did Godier’s version before the controversy. What had 383 points was the apology for the controversy. The confession outperformed the product. This is not a glitch in the system; it is the system.
The Confession Economy
There is a well-worn playbook for extracting attention from a mistake: do something questionable, get called out, apologize publicly, and watch the apology circulate further than the original offense ever could. The pattern is so reliable that it has become a kind of shadow business model for people who make things on the internet. The product is the pretext; the apology is the product.
Godier’s post is a near-perfect specimen. It is humble. It links to the person he wronged. It contains enough technical detail — the Claude-generated code, the reproduced bug — to satisfy the HN crowd’s appetite for forensic drama. It even includes a promise to do better. The comments section, predictably, fills with debates about AI ethics, open-source licensing, and whether the whole thing was an honest mistake or a calculated grab. Everyone gets to feel something. The post gets upvoted. The apology travels.
None of this requires Godier to have planned it. The incentives operate whether you’re cynical or sincere. The architecture of platforms like Hacker News and Twitter rewards conflict and resolution far more than it rewards quiet utility. A stargazing app is a stargazing app. A stargazing app plus a plagiarism accusation plus a mea culpa is a story. Stories get points.
What the Upvotes Actually Measure
The 383 points on that HN thread are not a measure of the post’s quality, nor of the importance of the underlying issue. They are a measure of the post’s suitability as a vessel for argument. The thread is an arena where people can fight about AI, about intellectual property, about the ethics of using LLMs to generate code, about whether open-source licenses mean anything anymore. The post itself is almost incidental.
This is not a criticism of Hacker News. It is a description of how every platform that ranks content by engagement functions. The algorithm does not distinguish between “this is important” and “this is a good place to have a fight.” If anything, the latter scores higher, because fights generate more comments, and comments are engagement, and engagement is the signal.
A developer I spoke to in a Slack channel for indie iOS builders put it bluntly: “I’ve had apps on the App Store for three years that never got a tenth of the attention that guy’s apology got in six hours. I’m not saying I’d fake a controversy. I’m saying the math is not lost on me.”
The math is not lost on anyone. When a confession generates an order of magnitude more visibility than a launch, the incentive structure has spoken. It does not matter whether you personally would ever manufacture a scandal. Enough people will — or will simply fail to avoid one — that the pattern becomes a feature of the landscape.
The Real Cost Is Borne by the Quiet Ones
The loser in this dynamic is not Godier, who now has a larger audience than he did a week ago, and not Beher, whose project got a wave of attention it would not otherwise have received. The loser is the developer who builds something useful, ships it without drama, and watches it sink into the App Store’s back pages because there is no argument to be had about it.
The App Store rejected Godier’s original Dark Hours app earlier this month, a decision he wrote about on August 7. That post did not get 383 points. It got a fraction of that. Rejection is a story, but it’s a common one. Rejection plus plagiarism plus apology — that’s a narrative arc. The quiet developer who simply builds a good app and submits it and gets it approved and updates it and responds to user feedback and never once appears on Hacker News? That developer is invisible to the attention economy. And increasingly, that means invisible to the actual economy, because discoverability on the App Store is so broken that a moment of viral attention is one of the few remaining ways to get an app in front of users.
This is the part of the story that the 169 comments mostly missed. The debate about whether Godier acted in bad faith is a distraction. The more interesting question is why a confession is worth more than a creation, and what that does to the people who just want to make things.
Godier’s mea culpa was well-written and seemingly sincere. I have no reason to doubt it. But the fact that it was the most visible thing he has ever shipped is not a comment on his character. It is a comment on ours.