Projects
Projects
Client builds, personal tools, and a game or two still in progress.
01Client work
Elliott Promotional Products

Client website for a promotional products company: browsable product catalogue, quote requests, and a clear path through their business services.
- React
- TypeScript
- Tailwind CSS
02
This site

Astro with React islands, a hand-rolled WebGL shader background, zero JavaScript on most pages, and a set of playable browser experiments in the Labs.
- Astro
- React
- TypeScript
- Tailwind CSS
Visit site — This site (opens in a new tab)Source — This site (opens in a new tab)
03Personal tool
Turner Mail

Self-hosted email client built as a personal alternative to Gmail. Talks to a real IMAP/SMTP account with reading, composing, replying, forwarding, starring and trashing, organised into tabbed inbox views.
- React
- Tailwind CSS
- TypeScript
- Docker
04Personal tool
Jarvis

Personal voice assistant built around a living 3D orb that listens for its name. Speech is transcribed on the device, replies stream from an LLM and are spoken aloud sentence by sentence, and it can set alarms or change its own colours on request.
- TypeScript
- React
- Three.js
- AI SDK
- Bun
05In development
Ember Outpost

The game those mobile ads promise and never deliver, minus the ads. Chop wood with orbiting axes, turn logs into firewood, serve the queue of customers and spend the takings to grow a frozen camp. 3D in the browser on three.js's WebGPU renderer.
- TypeScript
- React
- Three.js
- Vite
Your project next?
Have an idea you want to bring to life? Let’s build something great together.
Get in touch