Skip to content

Community

GlowJam

A glow-themed community fundraiser bringing live production and software together.

LiveVisit live site

About

GlowJam is a glow-themed youth dance fundraiser, and the software I built to make a whole room play together. Everyone joins from their own phone, the games run on the big screen, and a host drives the night. It brings together the production capabilities from Nexus and the web stack from the software side.

What I built

  • One authoritative game server with nothing slow in the path of a tap
  • Deterministic game logic for both games, tested in simulation and with real WebSocket load tests
  • Player identity that is independent of the connection, with anti-replay sequencing
  • Strict protocol parsing on both ends: anything unknown or malformed is refused

The product

Every phone is a controller

Players join anonymously from a QR code or by typing the event code shown in the room. No account, no install.

Two crowd games

Tap Rush is a high-rate tap race with a live leaderboard. Side Pick is a changeable left-or-right crowd vote where the projector shows only the totals, never who picked what.

Three screens, one event code

A player view, a read-only projector view, and authenticated host controls, all generated from one event code.

Built for a loud room and a bad network

A player's identity survives a reload or a dropped connection and resumes with the same score. Replayed or out-of-order actions are rejected, a crash recovers the game in progress, and final results are stored durably.

Designed for hundreds of phones at once

The design target is 50 to 600 live players per event. The projector is updated at most every 50 milliseconds with the combined state instead of once per tap, which is what keeps a room full of phones from overwhelming it.

Stack

TypeScriptNode.jsFastifyWebSocketsReactViteRedisPostgreSQL

At a glance

  • Community fundraiser event
  • Produced with the Nexus sound & lighting inventory
  • Site hosted on the same self-operated infrastructure