A second wind, and the whole loop in one go

milestone origins, gameplay, platform, match-day

Scroll the commit graph between the October dust-off and the first week of April 2026 and there is almost nothing there. No secret masterpiece hiding in a private branch. Just a long stretch where the day job and the rest of life won, same as the summer pause, only stretched out further.

Then it starts again, and you can tell from the first PR that I had made up my mind about a few things while I was away. It drops Spartan and puts PrimeNG in its place — a straight admission that an early UI bet was not paying rent. Some agent-assisted delivery tooling shows up in the tree around the same time, because by then I was leaning on Cursor properly rather than occasionally.

And then PR #2, which is really the point of the whole month. It answers the question the 2025 scaffolding had been asking: can match day, money, training and the inbox live in the same world? Nest picked up match, transfer, training, finance and notification surfaces, with entities and migrations behind them for events, stats, listings, offers and the inbox itself. The Angular client got match detail, transfers, training, finances and inbox pages, each with an NgRx slice underneath. The Go engine got tighter tempo and width effects, better injury and event handling, and CLI output metadata the rest of the stack could actually read. Put together, a manager could prepare a squad, play a simulated match, and walk into the consequences sitting in their inbox. The v1 engine from spring 2025 finally had a season-shaped product wrapped around it.

It was one enormous landing, which I would not defend as good practice. It preserves the causal order of what I was thinking that week and it is miserable to bisect later — anyone reviewing it inherits a cathedral instead of a sequence of small chapels. It also meant throwing away work I had paid for. The gRPC-first client paths, Clerk as the identity centre, the Spartan chrome: all of it was on the block, and most of it was gone within days. That stung less than I expected. The engine's spirit was the part worth keeping; the scaffolding around it had not aged well.

What made the difference this time was coming back with a written list and a sharper reason. The reason was still the same one from 2024: build the game that could actually pull me off Trophy Manager. The honest bit is the calendar. A year of wall-clock time for a foundation a full-time team would have knocked out faster. I am not going to apologise for that — this is a thing built beside a life, and the diary's job is to say how it actually happened.

← All entries