██████
███░░░░███
███ ░░███ █████ ████ ██████ ████████ █████ ████ █████████████
░███ ░███░░███ ░███ ███░░███░░███░░███░░███ ░███ ░░███░░███░░███
░███ ██░███ ░███ ░███ ░███ ░███ ░███ ░░░ ░███ ░███ ░███ ░███ ░███
░░███ ░░████ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███
░░░██████░██ ░░████████░░██████ █████ ░░████████ █████░███ █████
░░░░░░ ░░ ░░░░░░░░ ░░░░░░ ░░░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░
Browser-native planning poker for agile teams. No accounts, no server — share a room URL and estimate together. Peers talk to each other directly over WebRTC; your votes never touch a server.
- 🃏 Planning poker — Fibonacci deck (0, 1, 2, 3, 5, 8, 13, 21, ?); the cards auto-reveal the moment everyone has voted, with a short countdown so nothing surprises.
- 🌐 Peer-to-peer — no cloud, no account, no relay. A shared room URL is the whole app; the browsers talk to each other directly.
- ♻️ Resilient sessions — drop off and the round stays alive; reconnect and the state syncs back from any peer still in the room.
- 📋 Story lists — paste a backlog (one per line, or CSV) and step through the stories in order.
- 🕵️ Zombie detection — peers that go quiet are marked offline, so a round never stalls waiting on a ghost.
Quorum uses Trystero for peer-to-peer sync over WebRTC. The only intermediary is BitTorrent tracker signaling used to introduce peers — your votes and story names never touch a server.
- Open the app → New room
- Share the URL with your team
- Everyone picks a card → the deck reveals when all have voted
- New round (same story) or New story to continue
Paste a list (one per line) via Load stories to queue them up. Or type each title on the fly — voting works without a title too.
npm install
npm run dev # http://localhost:5173
npm run build # production build → dist/
npm run preview # preview the build
npm run coverage # tests + coverageValidate P2P: test with two browsers on different networks (not two tabs). Two tabs share localStorage and sync without real P2P.
- Votes are visible in devtools before reveal (UI-only hiding).
- State is lost if every participant closes the tab at once.
- BitTorrent trackers may be blocked on restrictive corporate networks.
Part of UniverLab · EXP-008