Pigeonhole
An old PunBB music forum resurrected as a universal Expo app for iOS, Android and web — Hono + tRPC API, Postgres, and quirky 8-bit NES vibes.
- Expo
- React Native Web
- Hono
- tRPC
Product Engineer · React & React Native · UK
I build products & tools with React, React Native, TypeScript and Python — usually with a state machine somewhere under the hood.
See the work ↓An old PunBB music forum resurrected as a universal Expo app for iOS, Android and web — Hono + tRPC API, Postgres, and quirky 8-bit NES vibes.
A macOS menu-bar app that announces each track out loud as it starts playing, like a radio DJ — with optional AI-written intros including a genuine fact about the artist.
A tiny macOS menu-bar app that mutes your Mac the instant it could embarrass you — on sleep, lid close, or when your AirPods die and audio is about to blast from the speakers.
A daily AI-summarised digest of your Instapaper saves, delivered as a push notification — tap through to a vertical, TikTok-style reader of summary cards.
Finds the duplicate albums Apple Music creates when your uploaded mp3s clash with catalog copies, migrates ratings, play counts and playlists across, then deletes the stale copy.
A fully automated AI pipeline that turns one-line scene descriptions into long-form ambient fantasy reading videos on YouTube — Notion in, published video out.
A full-stack pub-picking app, live at which-bloody-pub.com — TanStack Start front-end, Hono + tRPC API on Supabase, wrapped with Capacitor into native iOS and Android apps with geolocation and push.
Share your favourite song of the week with friends — a social music app inspired by thisismyjam.com, universal across iOS, Android and web from one Expo codebase.
An AI-powered music review tracker — scrapes Pitchfork daily, extracts structured reviews with Claude, and serves them in an SNES 16-bit feed with one-tap add to Spotify or Apple Music.
A Model Context Protocol server exposing five weather tools to AI agents — forecast, current, historical, location search and astronomy — with an evalite test suite scoring the answers.
Remote access and push notifications for Claude Code — kick off agent work on your laptop, get pinged on your phone the moment it needs input, and jump back in over Tailscale.
Blockchain-verified vehicle service history for the UK market — garages write tamper-proof service records to Polygon, so buyers can finally trust the logbook.
A pipeline for band practice videos — pulls clips from a Photos album, overlays song titles with FFmpeg, and sends the results to the band's WhatsApp.
The first attempt at resurrecting the PunBB forum — the legacy MySQL database exposed as a typed GraphQL API with Prisma 2 and Nexus, plus an Expo client with MobX State Tree.
I like turning fuzzy product ideas into calm, well-modelled interfaces — and building the tooling that keeps a team fast.
Most of my work lives in the React and React Native world — universal Expo apps, tRPC APIs, monorepos and the test setups that make them trustworthy — but I'm full stack at heart: Python, C# and Java on the backend, Swift on the Mac.
These projects are a trail of obsessions: resurrecting a 2005 music forum, a Mac that announces your music like a radio DJ, an AI pipeline that turns one sentence into a two-hour film. Each one was me chasing a "what if it worked like this?".