Dev

I'm self-taught, and a few years in. I work across three areas: web apps with TypeScript and React, iOS apps with Swift and SwiftUI, and games with Unity 6. I build things because I love it, not because it's my job.

Stack

TypeScriptReactNext.jsNode.jsPostgreSQLMongoDBHTMLCSSUnityC#SwiftSwiftUIAppKit

Open Source

Web

Website for Leafy Living, a small UK brand about plants, handmade pots, and simple ways to make your home greener. Built with TypeScript.

Website for Slightly Off Centre Ceramics. Wheel thrown stoneware, Kent based.

Full-stack recipe app. Search millions of dishes, save favourites, build shopping lists, and plan your week with a drag-and-drop meal planner. Built with Next.js, Auth.js, Prisma, and Spoonacular.

Personal portfolio built with Next.js 15, Tailwind CSS, and TypeScript.

Node.js + Express + TypeScript REST API for current weather and air quality data, powered by OpenWeatherMap. Deployed on Vercel.

Next.js 16 + shadcn/ui + Tailwind CSS v4 starter template with dark mode, App Router, and React 19.

Cryptographically secure password and passphrase generator with strength scoring, breach checking, and batch generation. Built with Next.js 16 and React 19.

Minimal Vite 6 + React 19 + TypeScript 5 template with automatic CI/CD deployment to GitHub Pages via GitHub Actions.

Netlify Functions v2 serverless API that returns random friendly word pairs, perfect for generating readable file names, usernames, or project identifiers.

iOS

iOS app for tracking pottery pieces through the making process, from first throw to final glaze. Built with Swift.

Games

An endless runner built in Unity 6. My first complete game.

Genetic algorithm simulation in p5.js. Rockets evolve over generations to navigate obstacles and reach their target.

Conway's Game of Life built with p5.js.