Things I build, break, fix, and write about

1 September 2026
Privacy boundaries when AI touches government records

AI governance gets awkward fast when government records are involved, because the model is rarely the problem. The problem is the sloppy boundary around it, the sort I have seen quietly turn a harmless prompt into a route through records nobody meant to expose.

1 September 2026
Metadata schema choices for content libraries

Structured metadata only works when it matches how people actually retrieve content. I have seen neat schemas fail as soon as the library meets real...

31 August 2026
Federation trade-offs in self-hosted social feeds

Federation looks tidy until you let it touch the edges, and then the odd cases arrive fast. I prefer self-hosted social feeds that stay explicit about...

31 August 2026
FireAvert Z-Wave stove shutoffs for offline safety

FireAvert’s setup does the part that matters without asking Home Assistant to babysit it, which is exactly how I want stove protection to behave. The...

Latest blog posts you might like

18 June 2026
Assessing bot access control with URL Scanner API

Cloudflare URL Scanner Agent Readiness is useful because it shows where access breaks for machines, not where the dashboard looks neat. I trust it more when the score is awkward, because that is...

17 June 2026
nginx rewrite module heap corruption from escaped captures

nginx rewrite module heap corruption is one of those bugs I distrust on sight, because the failure sits in ordinary rewrite handling, not some odd corner. Once the length pass and copy pass disagree,...

17 June 2026
Tracking attack pattern detection in the Security Events

Cloudflare Managed Ruleset changes rarely arrive with much drama, which is exactly why I keep an eye on Security Events. A rule moving from beta to Block can alter the shape of the traffic overnight,...

16 June 2026
Using CONTENT_TYPE to split HTTP traffic by format

Cloudflare Radar API traffic share is one of those measures that looks tidy until you check the rules behind it. I like that; it stops you mistaking a neat chart for the truth, which is how you end up...

16 June 2026
Filter large zones in Cloudflare DNS records page

Cloudflare’s DNS records page is finally usable when a zone turns ugly, but only if you stop treating it like a flat list. I set filters, pin the useful row, and hide the clutter; otherwise I waste...

15 June 2026
Using network_id: 'cf1:network' with remote: true

I keep coming back to Cloudflare Workers VPC because the clever bit is not the binding, it is the return path. Set `remote: true` carelessly and you get traffic that looks fine on paper, then falls...

15 June 2026
Weekly Tech Digest | 15 Jun 2026

Stay updated with the latest in tech! This digest covers AI ethics, auto industry shifts, and the impact of politics on technology, exploring today's pressing issues.

15 June 2026
Use read-only access for Tunnel log streaming

Cloudflare Tunnel granular permissions are only worth having if they stay narrow. I prefer read-only access for log streaming, because diagnosis needs eyes on the connector, not a spare key to the...

14 June 2026
Cloudflare AI Gateway REST API logging and rate limiting

Cloudflare AI Gateway REST API logging and rate limiting is one of those setups that looks tidy until you test it properly. I spent enough time tripping over the default gateway behaviour to know the...

14 June 2026
Keeping smart bulbs powered with Home Assistant

A Zigbee wall controller is the bit that stops smart bulbs being undone by an ordinary switch. Keep the bulbs powered, let Home Assistant handle the logic, and the room behaves like a system instead...