Posts
Blog posts, guides and experiments
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.