Register
Entered
2026-09-29
First commit
2026-08-08

Taverla

App · party games · live

Party games on every phone in the room, on the same instant.

A shelf of party games sharing one room, one QR code and one set of screens. One screen runs the game, everyone else plays on whatever they have to hand, and the first to know it takes the round.

  • TypeScript
  • React
  • Hono
  • WebSocket
  • Zod
  • Playwright
Play live (opens in a new tab)Source (opens in a new tab)
Shipped29 · IX · 2026
Drawing: a host screen showing the room’s QR code and seated players, and a phone showing the buzzerBUZZERScan to join the roomSEATEDAdaFIRSTGraceLinusMargaretWaiting for the next roundROOM · BUZZERAdaBUZZFirst to know takes the round
Drawn for this register, not a screenshot
Entered
2026-09-29Shipped
First commit
2026-08-08Bootstrap the blind test monorepo
Commits
347on main, read 2026-10-02
Coverage
88%lines run by the server and game-rule tests, read 2026-10-02
House packages
11 of 11installed from npm

What shipped

  1. Three games on one shelf: blind test, buzzer and quiz.
  2. One room, one QR code: everyone joins from the phone they already hold.
  3. The server stamps every buzz, so the fastest hand wins, not the fastest clock.
  4. Tested end to end: real sockets against a real server, Playwright journeys across two screens.
  5. English and French, light and dark, on a phone or a laptop.

How it works

one server, a socket to every screen

Diagram: one server holds a WebSocket to the host screen and to every phone, and stamps each buzz as it arrivesOne serverHono · stamps every buzzHost screenruns the game1st · takes it2nd3rd—WebSocket to each phoneOrder is decided on arrivalat the server, not by thephones’ own clocks.

History

Straight from the git log, abridged: 13 of 347 commits, newest first.

  1. Count page views with analytics
  2. Take the router provider from @adrienlcp/react-router
  3. Serve a wall: the room's own screen, paired by the host's device
  4. Let a Result succeed with nothing, rather than succeed with undefined
  5. Turn a held floor's buzzer into its dial, and take BUZZ off a dead circle
  6. Freeze the round on the server, not only on the phone
  7. Offer the room back to the device holding its key
  8. Hide the QR code from a reader who cannot point a camera at it
  9. Let a room hold two consoles without losing its round
  10. Make the bare buzzer a game rather than a source of questions
  11. Give Taverla a front door, and the blind test its own
  12. Make the blind test playable end to end
  13. Bootstrap the blind test monorepoFirst commit

Installs

11 of the 11 house packages, from npm, down to the compiler and linter settings.

Your team, 2026

I am looking for my next job. Write to me, or take the CV: a designed one, and a plain one for applicant tracking systems.