Playground
Things I built because I wanted to find out whether they would work. Nothing here is a product. Most of it is one file of vanilla JavaScript, and all of it is clickable right now.
The Wall
A shared 64x64 canvas. Everyone gets one pixel every ten minutes, rate-limited server-side by a Cloudflare Worker, so the picture is whatever visitors collectively decide it is.
Earth Observatory
A 3D globe plotting live natural events from NASA's EONET feed — wildfires, storms, volcanoes — fetched at runtime and rendered on a rotating sphere.
Terminal
The whole site behind a command line. Type `help` and navigate the portfolio the way you would navigate a filesystem.
Generative Art
Flow-field experiments that redraw on every run and export to PNG. Same algorithm, never the same output twice.
Code Golf
Solve small challenges in the fewest characters possible. Scored on length, which is a good way to learn how little code a problem actually needs.
Ten Small Games
Hangman, Code Snake, Whack-a-Bug, a typing test, dev bingo, an emoji clicker and more. All vanilla JavaScript, no framework, no build step.
Developer Tools
QR codes, colour palettes, password and lorem generators, Base64, JSON formatting. Client-side only, so nothing you paste ever leaves the tab.
CSS Art
Illustrations built from pure CSS — no images, no SVG. Mostly an excuse to find out how far box-shadow and gradients can be pushed.
Guestbook
A retro guestbook backed by Google Sheets instead of a database. Sign it if you got this far.
There is also a page that is not linked from anywhere. The footer knows where it is.