Sizingdeck: planning poker for teams estimating a sprint
Rooms joined by link with a name, face-down votes, a reveal with the average and spread, and a CSV of estimated stories.
Agent specs
- Agent
- Claude Code, Opus 5.5 Medium
- Time
- 18 min
- Cost
- $5.08*
Agents work faster and more accurately on Elements.
* Cost at API rates, September 2026.
Run it yourself
Paste this prompt into your AI agent. You get the finished app on your own machine, ready to change however you like.
Install elements: curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH Create an Elements app from the elementscode/demo-sizingdeck scaffold: cd ~/elements/projects elements create sizingdeck -scaffold=elementscode/demo-sizingdeck cd sizingdeck Start the app.
How it's built
Sizingdeck needed rooms anyone can join from a link, cards that stay face down until the reveal, a table everyone sees change as people vote and a CSV of the results. Each of those is a part of Elements, so the agent spent its 18 minutes on the game itself.
What Elements gave the app
- A live table. Rooms, participants, stories and votes are LiveTables, one view per room. When someone joins, votes or the facilitator moves to the next story, every open copy of the room updates.
- Face-down cards. A card reaches the browser only after the reveal, so everyone sees who has voted while the cards stay face down. The reveal shows the average and the spread.
- Join with a name. A teammate opens the link, types a name and is signed in with a session, in the room a moment later.
- Facilitator controls as function calls. Adding stories, voting, revoting and saving an estimate call server functions straight from the page with
@rpc. Each call checks the caller's seat, and another participant can take over as facilitator. - Estimates as a download. The room exports each estimated story with its estimate, average and vote count as a CSV that opens cleanly in a spreadsheet.
- Data from SQL files. Migrations define the rooms and seed a demo room with five people and seven stories, four already estimated.
What the project server gave the agent
The project server runs alongside the agent and answers as soon as a file is saved: it type-checks the templates, TypeScript and SQL, applies migrations and reruns the tests, so every question came back right away and the agent kept building.
What shipped
The app type-checks with zero errors and all 19 tests pass. Every page works on desktop and phone.
The code
Build it from scratch
To watch your agent build this app from an empty project, use the prompt we used instead. It takes longer than starting from the finished app above.
Install elements: curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH Create an Elements app: cd ~/elements/projects elements create sizingdeck cd sizingdeck Start the app, then build this: Build a planning poker app named sizingdeck for sprint estimation. - Create a room and share its link. Join with just a name. - The facilitator adds stories to estimate (title and a link). - Everyone picks a card (1, 2, 3, 5, 8, 13, 21, ?, coffee) face down; you see who has voted but not what. - The facilitator reveals: cards flip, with the average and the spread, and the room agrees on a final estimate. - A list of estimated stories, exportable as CSV. Seed one room with five named participants and a few stories already estimated. Joining, voting and reveals happen in real time for everyone in the room.
Comments· 0