Hobby Projects

Things built for fun, mostly to learn something new.

Live
Vanilla JS WebSockets Node.js
Battleships
A real-time two-player Battleships game built for the family. Players join via QR code or room code on any device. Built to learn WebSocket-based multiplayer — a custom Node.js server handles all game state and relays moves in real time, with no third-party backend.
PHP Solis API Solcast HMAC Auth Chart.js
Solar Dashboard
Built to learn third-party API authentication and data visualisation. Live generation, consumption and battery data is fetched from a Solis inverter via their Cloud API (HMAC-SHA1 signed requests). Solar forecast data comes from Solcast. Results are cached server-side and rendered as charts.
PHP MariaDB Strava API Open-Meteo Gmail IMAP Leaflet
Running Log
Built to learn REST API integration, OAuth token management and server-side data caching. Activity history is synced from the Strava API and stored in MariaDB. Each run shows pace splits, HR zones, a Leaflet map with km markers, weather from Open-Meteo, and official parkrun times parsed directly from Gmail via IMAP.