A Tournament Clock That Just Works
I built a tournament clock for our poker nights, one that doesn't get in the way, works well and fits our game style.

Anytime we've run a tournament, we need to find a tournament timer and a way of tracking buy-ins, calculating the pot and who wins what. Sometimes we've used apps, but they're a pain and the UI is never great. Sometimes we've built something in Excel, which is fine but the design never looks nice and it's a bit clunky. So I decided to build a tournament timer that works, looks good, and fits our game.
Three Tools, Not Four
Before any of that, my site needed rearranging. There were three poker tools and they no longer described the evening. The original Cash-Up calculator had been quietly made redundant by the Ledger, which does everything it does and then some. The obvious move was to delete it, but I didn't.
There is an article on this site about that calculator, with a screenshot and a link, and there are messages out in the world pointing at the URL. Removing a page because it no longer fits your navigation is a tidy instinct that quietly breaks things you already published. So it came out of the nav and stayed at its address, with one line on the poker landing page for anyone who just wants to turn a stack into a number. The tabs are now Poll, Cash Game and Tournament: pick a night, then run whichever game you are actually playing. This is now a single home for everything my poker group needs for all our games.
Tournament Structure and Settings
Blind structures can be tricky when building from scratch, so I had Claude look for poker industry best-practice and then build some cool little configurations for our game. The only real question is where the last level should sit.
The answer comes from where a tournament actually ends. Heads-up, the last two players hold maybe half the chips each, if even. If the final big blind is a twentieth of all the chips in play, those two are sitting on about ten big blinds apiece, which is short enough to force a finish and long enough that the last hand is still poker rather than a coin toss. So the ladder aims at total chips divided by twenty, and works backwards from there.
Also, every blind has to be a simple number you can say out loud across a table, so the ladder only uses 1, 1.5, 2, 3, 4, 5, 6 and 8 times a power of ten. Every small blind has to be payable with the chips actually on the felt, which for us means multiples of five, so anything that would leave someone hunting for a 7.5 chip is dropped. Give it our game, 2,000 chips each, 10/20 to start, eight players and four hours, and it produces eleven levels and two breaks, ending at 400/800. That is a structure I would likely have written by hand, which is a pretty good test of whether it works for us.
Refinements to Make the UX Great
Sometimes we have rebuys, so I added a toggle for that, configurable for max per player, when rebuys end, and the value per rebuy. Sometimes you want to run it on a bigger screen than a phone, so I added a full-screen view with easy shortcuts for noting rebuys, and for knocking players out. And you always want to see how many are still in, average chip counts and so forth, so the full screen view has that too.
The Timer Was Tricky
Timers are actually hard. What happens if you lock your phone or the browser freezes? The timer in many apps just dies. Reload the page and whatever was in memory goes with it. Leave it face down for half an hour during a long level and you come back to a clock that thinks nothing happened. So I built it so that I store the one fact that does not change, which is the wall-clock instant the current level started. Time remaining is not data. It is a subtraction you perform whenever you happen to look, and the browser already knows what time it is.
So in the live version, a phone that was locked for forty-five minutes wakes up, subtracts, discovers it has burned through two levels, and lands on level three with the right number of minutes left. A refresh reads the same timestamp out of local storage and carries on mid-level. Nothing needs to have been running for the clock to be right, because the clock was never running. It was only ever reading.
How About Handoff?
Sometimes you want to move from your phone to your laptop, because the poker timer needs to be big for everyone to see. I built the cash game handoff for that reason, packing the whole table into a URL so the link is the database. The tournament wanted the same trick, so you can set it up on your phone and then hand it to the laptop that's going to sit at the end of the table showing the big clock.
The same encoding carries the structure, the players, their rebuys and everyone already knocked out. The whole thing is 432 characters, which fits comfortably in a text message.
Payouts Are Convention, Not Calculation
The payout percentages are convention, not calculation. Two places pay 65/35, three pay 50/30/20, and the field size decides how many places get paid on the usual "top third cashes" rule. The part I did decide deliberately is that prizes round to whole notes and first place absorbs the remainder, because the pot always has to come out exact and nobody wants to be counting coins at midnight.
What I've Got Now
So now my poker toolset has a way to help the group decide on the best date to run a game. It also has a way to run our usual cash game, even handing off from one banker to another. And now it also has a tournament app, fully customisable and easy to use. I'm pretty stoked with the toolset, and I'd love it if you gave it a go.