DEMO: https://point-and-play-web.vercel.app/
Point&Play is a lightweight, no-login planning poker app built for agile refinement calls. It lets a team spin up a shared session, vote on story points with simple point cards, and reveal results together in real time — no accounts, no database, no setup. To keep everyone relaxed while they wait for stragglers to vote, Point&Play even ships with an optional multiplayer Pong mini-game right in the waiting room.
Building Point&Play
Point&Play was an opportunity to focus on real-time collaboration and a clean, frictionless meeting experience.
The goal was to make estimation calls fast and fun — open a link, type your name, and start voting in seconds, with a moderator who can drive the room.
This project also emphasized ephemeral, in-memory session state on the server, allowing teams to collaborate instantly without authentication or persistence. If the server restarts, sessions simply disappear — a deliberate, acceptable trade-off for the MVP.
Tech Stack
- Next.js 16 (App Router): The foundation for routing and app structure.
- React 19: For a dynamic and fast real-time client experience.
- TypeScript: Enforcing type safety across the frontend, server, and a shared contracts package.
- Tailwind CSS & shadcn/ui (Base UI): For consistent, responsive, and modern styling.
- Socket.IO: For low-latency, bidirectional real-time collaboration between participants.
- Standalone Node server on GCP Cloud Run: Holds all session state in memory, scaling to zero when idle to stay effectively free.
- Recharts: For the reveal-time vote distribution pie chart.
- Sonner & next-themes: For toast notifications and light/dark theming.
App Features
- Instant Sessions: Create a room with your name, a refinement theme, and a moderator toggle — then share the link.
- Point Card Voting: Everyone votes with familiar point cards; the moderator reveals when ready.
- Live Reveal & Distribution: See each participant's vote plus a color-coded pie chart of the spread.
- Round Titles & Vote History: Name each round (moderator) with editable titles, and review the whole session's history.
- Countdown Timer: The moderator can start/reset a shared timer (minutes and seconds), with an alarm and toast for everyone when it finishes.
- Buzz the Non-Voters: The moderator can buzz anyone who hasn't voted yet, complete with a sound.
- Personal Colors & Presence: Each participant gets a customizable color used for their presence dot and their Pong paddle.
- Moderator Controls: Reveal, reset rounds, run the timer, buzz, and remove participants from the session.
- Pong Waiting Room: An optional real-time multiplayer Pong game to keep the room entertained between rounds.
- Real-Time State Sync: Keeping every participant's view of votes, reveals, timers, and presence perfectly in sync over Socket.IO.
- Serverless Split Architecture: Vercel can't host a persistent WebSocket server, so the app is split into a Vercel frontend and a Cloud Run socket server sharing a typed contracts package.
- Cost & Abuse Hardening: Making a public, no-login endpoint safe and near-free with scale-to-zero, rate limiting, session/participant caps, and idle-session eviction.
- Cold-Start UX: Smoothing over the ~1–3s Cloud Run wake-up with a friendly "waking up the server" loading experience.
Point&Play is a fast, playful planning poker app built for teams who just want to estimate and move on.
The project highlights real-time collaboration, a pragmatic split serverless architecture, and thoughtful cost/security trade-offs for a public no-login tool.
It shows how modern frontend and lightweight backend tooling can deliver a genuinely collaborative experience without databases or accounts.
Disclaimer: Point&Play is a personal project built for learning and portfolio demonstration purposes!