Development
-
How AI is changing my work as a developer
What using AI for Laravel projects and rebuilding my website has taught me about judgement, learning, design and the skills I want to develop next.
-
Can an AI agent actually use your website?
What Lighthouse’s agentic browsing checks and WebMCP mean for the way I think about interfaces, forms and building websites people can trust.
-
Building accessible multistep forms with Laravel and Inertia
A practical approach to multistep Laravel and Inertia forms, based on my EDR work: saved drafts, server validation, clear errors and predictable keyboard navigation.
-
Why we built One Base around Gutenberg
Our approach to a shared WordPress base theme: full site editing, native Query Loops, selective CSS loading and a simpler editing experience for clients.
-
Handling custom API integrations in WordPress
A practical approach to WordPress API integrations, based on my work across the Stagecoach UK and Canadian websites: validate responses, preserve stable IDs and keep external requests away from page rendering.
-
Adding category filters to a WordPress Query Loop
Add category links to a native WordPress Query Loop while keeping Gutenberg layouts and pagination. Includes scoped queries, input validation and checks.
-
Loading Gutenberg block CSS only when needed
How I separate global, block and pattern CSS in One Base, with a practical WordPress loading example and checks for the editor and frontend.
-
Launching Pathfinder Analytics
Launching my own planning, time tracking and budgeting application, and bringing a whole team onto one system with room to do their best work.
-
Adding reCAPTCHA v3 to Laravel, React and Inertia forms
A practical reCAPTCHA v3 tutorial based on my EDR forms work: fresh tokens in React, server verification in Laravel, and coverage for login, registration and password resets.
-
A morning spent fixing my NGINX cache
A stale page, a cold coffee and the difference between getting a cache working and knowing how to live with it.