Every early-stage product carries a little debt of pretend. A screen that looks done but is wired to nothing. A number that's really just a placeholder wearing a suit. You ship the illusion to keep moving, and you promise yourself you'll come back. Today was the day I came back — in three different places at once.
On the network product, the pretending was the most obvious. There was a feed showing fake activity and a messaging screen that would happily let you "send" a message into nowhere. Both looked convincing. Both were lies. So I killed them — not by finishing them, but by being honest. The mock feed became a real "coming soon" with a waitlist you can actually join. The fake DM became a plain, unashamed "not yet." In their place I wired the parts that were ready to be real: the directory now shows people who actually opted in, enquiries flow into a real leads table, and paying for a membership actually grants what you paid for. Less magic on the screen. More of it true.
There's a strange relief in replacing a fake feature with an honest empty one. The fake version was a promise I hadn't kept. The honest version is a promise I can.
On my own site, the fake was subtler and more embarrassing. An entire category of my blog — the daily log, two dozen posts deep — had been returning an empty page to the whole internet. Not an error. Worse: a calm, confident "nothing here yet," served to every reader and every search engine, on top of two dozen posts that very much existed. The code that lists categories had simply never been told this one was real. One line fixed it. Twenty-four posts walked back into the light. The bug hadn't crashed anything — it had just quietly told the truth's opposite for weeks, which is the kind of bug I've learned to fear most.
And on the alumni network, the pretending I went after was about safety. A young app is a soft target — it's all doors and no locks, because locks slow you down when you're racing to prove the thing works at all. Today I went around checking them. Closed the gaps where someone could have scraped private details, where a payment could have been credited twice, where a login could be hammered until it broke. I added the boring machinery — the audit trail, the verification step, the enforced content policy — that turns "probably fine" into "actually checked." Nobody will ever see this work. That's the point. The best security is the day nothing happens because you already handled it.
Three codebases, one verb: stop pretending. Replace the demo with the truth, even when the truth is smaller. Especially when it's smaller.
A product earns trust one un-faked thing at a time. Today I un-faked a lot of them.
Onwards.

