Hi.
My name's Will.
I'm a front-end software engineer with a focus on TypeScript and JavaScript tooling. I enjoy creating efficient developer experiences to help deliver great customer experiences.
Welcome to my digital space.
Blog
My thoughts, tips, and what not.
Projects
My side projects.
-
2n8Minimal TypeScript state boilerplate. Primarily for use with React. -
Helston Flora DayAn annual springtime festival in Cornwall, England, featuring traditional dances and celebrations. I designed and maintain the website. - Commits With CharacterA simple convention for conveying semantic versioning to both humans and automated systems via commit messages.
- WAIT! AnimateGiven a wait time, W!A calculates updated CSS keyframe percentages, allowing you to insert a delay between each animation iteration using pure CSS, without JavaScript.
-
Plastic ThemeA simple syntax and UI theme. Designed to be language-agnostic, with a small colour palette to avoid visual overload. -
TingsA collection of small JavaScript utilities. - 5DiceTerminal based game of luck and strategy.
-
BrowserosaurusFor macOS multi-browser users. Select from any of your installed browsers when clicking a link in a non-browser app. Now archived.
Links
A list of interesting links I've found on my travels. Follow the RSS feed to be notified when I add more links.
2026
- aria-label is a code smell
- Create Your Own Web Development Conspiracy
- npmx — a better browser for the npm registry
- 🐹 Deep clean and optimize your Mac
- Stop turning everything into arrays (and do less work instead)
- Master React 19.2 Async Everywhere — Boost Performance
- Intro to Performance of React Server Components
- React Server Components: Do They Really Improve Performance?
- Sonner - An opinionated toast component for React.
- Date is out, Temporal is in
- Lottery Every Second
2025
- Hyper-Typing
- One Year with Next.js App Router — Why We're Moving On
- State-based vs Signal-based rendering
- You Don't Need Animations
- Optical Toys
- `vi.mock` Is a Footgun: Why `vi.spyOn` Should Be Your Default
- The Useless useCallback
- What makes a senior engineer
- Writing Code Was Never The Bottleneck
- I Used Arch, BTW: macOS, Day 1
- It's rude to show AI output to people
- diff-so-fancy
- Andreas Kling's Keynote Presentation on the Ladybird Browser
- Prefer gaps to margins
- UI Fonts - Test and Preview Fonts in Real-Time