team retro · on Cloudflare

Reflect together, without the overhead.

Create a board, share the link, add cards to Went well / To improve / Action items, reveal together — synced live between everyone on the board. No accounts, no subscriptions, nothing to install.

Boards close for everyone after 2 hours. Creating a board takes an invite key from whoever runs this deployment. Joining one only takes the link.

How a retro goes

Three requests, one shared board. Every participant sees the same state at the same time — reveal shows everyone's cards across all three columns at once.

Start a retro screen: name and creator key fields, a Create board button, and a board code field to join an existing board
●STEP 1

Create or join

Pick a name, create a board with the creator key, and share the link — or drop in a board code someone sent you. Nothing to sign up for.

Board before reveal: the header shows the board code, live · WebSocket, and the creator's Close board button; Alex's own cards are readable, Bob's show face down
●STEP 2

Add your cards

Everyone writes into Went well, To improve, and Action items. Cards show up live — what they say stays hidden until the board reveals. The header shows the live connection.

Revealed board: every participant's cards readable in all three columns, with author names
●STEP 3

Reveal & discuss

One click flips every card at once, in every column. See what everyone wrote, and talk it through.

✎

Own your cards

Anyone can reveal the board, but only a card's author can delete it. The one other exception: only the creator can close the board early.

⚡

Actually live

Cards, joins, and reveals push to every open tab instantly over a WebSocket — with Server-Sent Events as the fallback on networks that block them.

◐

Hidden until revealed

Everyone writes in private; card text stays hidden from other participants until the board reveals.

↻

Cleans up after itself

A board closes 2 hours after it was created, whatever is happening in it, with a warning near the end and a countdown at the finish. Need longer? Start a new one.

same product · different platform

A port, not a copy

This is the Cloudflare port of proto-retro, rebuilt from the original Vercel app's code. Boards, the HTTP API, and the frontend carry over unchanged; underneath, each board is a single Durable Object that owns its state, serializes every write, and pushes changes to its own connections — no database, no pub/sub, no retry loops. Where the platform allowed better, the design changes on purpose: hibernatable WebSockets instead of SSE alone, so an idle board costs nothing, and boards that close themselves instead of waiting out a 4-hour TTL.

BUILT WITH
Vanilla Web Components Cloudflare Workers Durable Objects Hibernatable WebSockets SSE fallback Zero build step