Deno Builds on Netlify

The Netlify build environment is a Docker image with preinstalled packages like Node and Python. For sensible reasons the packages are rather “stable”, or “outdated”, depending on your sensibilities. Environment variables like NODE_VERSION=16.5 are used to update dependencies if you live on the edge. If you live too far on the edge, Netlify doesn’t provide enough. […]

A New Component Library for Parts Giant

Back in 2015 I built the front-end for Parts Giant. Following a successful five years of e-commerce, Parts Giant handed me a similar brief with a refreshed design. Five years is a long time on the web. This was an opportunity to showcase that evolution and deliver a thoroughly modern front-end component library building on […]

The Final Off-Canvas Navigation?

Eight years ago I wrote a (then) modern guide to implementing off-canvas navigation for Smashing Magazine. My original demo is still online (links in the article are broken). It’s rather quaint by today’s standards. Back in 2013 responsive design was not yet fully accepted as the norm. Unthinkable! JavaScript was needed to fix the nav […]

Relative Date Formatting in JavaScript

Did you know those behemothic JavaScript date libraries are basically obsolete? A few weeks ago I learnt how to use the Internationalization API for natural alphanumeric sorting. This week I’ve been using the DateTimeFormat and RelativeTimeFormat APIs. Like all native APIs they’re a little verbose and unintuitive, but also extremely powerful. Browser support has caught up […]

Natural Alphanumeric Sorting in JavaScript

I’m building a progressive web app (PWA, aka website) to play audiobooks. It’s a side project that is teaching me a lot. The seemingly simple features are some of the hardest to implement. Natural alphanumeric sorting is one problem that took me half a day to solve. It’s reminiscent of an issue I debugged in […]

Cloudflare Pages and Workers

I use both GitHub Pages and Netlify for static web hosting. GitHub Pages are great for project documentation. Netlify allows more control. Cloudflare Pages is a new contender to the game offering a similar build and deploy process. I have a new side project in the works. A good opportunity to try out Cloudflare Pages. The […]

CSS Focus State

One big and easy win for website accessibility is focus state. Unfortunately this is too often ignored, and worse, actively regressed. Early in my career I was guilty of: This removes the default browser style and makes keyboard navigation practically impossible. Later I would learn the error of my ways and allow the browser to do […]