https://github.com/raiderrobert/pokr-planning
🃏 Real-time planning poker powered by Cloudflare Workers + Durable Objects
https://github.com/raiderrobert/pokr-planning
Last synced: 12 days ago
JSON representation
🃏 Real-time planning poker powered by Cloudflare Workers + Durable Objects
- Host: GitHub
- URL: https://github.com/raiderrobert/pokr-planning
- Owner: raiderrobert
- Created: 2026-07-08T16:25:59.000Z (15 days ago)
- Default Branch: main
- Last Pushed: 2026-07-08T16:45:12.000Z (15 days ago)
- Last Synced: 2026-07-08T18:21:17.727Z (15 days ago)
- Language: JavaScript
- Size: 35.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🃏 Pokr Planning
Real-time planning poker for teams, powered by Cloudflare Workers + Durable Objects.
## Features
- **Real-time sync** — WebSocket-based, everyone sees updates instantly
- **Hidden votes** — Votes stay secret until the facilitator reveals
- **Card flip animation** — Staggered reveal with 3D card flips
- **Stats on reveal** — Average, median, spread, and consensus detection
- **Zero infrastructure** — No database, no server. Durable Objects handle everything at the edge.
- **Ephemeral rooms** — Rooms exist while people are in them, then vanish
- **Mobile friendly** — Responsive design, works on any device
## Quick Start
```bash
npm install
npm run dev
# → http://localhost:8787
```
## Deploy
```bash
npx wrangler login
npx wrangler deploy
```
> **Note:** Durable Objects require the Cloudflare Workers Paid plan ($5/month).
## How It Works
Each room is a [Durable Object](https://developers.cloudflare.com/durable-objects/) instance that:
- Accepts WebSocket connections from participants
- Stores votes in WebSocket attachments (survives hibernation)
- Broadcasts state changes to all connected clients
- Automatically hibernates when idle
The entire app is a single Worker (~500 lines) that serves the frontend HTML and routes WebSocket connections to the appropriate Durable Object.
## Card Values
`0` `½` `1` `2` `3` `5` `8` `13` `21` `?` `☕`