Dev log
Reduce motion: kinder animations for every visitor
Site animation is nice, but it makes some people dizzy. Keep your motion, let people turn it off, and switch it off for anyone who asks. Here's how.
7 min read
Dev
Technical notes on WordPress, Shopify, PHP, JavaScript and the other tools I build with every day.
Dev log
Reduce motion: kinder animations for every visitor
Site animation is nice, but it makes some people dizzy. Keep your motion, let people turn it off, and switch it off for anyone who asks. Here's how.
7 min read
Dev log
PHP2Shell explained: check and fix your PHP in plain English
Two critical PHP bugs let attackers take over sites with no password. What happened in plain words, a checker for your PHP version, and how to fix it.
27 min read
Dev log
Touchscreen Macs are coming: make your site easy to tap
Make every button, link and menu at least 44 px to tap, leave space between them, and never hide menus or details behind hover. Here's the CSS to do it.
12 min read
Dev log
Faster images, faster site: every trick, with examples
Resize your images, save them as WebP or AVIF, lazy-load everything below the first screen, and let a CDN and caching deliver them. Here's how to do each one.
10 min read
Dev log
Build a scroll ruler sidebar with letter-by-letter titles
Section titles that ride a ruler and swing into place one letter at a time, rebuilt from the ArtCraft site with CSS and a short script.
10 min read
Dev log
Canonical URLs: fix duplicate pages for better SEO
When one page opens at several addresses, a canonical tag tells Google which one is real. Here's how to set it up and test it on WordPress and Shopify.
8 min read
Advertisement
Dev log
CSS anchor positioning: move elements on hover, no JavaScript
Give the hovered element an anchor-name, make another element follow it with position-anchor, and add a transition. It slides there, no JavaScript.
8 min read
Dev log
Core Web Vitals in plain English: LCP, INP and CLS
What the three Core Web Vitals measure, the numbers that count as good, how to measure them on real visitors, and the fixes that help most on WordPress sites.
5 min read
Dev log
Security headers for WordPress, without a plugin
Five HTTP headers that close common holes in a WordPress site. The few lines of PHP I use to send them, and how to check they work.
4 min read
Dev log
WCAG 2.2: the nine new success criteria and how to meet them
WCAG 2.2 added nine new rules and removed one. Here is what each new rule asks for, which ones count at level AA, and the code I use to meet them.
6 min read
Dev log
How AI search finds your site: crawlers, robots.txt and llms.txt
AI answers start with a crawler. I explain which bots fetch your pages, which ones train models, and how I let AI search in without giving away content.
5 min read