Hubbub
For friends who want a quick game night over a group chat or a call without installing anything or making accounts. One person opens a room, everyone else joins from their own phone with a short code.
- Category
- Web app
- Status
- Live
- Role
- Design and development
- Year
- 2026


Overview
Hubbub is a hub of free browser party games at geoparty.xyz. Players pick a game, share a four-letter room code and play on their own phones. There are no accounts and no downloads; a guest cookie keeps each player in their room.
It grew out of GeoParty, a street-view guessing game with host-controlled rules, teams and 17 playable modes, which still runs at /geoparty with its own lobbies and dark theme. Hubbub adds 13 more games around it, from map and number guessing to social games like Imposter, Bluff and Vibe Dial.
Rooms live in Redis when hosted and in memory on a local server, and the same game engine runs in the browser for solo practice, so a game only has to be written once.
What it does
Join with a room code
A host opens a room and shares a four-letter code or link. Codes leave out look-alike characters such as I, O, 0 and 1, and a code typed on the hub also finds GeoParty lobbies.
Thirteen games in one hub
Pin the City, Size It Up, Color Recall, Guesstimate, Timeline, Higher or Lower, Flag Rush, Vibe Dial, Majority Rules, Bluff, Imposter, Caption This and Hint Hunt, with up to 24 players in a room depending on the game.
Solo practice
Seven of the games can be played alone. Solo rounds run entirely in the browser on the same engine the server uses, and nothing is sent anywhere.
Secrets stay secret
Each player's screen receives only what that player is allowed to see, so the imposter's word, the Hint Hunt key and other players' answers never reach the wrong phone.
GeoParty street-level rounds
Players study a street-level scene and drop a pin on a world map, scored by distance. The host sets the mode, map pack, timer, movement rules and teams, and 17 modes are playable, from Classic to No Move, Blur Rush and Risk.
Size It Up
One place is drawn at true scale and players resize another until they think it matches its real area. A guess within 3% of the real area scores the full 5,000 points.
Sound without audio files
Every sound cue is synthesized in the browser with the Web Audio API, so no audio files ship with the site.
Screens
How it was built
One engine for server and browser
The room engine is a set of pure functions over plain JSON rooms. Deadlines are absolute timestamps checked on every request instead of timers, so a room can sit in Redis between polls and still keep time, and the same code runs in the browser for solo play. Clients poll about once a second (every 4 seconds when the tab is hidden) and send actions immediately.
Safe writes from many serverless instances
Several function instances can handle the same room at once, so every save is a compare-and-set Lua script in Redis that only writes if the room is unchanged, with retries on conflict. A poll that changes nothing skips the write, rooms expire after 24 hours of inactivity, and each guest is rate-limited.
Keeping GeoParty's Socket.IO game on Vercel
GeoParty was written for a Socket.IO server. On Vercel, an HTTP transport exposes the same event interface to the UI, and each request restores the lobby from a Redis snapshot, runs the original lobby handlers and saves the result, so the game screens did not have to change.
True size on a flat screen
Size It Up draws each place in an azimuthal equal-area projection centred on that place, so relative size stays true anywhere on Earth. The server scores against an area table generated from the same atlas files with the same trimming, and a test fails if that table goes stale.
Built with
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS 4
- Zustand
- Framer Motion
- Leaflet and React Leaflet
- d3-geo and TopoJSON
- Socket.IO (local server)
- Upstash Redis (REST)
- Mapillary JS
- Web Audio API
- node:test with tsx
- Vercel
Want something like Hubbub?
Tell me what you are building and what it needs to do. rowenapichardo@gmail.com