What we've
been thinking about.
Writing on operations software, institutional design, the unfashionable parts of the stack, and what we're learning building things that have to last. New posts roughly fortnightly.
Writing on operations software, institutional design, the unfashionable parts of the stack, and what we're learning building things that have to last. New posts roughly fortnightly.
Typing the same fact into three systems is the clearest sign that you do not have a central record. The four costs, where the habit comes from, and how to retire it in priority order.
Two systems return different answers to the same question. There are only three reasons that happens, and only one of them is a data problem. The investigation, in order.
Every team that has invested in a proper system also has a shadow spreadsheet. The four reasons they appear, what each one is telling you, and how to absorb them without insulting the team.
Single source of truth is easy to agree with and hard to implement. A practical guide to the ownership map, the conversation it forces, and what changes when it is in place.
A house under a tenancy in 2026 sits inside eight separate compliance cycles. Here is the actual list, with cadence and what fails when one slips.
CP12 basics, the failure codes that catch landlords out, and the chain of evidence the tribunal will want to see.
A practical, low-risk guide to where generative AI genuinely saves time for charities and faith-based organisations — and the four uses we tell clients to avoid.
A balanced look at what Excel does brilliantly, what it does badly, and the four warning signs that you've crossed the line from "useful spreadsheet" into "fragile critical-path system you can't afford".
EPCs feel like paperwork. Until one expires. Then they become the reason you cannot let, cannot evict, and cannot remortgage.
A worked example of where the hours go when a small team runs on spreadsheets — and why "but Excel is free" is the most expensive sentence in operations.
Six lessons from shipping a role-scoped, audit-trailed LLM assistant inside production diocesan software — what worked, what we ripped out, and what regulated buyers actually ask about.
PAS 79, the responsible person, the post-Grenfell expectation, and what an FRA actually has to record in 2026.
A practical sequence for moving from a critical spreadsheet to a proper database-backed system — with the four ways teams get this wrong, and the one rule that prevents most of them.
Periodic tenancies, decent home standard, possession grounds, the database. Five things a landlord's system needs to do that it almost certainly does not do today.
Twelve months in, here's what AI coding tools genuinely changed for our team — what got faster, what got slower, and the four anti-patterns we tell new joiners to avoid on day one.
The eight things that actually move the needle on a small business website's search ranking — and the dozen that don't. A practical, jargon-free guide.
No-fault evictions are out. The replacement is a grounds-based possession workflow that is genuinely more administrative work, with more defensible outcomes.
Where does the data go, who trains on it, and what does the audit trail look like? The five questions to put to any AI vendor before you sign — and the answers that should be deal-breakers.
A dashboard reflects whatever its query last returned. A report tells you what was true on a date. Treating them as the same thing is the most expensive reporting mistake in operations.
The creator of Node.js and Deno has been arguing that JavaScript — not Python — will be the language of AI agents. Here's the case he's making, and what it means for the businesses building with these tools today.
Most operations teams produce twenty reports nobody reads. The three that actually matter, what they should contain, and why everything else is noise.
The hidden integration tax, the data-fragmentation cost, and the point where the SaaS stack genuinely becomes more expensive than building.
Four ways to raise the PHP memory_limit setting — php.ini, .user.ini, .htaccess, and ini_set() — and how to pick the right one for your hosting setup.
The cleanest .htaccess rules for forcing your site to a single canonical hostname — www-to-non-www and non-www-to-www, with HTTPS.
Software documentation rots because nobody owns it after sign-off. Treating it as a deliverable guarantees decay; treating it as a feature is the only thing that does not.
When you can't get the email reset to work, here's how to set a WordPress admin password directly in the database — and why doing it right matters.
A practical reference of the MySQL statements you'll write again and again — SELECT, JOIN, GROUP BY, indexes, and the gotchas that catch people out.
The four ways to verify a site in Google Search Console, which one to use when, and the three reports worth checking weekly afterwards.
A short, opinionated guide to installing GA4 on a UK site in 2026 — what to track, what to switch off, and what to use instead if you'd rather not.
A clear-eyed explanation of WordPress themes — what they are, how they relate to plugins, when to buy vs build, and the four red flags that should put you off a theme.
An honest look at where WordPress still wins in 2026, where it doesn't, and the four alternatives we reach for when it's the wrong tool.
A practical guide to font sizing in modern CSS — why rem beats px, how clamp() lets you write a single fluid scale, and the type-system pattern we use on every site.
The four ways to centre an element in CSS, when to use each, and the modern one-liners that have replaced the hacks of 2014.
The disavow tool is one of the most misused features in Google Search Console. Here's what it does, when it actually helps, and when you should leave it well alone.
The right way to get a visitor's IP address in PHP when your site sits behind Cloudflare, a load balancer, or any reverse proxy — and the spoofing risks of doing it wrong.