Journal
· Niklas Nilsson
Ten years on the same site: two codebases, eight major upgrades, and the year we finally wrote tests
This broker webpage has been on our hosting-and-development arrangement since 2015. That is one site and two codebases: seven years on Drupal 8 until the platform reached end of life, then a rewrite in 2022 that is now 2,995 commits, 410 releases and eight major-version upgrades old. Two thirds of today's code was touched this year. Here is what held, what was replaced, and what we would do differently.
· Niklas Nilsson
A week to something you can click: what fits in it, measured on seven projects
We say a week to a working prototype in the real stack. Measured on the first seven days of seven projects: between 57 and 439 commits, 13,000 to 105,000 lines, 7 to 41 screens. What is not there at day seven is tests, a pipeline, billing, translations. And between 80% and 100% of the week's files are still in the repository today — the prototype is the product, which is the whole reason it has to be real.
· Niklas Nilsson
What the parts nobody enjoys building actually cost: 17% of the code, 69% of the days
We measured four months of building a subscription product into a platform: roles, permissions, billing, consent, deletion, audit. The plumbing is 17% of the changed lines and 13% of the commits, but it was touched on 69% of the days anyone committed. It is not a phase. It is a tax on every week, and the biggest single bill arrived 109 days in, when the permission model had to be rebuilt.
· Niklas Nilsson
Six warning signs in a codebase you are about to buy, checked across 32 of them
Six things a buyer can check without reading a line of code, run over 50 codebases on our own disk: 79 years of history, 19,513 commits. 22 have no tests. 20 have one person behind half the commits. 15 had not been touched in a year. And the one codebase that passed all six is the one whose test suite had been red since 2023.
· Niklas Nilsson
The technical due diligence checklist we actually run
Twelve questions. Five come out of the repository in a day; seven you can only get by asking. Run on a platform we already knew: it cloned and built in under a minute, the CI provider its pipeline names shut down in January, and its test suite had been red for three months before the last commit — and had never run in CI anyway.
· Niklas Nilsson
What AI-written code breaks, and why the metrics will not tell you
We measured four of our own codebases, two of which crossed from human to AI mid-life. Every metric we could extract described tempo. None described quality. What actually broke had to come from notes, and it had one thing in common: all of it compiled.
· Niklas Nilsson
Is this codebase worth saving? We ran the assessment two years late.
Nobody assessed the system before we restarted it. The client wanted to sell again and a rebuild was never on the table. So here are the four measurements, run in hindsight on 935 files and 64,000 lines — including the one where our own worry turned out to be wrong.
· Niklas Nilsson
The code was fine. The ground it stood on had rotted.
Three repositories behind one product went dark for up to 928 days. Waking the web admin took 24 lines of source. Waking the mobile app took 346 files. The difference is the whole lesson.