Projects

A collection of things I've designed, built, and shipped.

0 projects0 featured0 in progress0 technologies
Works on a boatOffline-first

Sailor Plus is a cross-platform credential management system built for superyacht crew. The maritime industry relies heavily on paper-based certificates and manual tracking — Sailor Plus digitises this workflow with a mobile-first app that works reliably even in areas with poor connectivity. The system uses PowerSync for offline-first data synchronisation, ensuring crew can access and update their credentials regardless of network conditions. Authentication is handled through Clerk, with Supabase providing the backend database and storage layer. The app is built with React Native and Expo for iOS and Android, with a Next.js web dashboard for fleet managers.

Key Features

  • Offline-first architecture with automatic sync when connectivity returns
  • Cross-platform mobile app (iOS & Android) with shared codebase
  • Web dashboard for fleet managers to oversee crew compliance
  • Document scanning and expiry notification system
  • Role-based access control for crew, captains, and management
Offline-first

A journalling app where each entry becomes a star, and new thoughts link to past ones in real time as you write.

Key Features

  • Real-time connection matching while you write
  • Star-map visualisation of entries and themes
  • Plain-language descriptions of why two entries connect
  • Background analysis that never interrupts writing
  • Full-text search and browse
Web + mobileClone and go

A local-first monorepo template I pulled out of Sailor Plus, so I can start a new cross-platform app with sync, auth and a database already wired up.

Key Features

  • One codebase for web (Next.js) and mobile (Expo)
  • Offline-first sync out of the box (Postgres ↔ SQLite via PowerSync)
  • Providers swappable without rewriting the app
  • Installs and boots before external services are configured
  • CI checks, shared schemas, and docs included
Clone and go
You're looking at itCustom everything

The site you're currently browsing. Built from scratch with a custom "Obsidian & Amber" design system featuring warm copper accents on a near-black background. Every animation is hand-crafted using IntersectionObserver for scroll-triggered reveals. Typography is self-hosted using Syne for display headings and Plus Jakarta Sans for body text, ensuring fast load times and consistent rendering. The site uses Next.js with view transitions for smooth page navigation and is deployed on Vercel with automatic image optimisation.

Key Features

  • Custom design system with CSS variables and Tailwind integration
  • Scroll-triggered reveal animations using IntersectionObserver
  • Self-hosted typography for performance and consistency
  • Contact form with honeypot, rate limiting, and interaction-time spam protection
  • View transitions for smooth page navigation
Built in a weekend
AI Meal Planner screenshot

AI Meal Planner

Recipe scraper with portion normalization, drag-and-drop meal planning, and automatic shopping lists.

AI/LLMTypeScriptReact
Zero to authTested end-to-end
Auth Starter Kit screenshot

Auth Starter Kit

Production-ready authentication template. Clone to working auth and database in under 10 minutes.

Next.js 15SupabaseTypeScriptZodVitestPlaywright
Legacy rescuedAviation-grade
SAMS Web App screenshot

SAMS Web App

Converted legacy desktop aviation system to a web application within a small development team.

BlazorC#MS SQL
Kenya-basedTechnical Lead
Ecoscapes ERP screenshot

Ecoscapes ERP

Led rollout of ERP and e-commerce integration for a Kenyan landscaping company.

OdooNode.js
Full CRUD
Sizzle Basket screenshot

Sizzle Basket

Recipe management and kitchen budgeting application with data persistence.

ReactMongoDBAxios
Co-foundedFirst venture
Firefinch Media screenshot

Firefinch Media

Co-founded a web and media business. Logo design, branding, and client website delivery.

SquarespaceDesign
Home accountingBlazor Server
Squirrel screenshot

Squirrel

Home accounting and report generation web app for tracking household finances.

Blazor Server