Uses
What I build with
The editor, libraries and gear behind my work and this site. Updated when something changes.
Writing code
- VS Code
My editor since the M.Tech days, with Prettier and GitLens. [Placeholder: theme and font]
- Claude Code
An AI coding agent in the terminal. I write repository rules for it so it follows the codebase’s conventions.
- [Placeholder] Terminal
Which terminal app and shell you use.
- Chrome DevTools
Performance and Network panels most days; Lighthouse before anything ships.
Day-to-day stack
- TypeScript, React, Next.js
What most of my work is written in, from checkout pages to operations consoles.
- Tailwind CSS v4 and Radix
The base of the design system I maintain: Radix for behaviour and accessibility, Tailwind for the look.
- Zustand and TanStack Query
Zustand for the little client state there is, TanStack Query for everything that comes from the server.
- React Hook Form
Long payment forms without re-rendering the page on every keystroke.
- Vitest and ESLint
Tests, plus a few custom lint rules for mistakes the team kept making.
This site
- Astro
Static pages, a little JavaScript where it earns its place, and content collections for the writing.
- Cloudflare Workers
Hosting. Every push to main deploys; nothing else touches production.
- Young Serif and Figtree
A friendly serif for headings, a clear sans for everything else.
- Satori and sharp
Generate the share images and the avatar favicon at build time.
- Web Audio API
The pops, ticks and chimes are synthesised in the browser, so there are no sound files.
Desk
- [Placeholder] Laptop
Which Mac, and the spec that matters to you.
- [Placeholder] Monitor
Size and how you use it.
- [Placeholder] Keyboard and mouse
Anything you’d recommend.
- [Placeholder] Headphones
The pair the avatar wears in the afternoon.