Tushar Nath

Digital transformation · APAC

All products

Tool

ListWheel

Random-selection tools over lists that persist: a spinning wheel, team splitter, order shuffler, dice, coins and a constrained Secret Santa draw. Everything runs client-side; no account, and no server ever receives a name.

Status
Live
Built with
Astro · Svelte 5 islands · TypeScript (strict) · Cloudflare Pages

The problem

Every group carries a small jurisprudence: who goes first, who presents on Monday, how the teams split, who gives a gift to whom. The verdicts are minor; the standard is not, because the moment a pick matters it must satisfy the hardest judge in the room, the person it did not choose. "It looked random" convinces nobody. ListWheel was built for exactly that jury: random picks that remember your lists, produce a defensible answer, and run where no server ever receives a name.

The approach

By August 2026 the toolkit held a spinning wheel, a team splitter, an order shuffler, dice, a coin flip, a random number tool and a constrained Secret Santa draw, every one of them working over lists that persist in the visitor's browser, no account asked for. The order of construction was the philosophy: the random kernel was built and measured before any interface was drawn, and fairness was written as something a reader can verify rather than a reassurance to be taken on faith. The site carries a page explaining exactly how its draws work, because "trust us" is precisely the sentence a random picker never gets to use.

The result

The site shipped complete at listwheel.com: every tool, every supporting page, and a set of gates, each one proven to catch a planted violation before its green was trusted. A visitor types a list once and finds it waiting on the next visit, on their device and nowhere else.

What it taught

The most instructive finding was a kind of defect that stays hidden at the size the data happens to be. The footer rendered its links with nothing between them; with one link that is indistinguishable from correct, and it passed review by eye and every gate. At six links it read as a single run-on word. The same shape turned up in the wheel itself: segment colours assigned by index modulo six look fine at six, eight and twelve entries, and seat two identical colours side by side at seven. Any output that is a function of collection size has a defect surface that opens only at a count you do not currently have, so the cheap control is to render the empty case, the one case and the many case, never just today's case.

Source: The project's own dated decision and lesson records, in its repository