Tagged all
#all
35 posts publishedWriting
Tagged all
Making assets fly on WordPress with Image CDNs
Making assets fly on the Jamstack with Image CDNs
Making assets fly and images a breeze with Image CDNs
Creative web: building dynamic websites for work and play
Speaking
There is no Privacy Policy
More pages
Home
My favourite games
My CV / Resume
About
Interop Priority Game 2024
Prioritising the proposals for the Interop Project 2024 as I'd like, prompted by Brian Kardell's "Let's Play a Game"
Alternative text for "I'm a Luddite (and So Can You!)"
Alternative text for the web comic from Tom Humberstone about a history of the Luddites and how you can and should also be a Luddite
Bone conduction earphones revolution — Aftershokz Aeropex review
The bone conduction earphones from Aftershokz blew my mind and are the best earphones I've ever used! Reviewed 9/10.
Simple, cheap GeoIP API using Netlify Edge functions
How you can use Netlify to set up your own GeoIP API service with no rate limits, payment plans or tracking!
Simple, cheap GeoIP API using Vercel Edge functions
How you can use Vercel to set up your own GeoIP API service with no rate limits, payment plans or tracking!
Searching for a Mastodon app for Android
There are plenty Android apps to access Mastodon and the Fediverse, which one works best for me?
Displaying Hillwalking routes on the web with GPX files and Leaflet
Display GPX route files from a GPS tracker on the web using Javascript, Leaflet and an Outdoors Tilelayer
GrapheneOS as my daily-driver mobile OS
My experience running GrapheneOS on a Google Pixel 6 over the past few months as my daily-driver phone OS
My 2022 round-up
Happy new year! This is a round-up of my 2022, including conferences, work, personal life and media!
My comments to Competition and Markets Authority on mobile browser competition
My submission to a Competition and Market's Authority consultation on Mobile Browser Competition
Code Splitting in Alpine.js
Code splitting in JavaScript projects and for Alpine.js
Async Alpine — Asynchronous Alpine component loading
Async Alpine for loading Alpine.js components asynchronously and lazily
SVG generative mountain ridge dividers
Generative mountain ridge dividers using videogame terrain generation techniques, JavaScript and SVG
Managing tracking consent with Cead Consent
How to manage tracking scripts and consent easily using Cead Consent
Personal site stack for alistairshepherd.uk
The technical stack for alistairshepherd.uk including 11ty, Sass, esbuild and gulp
Web Nostalgia and Lost In Translation
Ramblings about web nostalgia, early web experiments and translating through many different languages
Front End Web Development Feeds and Newsletters
Blogs, articles and newsletters I follow to keep up-to-date with Frontend web development.
Conditionally loading a native image lazyload polyfill/library
How you can feature detect native image lazyloading support and load a JS library if not.
Conditionally loading a polyfill for :focus-visible
Helpful snippet to load the polyfill for CSS pseudo class :focus-visible conditionally.
SVG Landscape with live colour theming - new site part 2
'Live' colour-changing landscape using custom properties for an SVG landscape.
Making a Parallax SVG Landscape - new site part 1
How I made the parallax SVG landscape in the header of my website. First of a series of two.
Fixes for Koken Problems
Koken is an old CMS for photographers I've worked with, these are some fixes for those still using it.