Web Apps & Games
Some publicly available web applications and games built for fun and entertainment - see About for 'actual' work.
These links may change or be withdrawn at any time.
Dominoes


A web-based dominoes game for local play against computer opponents. Tiles are drawn entirely in CSS - no image assets. Responsive design with automatic light/dark mode support. Built with React 19, TypeScript, Vite, and Bun. Closed source. Rulesets:
- Block Dominoes (2-player, double-six)
- Draw Dominoes (2-player, double-six)
- Jamaican Dominoes (4-player partnership)
Draughts


A web-based English/American draughts (checkers) game for local play - two players sharing one device, or a single player against a computer opponent with adjustable difficulty. Full WCDF ruleset including mandatory captures, forced chain captures, and kings that move and capture in any direction. Selectable colour themes for the board and UI. Responsive design with automatic light/dark mode support. Built with React 19, TypeScript, and the rapid-draughts rules engine and computer opponent running in a Web Worker. Closed source with open source components as acknowledged and linked.
Chess


A web-based chess game for local play - two players sharing one device, or a single player against a Stockfish-powered computer opponent with adjustable difficulty. Full standard chess rules including castling, en passant, promotion, and draw detection. Selectable colour themes for the board and UI. Responsive design with automatic light/dark mode support. Built with React 19, TypeScript, and Stockfish running in a Web Worker. Closed source with open source components as acknowledged and linked.
Sokoban Gardener


An implementation of the Classic 'Sokoban' puzzle game with a gardening theme, levels browser with filters and demos for thousands of levels playing back precomputed solutions. Run using React 19; TypeScript 5.6; Vite 6; HTML5 Canvas API. Solutions pre-computed offline using the Festival solver on AWS EC2 Windows. Closed source.
Snack Attack

A fast-food themed Space Invaders game built with React, TypeScript, and HTML5 Canvas. Defend against invading burgers, fries, and soft drinks! Same play mechanic as 'Classic Invaders'. Touch friendly controls on touch friendly devices. Closed source.
Classic Invaders

A Space Invaders-style fixed shooter game built with React, TypeScript, and HTML5 Canvas. Applies a retro CRT aesthetic with scanlines and glow (switchable to help out low-power devices). Emulates original 'false' colour with coloured transparent strips over a monochrome display. Touch friendly controls on touch friendly devices. Closed source.
Leaf Shooter


A bubble shooter type game where players aim and fire colored leaves to match 3+ of the same color. Matched leaves pop, and any leaves no longer connected to the ceiling fall. Features continuous level progression, particle effects, sound, watercolor paper texture throughout, and autumnal theme with automatic light/dark support. Think of it as something to do when you're on a long call. Built with React, TypeScript, and originally with Canvas but now ported to PixiJS (thanks, Safari!). Closed source.
Freecell

A React TypeScript implementation of the classic FreeCell solitaire card game with Microsoft's original RNG algorithm, deployed as a static website on AWS. Open Source.
Klondike-Solitaire

A React TypeScript implementation of the classic Klondike solitaire card game, deployed as a static website on AWS. Options for single or double deck and single or 3-card draw. Open Source.
Wordsearch


Full-stack Wordsearch game with React TypeScript frontend and Python Lambda backend. Various player options and content filtering. Dark and light mode responsive theme. Closed Source.
Hangman


Full-stack hangman game with React TypeScript frontend and Python Lambda backend. Various player options and content filtering. Dark and light mode responsive theme. Fun for all the family! Open Source
Towers of Hanoi


Implementation of the classic Towers of Hanoi puzzle game. Built with React, TypeScript, and Bun. Dark and light mode responsive theme. Open Source.
Historical Day

Explore historical weather data (for major cities, from 1940 onward) and significant events for any date. Try your birthday! A free and open-source project built with TypeScript, React, Next.js and Bun, exported as static assets. Dark and light mode tracking and responsive design. Historical weather provided by Open Meteo. Historical events provided by Wikimedia.
Tarot Card Shuffle Draw
N.B. Tarot cards were chosen as a more interesting alternative to regular playing cards - there are 2 decks and cards have an 'up' and a 'down'. Designed for demonstration/entertainment purposes only. A free and open-source project that shuffles and returns a selection of Tarot cards. Users can choose different decks, specify the number of cards to draw, and include reversed cards in the draw. Public domain illustrations of the cards are presented with the results. Deployed as a React static website frontend and serverless Go backend using AWS S3, CloudFront, Lambda, and API Gateway. Deployed with Tofu (Terraform).
