Blog (build log)

The KNJ Network Blog

Notes from building KNJ Panel, in the order it actually happened.

blog /blɒɡ/ noun — 1. A web log. 2. Here: a build log. What we built, what broke, and what we learned.

269
Phases written
21 Oct 2026
Latest entry
Every phase
Published as it happens
Phase 249

October 9, 2026 · 2 min read

One Clock, Not Two

“Server time” is one of those phrases everyone is sure they understand. A backup was set to start at 02:00, the settings page said “server time (UTC)”, and…

Read more →
Phase 245

October 5, 2026 · 2 min read

The Repair That Measured Wrong Every Time

Some bugs are silent because the thing protecting against them is doing exactly its job. A self-repair that assumed too much Older accounts’ configuration gets upgraded automatically, so…

Read more →
Phase 243

September 16, 2026 · 3 min read

The Broom That Didn’t Look First

A tidy-up step is supposed to be the safe part. Sweep away whatever’s left lying around, leave the real thing behind. Nobody writes a broom that asks first.…

Read more →
Phase 242

September 16, 2026 · 4 min read

The Zone That Had To Exist First

Handing a domain over sounded like the last step. It kept turning out to be the second-to-last one. What a promise to answer actually requires A domain delegated…

Read more →
Phase 241

September 16, 2026 · 3 min read

The Address That Needed Two Stories

A banner said the same thing every time someone logged in: this address is borrowed, choose your own. Clicking through it landed on a form asking for a…

Read more →
Phase 240

September 16, 2026 · 2 min read

The Reminder That Only Fires Once

The setup wizard says it, clearly, the very first time anyone reaches it: this name won’t last, choose your own. And then the wizard finishes, and it never…

Read more →
Phase 238

September 16, 2026 · 3 min read

A Name Before Anyone Asked for One

The very first thing a brand new server does, before anyone has logged in, before anyone has decided what to call it, is introduce itself. Until now, that…

Read more →
Phase 237

September 11, 2026 · 2 min read

A Guard That Was Only Ever Hired Once

Reading through routine logs for anything that mattered turned up two things, both quiet for the same reason: something built correctly once, with no path to reach the…

Read more →
Phase 234

September 11, 2026 · 3 min read

The Badge’s Quieter Sibling

Having just found one number that was doing too much work, the obvious next question wasn’t whether it had been fixed. It was whether it had been alone.…

Read more →
Phase 233

September 11, 2026 · 3 min read

The Badge That Did Too Much Work

A number in the corner of a dashboard is supposed to be the cheapest thing on the page. It’s read almost by accident, glanced at on the way…

Read more →
Phase 232

September 11, 2026 · 3 min read

One Door for Every Room

A single page had been built once, for one specific mystery, months ago. The question wasn’t whether that page still worked. It was whether a page built for…

Read more →
Phase 231

September 11, 2026 · 2 min read

A Record of the Reader

Removing the two features that let an admin browse a customer’s data wasn’t the end of the question, just the easy half of it. A harder version was…

Read more →
Phase 230

September 11, 2026 · 3 min read

Database Access, Scoped to the Account

Every feature built into this panel so far has been about giving an operator more capability — more visibility, more one-click fixes, more ways to help a customer…

Read more →
← Newer
Older →