Projects
This page lists my personal coding projects and open source projects I’ve contributed to.
glancecast
Convert a video file into an MP3 with chapters that have sampled video frames as cover art.
concurrently
A snippet for running multiple, concurrent invocations of a Python function
yt-dlp_alexwlchan
A personal wrapper around yt-dlp that downloads and returns info in my preferred format
snippets
My text expansion snippets for faster typing
q.go
Print debugging to a dedicated file for Go
scripts
My collection of helpful scripts, personal tools, and shell config
add-cover-to-ao3-files
Add auto-generated cover images to EPUB files downloaded from AO3 (the Archive of Our Own)
colour-scheme
Theme files for my personal colour scheme
blink-photo-reviewer
Reviewing my photos from Photos.app with blink diffs and keyboard shortcuts
tailscale/tailscale
Tailscale is a mesh VPN based on WireGuard.
web-page-template
A template to use when I create new web pages, including an HTML skeleton and my default layout
create_thumbnail
A command-line tool for creating image thumbnails
brightness_adjust
A command-line tool to show a selection of darker/lighter variants of a given colour
get_live_text
Get text from an image using Apple’s built-in "Live Text" feature
randline
Get a random selection of lines in a file using reservoir sampling
Flickr-Foundation/flickr-photos-api
flickr-photos-api is a Python library for interacting with the Flickr API that I wrote while working at the Flickr Foundation.
Flickr-Foundation/flapi.sh
flapi.sh is a collection of shell scripts for experimenting with the Flickr API.
Flickr-Foundation/flickypedia
Flickypedia is a tool to copy openly-licensed photos from Flickr to Wikimedia Commons. It was the first project I built while working at the Flickr Foundation.
Flickr-Foundation/silver-nitrate
silver-nitrate is the Python utility library I built for projects at the Flickr Foundation.
safari-webarchiver
Save web pages as Safari webarchive files from the command line
nextjs-pageweight-analyser
A script for analysing the page weight and props of Next.js apps
wellcomecollection/wellcomecollection.org
The Wellcome Collection website, which I worked on while I was employed by Wellcome (2017–23).
wellcomecollection/storage-service
The storage service is a cloud-based storage repository for Wellcome Collection's digital archives, designed for long-term storage.
wellcomecollection/catalogue-pipeline
The Catalogue pipeline is a set of data services for populating the search index used for Wellcome Collection's online catalogue.
wellcomecollection/catalogue-api
The Catalogue API is an API for searching Wellcome Collection's online catalogue, backed by an Elasticsearch index.
loris-imageserver/loris
Loris is a IIIF Image API server written in Python. I was a maintainer while I worked at Wellcome Collection, where we ran Loris for several users.



