Scrum Poker

A real-time planning room with hidden voting, atomic reveals, live roles, round history, and a clean handoff after estimation.

Role & scope: Conceived the product, made the business decisions, and implemented it end to end as the sole engineer.

Scrum Poker official product image for fast real-time estimation with agile teams.

Read this first

The system at a glance.

What the product does
A collaborative estimation product for distributed engineering teams, usable with or without an account.
Who it serves
Distributed product and engineering teams estimating work together in live planning sessions.
What makes it different
The full estimation loop works without signup, while a flat facilitator plan adds the backlog handoff without per-seat friction.
My contribution
Conceived the product, made the business decisions, and implemented it end to end as the sole engineer.
Proof point
Every connected client receives one authoritative transition, even under concurrency.

Capability flow

How the system works.

Each step connects a user action to the system capability behind it.

  1. Open a room

    Authenticated teams or capped guest sessions create a persistent planning space.

  2. Synchronize participants

    Facilitator, voter, and spectator roles update as people join, leave, or transfer control.

  3. Vote without anchoring

    The server broadcasts who has voted but never exposes a value while the round is active.

  4. Reveal atomically

    The final eligible vote can reveal once, with average, median, range, and mode calculated for the room.

  5. Carry the decision forward

    Final estimates, revotes, and round history preserve the planning outcome for the next workflow.

Engineering judgment

Decisions that shaped the system.

Constraint
Two near-simultaneous final votes could otherwise reveal and broadcast the same round twice.
Decision
Make the voting-to-revealed transition atomic in the repository boundary.
Why it mattered
Every connected client receives one authoritative transition, even under concurrency.
Trade-off
The server owns more lifecycle logic instead of treating sockets as simple relays.
Constraint
The first visible estimate can bias everyone who has not voted yet.
Decision
Broadcast participation state during voting, but withhold values until reveal.
Why it mattered
The interface supports independent estimates without hiding team progress.
Trade-off
Clients need separate active-round and revealed-round payloads.

Technical evidence

Skills backed by this system.

Open any skill to see the other products and professional work connected to it.

Technology stack

  • React
  • TypeScript
  • Vite
  • Astro
  • TanStack Router
  • TanStack Query
  • Zustand
  • Socket.IO
  • OpenAPI
  • REST APIs
  • Zod
  • Testing
  • PostgreSQL
  • Drizzle
  • Vercel
  • Railway
  • Docker
  • Nx Monorepo
  • Better Auth
  • Stripe

Try the product

Open Product Lab or the live site.

Return to your stack comparison