Articles
Notes on building things, solving problems and learning as I go. Occasionally, a detour into books, running, cycling or cooking.
-
Building custom WordPress block patterns for repeatable sections
A practical WordPress block-pattern example: register a category, provide native block markup and keep inserted sections editable for clients.
-
Learning MERN by building a personal dashboard
Learning MongoDB, Express, React and Node by building a personal dashboard for account cards, bills and bookmarks, and learning alongside other developers.
-
Proportional CSS layouts with aspect-ratio
Using CSS aspect-ratio for consistent image frames, with intrinsic dimensions, object-fit and practical checks for responsive content.
-
Building a custom file manager in Laravel
How I built a Laravel file manager for a client, with team workspaces, nested folders and Livewire uploads, and the security checks behind shared files.
-
Testing WordPress projects against PHP 8.1
A focused PHP 8.1 WordPress check: deprecation notices, internal return types, plugins, scheduled work and a careful staging-to-production comparison.
-
Building intly.js: a small JavaScript framework for fast websites
Why I built intly.js: a small ES module framework for page loading, WordPress APIs, cached state, custom interactions and lighter eco websites.
-
Vite and a frontend build process that stays maintainable
Keeping a Vite workflow maintainable through clear commands, repeatable installs, production asset checks and deliberate dependency upgrades.
-
Checking a WordPress website before moving to PHP 8
My approach to a WordPress PHP 8 compatibility check: a private staging copy, useful error logs, realistic journeys and a tested way back.
-
WebP images and the WordPress upload workflow
How to introduce WebP into a WordPress upload workflow while keeping source files, attachment metadata and responsive image sizes manageable.
-
Sass mixins and the question of maintainable CSS
How I decide when a Sass mixin is useful, with a small breakpoint example and checks for readable selectors and unnecessary generated CSS.
-
The conveyor belt challenge that got me the job
A conveyor belt interview challenge in vanilla PHP, the logic and proof behind my solution, and the job offer that gave me confidence as a developer.
-
What Angular 2 changed about the way I think about frameworks
Reflecting on Angular 2: the break from AngularJS, explicit components, services and the work involved in learning an application architecture.
-
What the iPad keeps teaching me about website design
Why designing for an iPad means thinking beyond breakpoints: input methods, readable content, navigation and layouts that survive different contexts.
-
Dark mode and the colour choices behind it
Designing dark mode through colour roles, contrast checks and user preferences, with a small CSS example and a practical review process.
-
Vue 2 and the appeal of a smaller frontend starting point
Why Vue 2 appeals as a small interactive layer: clear templates, deliberate state, computed values and sensible boundaries around existing CMS pages.
-
React 15 and learning to think in components
Looking back at React 15: component boundaries, props, local state and why thinking about data ownership matters more than splitting up markup.
-
Smaller JavaScript makes better interfaces
A practical case for smaller JavaScript interfaces: native controls, local state, progressive enhancement and loading code when it is needed.
-
Build your website like a book: structure, data and usefulness
Why I start website design with the information people need, and what books can teach us about clear navigation, consistent data and useful pages.
-
Why accessibility belongs in the SEO conversation
Readable content, meaningful structure and usable controls support the people visiting a website and help make its information easier to understand.
-
From pages to useful tools: why I believe in web applications
Why I see the web moving beyond brochure pages towards useful applications, and why the familiar strengths of websites still matter.
-
Building a straightforward accordion with JavaScript and CSS
A small accordion for agency websites, built with plain JavaScript, native buttons and visible content before the script loads.
-
CSS3 and Bootstrap: a useful foundation for agency websites
How I use responsive CSS and Bootstrap 3 as a practical foundation for agency websites, while keeping the design, content and client in view.
-
How I approach application design
Designing a business application from the information it holds to the people using it: requirements, wireframes, familiar patterns, permissions and testing.