Canvas Animations: 2

Published on June 27, 2025

Six more self-contained HTML5 canvas experiments: parametric curves, particle-like fluid dynamics, ripple networks and more.

Canvas Animations: 1

Published on June 26, 2025

Six standalone canvas JS animations: 3-D tally lines, a Fermat spiral, a particle system, concentric circles, a starfield and a Lissajous curve.

Audit GTM Containers in Sheets

Published on June 24, 2025

A step-by-step guide to auditing multiple GTM containers in a Google account using Apps Script, Google APIs and Cloud.

Binary Jazz – A Random Music-Genre API

Published on June 17, 2025

Fetch a random music genre on every click. I'm particularly proud of the button animation. Details on my GitHub.

Julix – Quick Fractal Experiment

Published on June 09, 2025

A looping Julia-set fractal animation made with vanilla JavaScript. Zoom, pan, change palettes and iteration depth through a control panel.

Prism: Styling Code Blocks

Published on June 03, 2025

An interactive look at the different Prism.js bundles and themes you can pull in to style code blocks for easier reading.

Understanding @graph in Schema.org JSON-LD

Published on June 02, 2025

How to use @graph in JSON-LD to better structure webpage data, when to use it and the available alternatives.

Hypotrochoid

Published on May 15, 2025

Nested hypotrochoid curves on a canvas: pale-grey strokes trace multiple rotating gears on a charcoal backdrop. Code on GitHub.

BIMI Authentication

Published on May 11, 2025

A practical guide to BIMI email authentication: DMARC, SVG logos and VMC certificates – boost open-rates and trust.

Is This a Gecko?

Published on May 09, 2025

I created a critter and put some music behind it. Fish, amphibian or lizard? You decide.

National Archives Lucky Dip

Published on May 07, 2025

Pull a random item from the UK National Archives with every click. It’s easy to get lost – some records sit behind a paywall.

Semantic Data for GA4 Reporting

Published on May 03, 2025

Use JSON-LD not only to boost SEO but to build semantic reporting in the dataLayer for GA4.

Dynamic Sitemaps with Netlify

Published on April 23, 2025

A guide to building live-updating sitemaps for static sites using a tiny Netlify Function.

Postcode Lookup

Published on April 05, 2025

Research any UK postcode with postcodes.io data and the Perplexity Sonar web-search-grounded LLM model.

Kinetic Flux

Published on March 24, 2025

An interactive THREE.js animation that renders a 3-D wireframe with orbit controls and colour cycling.

Compress Video from Your Terminal

Published on March 17, 2025

Batch-compress video files in your terminal with FFmpeg – no need for online services.

Robohash

Published on March 05, 2025

Robohash is a robot-based hashing programme for random image generation. I built a simple interface for it.

Asteroids

Published on February 26, 2025

An HTML5 canvas animation in an Asteroids theme, with music from Suno.