Projects

Personal projects built outside of work — full-stack applications exploring different problem domains.

CrewBoard screenshot

CrewBoard

A realistic flight schedule generator for flight sim pilots. Select an airline and aircraft family, configure preferences, and receive multi-leg schedules built from real FlightAware route data. Enforces consistent aircraft types within out-and-back pairs, mirroring real airline operations.

Next.jsTypeScriptPrismaPostgreSQLNextAuthTailwind CSSVercel
GameShelf screenshot

GameShelf

A full-stack gaming community platform — Goodreads for video games. Track your personal game library across five statuses, write half-star reviews with spoiler toggles, browse forum threads with nested replies, and follow other gamers for a personalised activity feed.

Next.jsTypeScriptPrismaPostgreSQLNextAuthZodRAWG APICloudinaryTailwind CSS
Kumo no Chaya screenshot

Kumo no Chaya

Static brochure site for a fourth-generation mountain teahouse in Yoshino, Nara. Four pages — home, tea menu, the journey, and about — with the menu driven by a JSON data file. Built with Eleventy and Nunjucks, no images, no framework, no runtime.

EleventyNunjucksVanilla CSSJavaScript
Frontline Scholars screenshot

Frontline Scholars

Brochure site for a fictional pan-African scholarship and mentoring NGO operating across six countries. Five pages covering scholar profiles, programmes, and a get-involved section — with animated impact counters and a country grid on the home page. Built with Astro and Tailwind CSS, with a vanilla JS layer for scroll reveals and the number counter animation.

AstroTailwind CSSJavaScript
Moto screenshot

Moto

Brochure site for a fictional upscale grill restaurant with locations in Nairobi, Dar es Salaam, and Kigali. Eight pages including a location-aware menu system — each city gets its own menu page with prices in local currency. Built with Astro and Tailwind CSS, with Cloudflare Pages for static hosting.

AstroTailwind CSSJavaScript
Trouvaille screenshot

Trouvaille

Static brochure site for a fictional boutique natural wine bar in Marseille, France. Single-page layout with sections for the wine philosophy, pours, story, and location — styled with a warm editorial palette of terracotta, ochre, and cream. Built with Astro and Tailwind CSS, with a small vanilla JS layer for scroll reveals and the mobile menu.

AstroTailwind CSSJavaScript