Blog
-
22 Oct 2026
Patched overnight, checked by lunchtime: how we handled this week’s PHP flaw
A serious PHP flaw went public a day before its fix. This is what we did between the fix landing and Thursday lunchtime, and what you should expect from whoever…
-
21 Oct 2026
Awaab’s Law phase 2: what your records will need to show
From 30 November the deadlines are due to cover far more than damp and mould. Here's what a social landlord's records need to hold to prove each one was met.
-
16 Oct 2026
The agent that builds never reviews its own work
How Moonfive uses AI agents to write code, and the separate checks every change has to pass before it gets near a client's live system.
-
14 Oct 2026
Your billing job will run twice one day. Make sure it only charges once
The ways an automated rent run can bill a tenant when it shouldn't, and the rules we built into Habitat to stop each one.
-
4 Oct 2026
Stop starting every order from a blank page
Why repeat work deserves a template the business controls itself, and the two design calls that made it safe to rely on.
-
7 Sep 2026
The first system built on our shared toolkit found four things wrong with it
What actually reusing our internal packages, instead of just intending to, taught us about them.
-
26 Aug 2026
Making invisible errors visible before the client has to tell you
What changed when a routine bug in our own error logging turned into a decision to stop treating “no news” as “no problems.”
-
24 Aug 2026
The contract system that flags its own mistakes before a client ever sees them
How we replaced a five-person manual sign-off chain and a hand-edited legal document with one system that assembles the right contract, checks its own cross-references, and always knows exactly where…
-
19 Aug 2026
The checklist that gets smarter every time it’s used
A repeatable enquiry process doesn't have to start from zero every time. Here's what changes once past answers become something your team can search, instead of something someone has to…
-
13 Aug 2026
Proving a premium service tier is actually faster
How we replaced a marketing promise with a number a manager can check on any given day.