A real-time, peer-to-peer estimation tool that replaces discrete planning poker with two-dimensional continuous input. Users position a log-normal "blob" on a plane where X = effort and Y = certainty — capturing both the estimate and confidence in a single gesture.
Fully serverless — peers connect directly via WebRTC, signaled through Nostr relays and MQTT. Deployed as a single static HTML file.
Traditional planning poker forces discrete values (1, 2, 3, 5, 8…) and ignores uncertainty. Skatting lets estimators express:
The blob shape follows a log-normal distribution, reflecting how software estimates actually behave: bounded at zero, right-skewed, with a long tail.
npm install
npm run dev
Open the displayed URL, create a room, and share the link with your team.
Visit the live deployment — no sign-up required.
| Layer | Tool |
|---|---|
| Language | TypeScript (strict) |
| UI | Svelte 5 (runes) |
| Canvas | Canvas 2D API |
| P2P | Trystero (WebRTC via Nostr + MQTT) + Nostr relay fallback |
| Build | Vite → single HTML file |
| Lint | Biome |
| Tests | Vitest |
npm run dev # dev server
npm run build # production build (single HTML file)
npm run check # type checking (svelte-check + tsc)
npm run lint # biome check
npm run test # run tests
All communication is peer-to-peer — no estimation data touches a server.
See ARCHITECTURE.md for design decisions, PROTOCOL.md for the P2P protocol, and PRODUCT.md for the full product spec.
See CONTRIBUTING.md for guidelines.
MIT © Wim Yedema