Stack
Libraries, packages and assets I build with
Libraries
Motion
The animation library formerly known as Framer Motion, now framework-agnostic. Hardware-accelerated where the browser allows it, with a spring model that behaves the way you expect.
Phiki
TextMate-grammar syntax highlighting in PHP, so code blocks arrive already highlighted instead of waiting on a client-side pass. Highlights every snippet in the garden.
PhotoSwipe
The lightbox on the travel albums. Pinch-zoom that behaves like the OS viewer, keyboard and screen-reader support out of the box, and no dependencies.
Swup
Page transitions without a framework. Swaps one container, keeps the header and footer alive, and leaves the markup server-rendered. What makes navigating this site feel continuous.
Taxi.js
Small PJAX router for page transitions without a framework. The closest alternative to Swup, which is what this site uses instead.
Build tooling
esbuild
Bundles the JavaScript here in about twenty milliseconds. Fast enough that the build stops being a step you think about.
Kirby
File-based CMS with no database. Every page is a folder and a text file, which means the whole site is greppable, diffable and lives in Git. This site runs on it.
PostCSS
The CSS pipeline on this site: imports, preset-env for the syntax browsers have not caught up to yet, autoprefixer, and cssnano at the end. No framework, just the parts that are needed.
Unlighthouse
Runs Lighthouse across every page of a site rather than one at a time, then puts the results in a single sortable report. Finds the page you would never have thought to test.
Utilities
SVGOMG
SVGO in the browser, with a live preview and a slider per optimisation. Paste an icon in, see exactly what each pass removes before you commit to it.
Utopia
Generates fluid type and space scales as clamp() values from two breakpoints. Replaces the pile of media queries most type scales end up as.
Icons & assets
Iconoir
Around 1,400 hand-drawn SVG icons, stroke-only and MIT licensed, with no account and no attribution requirement. The set this site runs on.