Back to selected work
Serpentine Arcade
Eight retro games in an offline-first PWA built for TV remotes and gamepads.
Outcome
Eight games that work offline across TV remotes, keyboards, and gamepads.
- Year
- 2026
- Role
- Design and build
- Status
- Independent
- Stack
- React, TypeScript, Vite, Supabase, Service Worker
The problem
TV browsers, a handful of remote buttons, unreliable networks, and no install flow.
What I built
Eight games, one input layer across remote, keyboard, and Gamepad API, a service worker for offline play, localStorage saves, an optional Supabase leaderboard and trophies, and a Slack feedback webhook.
System
- Input layer
- Game loop
- Service worker
- Optional Supabase
Decisions
The game loop runs outside React.
The backend is optional, so the arcade still works offline.
One canonical live URL.