What shipped, and when.

Every change a host or a player would notice, newest first.

  1. 2026.10.01.2

    October 1, 2026

    • Improved

      You can now add or remove paid places from the Deal calculator (Tools → Deal calculator). If you set up a tournament to pay fewer places than you meant to, add places to the prize amounts there, enter the amounts, and save. The exact dollar amounts you enter now show on the player companion and TV clock. No need to redo the whole setup.

  2. 2026.10.01.1

    October 1, 2026

    • New

      League championships. When you set up a tournament under a season, you can now mark it as the season championship. It stays tied to the season (it shows in players' season history and can still earn badges) but does not add to season points, so the points race is decided by the regular season. On the player companion's season tab, everyone now sees two boxes above Records & badges: their Season standing and their Championship finish.

  3. 2026.09.23.2

    September 23, 2026

    • Improved

      Plans are now Home, League and Pro, and every plan has every feature: seasons and standings, the public league page, CSV import, co-hosts and unlimited saved setups and history. What a plan decides is how many players it carries. Home covers 50 players on the roster and 20 per tournament, League 100 and 50, and Pro has no cap. Every existing league on the Free plan is now on Home, with room for 50 on the roster instead of 30, and Seasons are open to everyone. Paid plans are still not open, so nobody is charged.

    • New

      The tournament size on your plan never stops a game in progress. If you schedule a tournament bigger than your plan covers, the setup screen tells you; on the night, everyone who turns up can still check in, and the Players list shows when you are over. Once paid plans open, the next tournament will wait until your plan fits the field you ran.

  4. 2026.09.23.1

    September 23, 2026

    • Fixed

      The "See the clock running" button on the website now opens a working TV clock. It showed "Tournament not found", because it pointed at a demo tournament that did not exist. The demo now runs in your browser, on a sample league night, so you can see what the room sees before you sign up.

    • Improved

      The website has been redesigned and rewritten. The home page walks through a league night from the door to the last knockout, and the features page now covers everything the product does, including side games, bounties, the spoken announcer, recap emails, player accounts and deleting your data. The pricing pages no longer list season awards, which were never built.

  5. 2026.09.16.2

    September 16, 2026

    • New

      There is now a user guide. It opens with a quick start that takes you from sign-up to your first tournament in about ten minutes, then a short reference for every part of the app: setting up your league and roster, building a tournament, running the clock and seating on the night, making a final-table deal, and sharing the live view with your players. Anyone can read it before signing up, and there is a link to it on your Settings page.

  6. 2026.09.16.1

    September 16, 2026

    • New

      When a table empties out mid-tournament, because fewer players turned up than you planned for or a run of knockouts thinned one table, you can now close it without reshuffling everyone. Each table on the Tables screen has a Break button that moves just that table's players into open seats at the other tables and closes it. Every other player stays exactly where they are sitting. It balances the players it moves across the remaining tables, and it won't go ahead if the others don't have room, so nobody is left standing. There's an 8-second Undo, the same as a seat draw. The advice banner that already spots a short table now runs this instead of reseating the whole field, so "Break Table 3" finally just breaks Table 3.

  7. 2026.09.15.12

    September 15, 2026

    • New

      You can delete your account yourself, from the bottom of your account home. It asks you to type your email address before it will go ahead. Unlike deleting a league there is no 15-day window: the account goes immediately, along with your sign-in and every league membership attached to it. If you still own a league you will be told which ones, and you have to delete or hand those over first, because a league with no owner would strand everyone in it. Leagues you only played in are not yours to erase: your account is unlinked from those roster rows, and the rest is the host's to remove through their own roster tools.

    • Fixed

      Error messages now appear in your language when you claim your seat at the table or reply to an RSVP link. These two screens were still showing the English text the server sends to API clients, even though the translations already existed.

  8. 2026.09.15.11

    September 15, 2026

    • Improved

      Minigame photos are now deleted automatically 30 days after they are taken. The result itself stays: the minigame, the hand and the points are all untouched and old leaderboards still read the same, just without the picture. Photos are the one thing the app stores that is a photograph of a person, so they are the one thing that now has a clock on it whether or not anyone asks. Your league rules PDF is not affected.

  9. 2026.09.15.10

    September 15, 2026

    • New

      Players can now be removed permanently from the roster, not just archived. Archiving is still the reversible one that keeps everything. Removing permanently clears their email, phone number, PIN and notes for good, and the row can never hold them again. Past results stay in the season standings either way, because other players' finishing positions depend on them. You choose whether to keep a first name and last initial in old standings, so they still read as a league rather than a column of blanks, or to remove the name completely. Owners and admins only.

    • Improved

      The privacy policy and the terms have been rewritten to describe what the product actually does now, including exporting and deleting your league. The terms also name Idaho as the law they are governed by, which they previously did not say at all.

  10. 2026.09.15.9

    September 15, 2026

    • New

      You can delete your league yourself. Settings has a danger zone, owner only, and it asks you to type the league's URL before it will go ahead. Deleting stops every surface serving it straight away, including the TV clock and the player companion, and destroys any API keys the league had issued. The data itself is kept for 15 days in case you deleted the wrong one, and then it is gone for good along with every tournament, player, season and result. Getting a league back inside those 15 days means emailing us.

    • New

      You can download everything your league holds, as one JSON file, from the same settings page. Members, invites, the roster, seasons, every tournament and its results, and your saved Library blocks. It is the sensible thing to do before deleting a league, and it is also the answer when a player asks what you hold about them.

  11. 2026.09.15.8

    September 15, 2026

    • Fixed

      RSVP links for a private tournament now return not found instead of showing the tournament's details, matching every other public page. A private tournament can no longer be given an RSVP link in the first place.

  12. 2026.09.15.7

    September 15, 2026

    • New

      Table names can be set before the night starts. The new-tournament screen and the template editor both have a Table names section, so a template can carry the names of the room's tables and you can see what a loaded template brought with it. Renaming from the Tables view during the tournament works as before.

    • Fixed

      The sound preset is gone. It was stored with every tournament and template and never did anything: the clock has always played one set of tones, and sound is controlled per device from the TV's volume slider and the Run screen's mute toggle.

  13. 2026.09.15.6

    September 15, 2026

    • Fixed

      A setup template’s chip set can now be changed after the template is created. The template editor never sent the chip set, the chip distribution, the sound preset or the table names, so whatever a template was saved with was what it kept; it now carries the same configuration the new-tournament wizard does, and there is a chip set picker on the page.

    • Improved

      The template editor and the new-tournament wizard now use the same payout, rebuy, bounty, minigame, seating and game-style controls, so the two screens no longer word the same setting differently. The template editor gains the game-style buttons and the payout schedule preview; the wizard gains a total under fixed cash payouts.

    • Improved

      Money fields in API responses (buy-in, rebuy and add-on prices, payouts, prize pools) are now JSON numbers. They were strings such as "20.00", which the documentation never said and which a read-then-write round trip through the API rejected.

  14. 2026.09.15.5

    September 15, 2026

    • Improved

      The league-creation screen and the expired-link page now render in the language your browser asks for, matching sign-in and signup.

    • Improved

      The API reference at /openapi.json now describes what every endpoint actually takes and returns. Thirty-three request bodies were documented as "some object" (creating a tournament takes 37 fields and the spec listed none of them), and the response shapes were mostly blank. Both now come from the code the API runs, so an agent reading the spec gets the real field names, types and limits.

    • Fixed

      Corrected a dozen places where the API reference disagreed with the API. The clock action list was missing two options, check-in payment status listed three values where only two exist, rebuys named the wrong field, setting a player PIN named the wrong action, and four endpoints that read the player from the URL were documented as taking a request body.

  15. 2026.09.15.4

    September 15, 2026

    • Fixed

      The results screen prefilled every payout as $0 when the session’s payout structure used fixed cash amounts or a payout schedule, and saved the zeros if the host did not retype them. It now prefills the same amounts the TV clock showed.

    • Fixed

      Creating a league is now all-or-nothing, so a failure part-way no longer leaves a league you cannot open holding the URL you picked.

  16. 2026.09.15.3

    September 15, 2026

    • New

      German, French and Spanish are now in the Settings language picker. Pick one and the whole league area, the TV clock, the player companion, RSVP and invite pages and the league’s emails render in it. Tell us about anything that reads wrong.

    • Improved

      The features and pricing pages say which languages and currencies the product runs in.

  17. 2026.09.15.2

    September 15, 2026

    • New

      Sign-in, signup, password reset and the account home now render in the language your browser asks for, before you have picked a league. Sign-in errors are translated too. A league whose language differs from the page’s shows a language tag beside its name on the account home, so the switch when you open it is not a surprise.

    • Fixed

      The next-game time on the account home rendered in the server’s timezone rather than the league’s. It now follows each league’s timezone setting.

  18. 2026.09.15.1

    September 15, 2026

    • New

      The whole league area now renders in the league’s language: Today, Run (including the Tools panel, Present, Door and the spoken announcer), sessions and the new-session wizard, the Library, players, seasons, standings and settings. German, French and Spanish are translated and under native review, and appear in the Settings language picker as each is signed off.

    • Improved

      Error messages from the server are translated too. Every API error now carries a stable code, and the app shows the message for that code in the league’s language instead of the English text.

    • Improved

      Timezone and currency pickers name zones and currencies in the league’s language, and the Door and Floor cash strips show money in the league’s currency rather than as a bare number.

  19. 2026.09.14.3

    September 14, 2026

    • New

      New leagues start with a ready-to-use "Standard League Points" chart in their Library — no setup needed to score a season. It's linear with a bump for the top four (1st = field + 10, 2nd = +6, 3rd = +3, 4th = +1) and everyone else counts down to 1 for last, scaled to the size of each night's field. Already have a league? Open Library → Point Charts → New chart → Load preset to add it, and edit or replace it anytime.

  20. 2026.09.14.2

    September 14, 2026

    • New

      The player companion, the TV clock, RSVP, invite, handoff, share-code and league pages now render in the league’s language. German, French and Spanish are translated and under native review; they appear in the Settings language picker as each is signed off.

    • New

      Players can pick their own language on their phone. A language control at the bottom of the Me tab overrides the league’s language on that device only, so a visiting player reads the companion in their language while the room keeps its own.

    • Improved

      Reminder and recap emails are sent in the league’s language, and account emails (confirmation, password reset, sign-in code) in the language the browser asked for at signup.

  21. 2026.09.14.1

    September 14, 2026

    • New

      Leagues outside the United States can now set their currency. Pick pounds or euros in Settings and every buy-in, prize pool and payout across the app, the TV clock, the player companion and your emails renders in it. Nothing is converted: the numbers you enter stay the numbers your league plays for. Subscription billing stays in US dollars.

    • Improved

      Money amounts can now carry pence and cents. A 5.50 buy-in saves and displays as 5.50 rather than rounding to 5, and money fields accept a comma as the decimal separator, so a German or French keyboard types an amount the way it types every other amount.

    • Improved

      The timezone list now covers Europe: London, Dublin, Lisbon, Paris, Berlin, Madrid, Rome, Amsterdam, Brussels, Vienna, Zurich, Warsaw, Stockholm, Copenhagen, Oslo, Helsinki, Athens and the Canaries, alongside the US zones. New leagues start on the timezone the browser is in instead of Mountain.

    • Fixed

      A tournament’s start and finish times on its session page were rendering in the server’s timezone rather than your league’s, so a 7:12 PM start could read as 1:12 AM the next day. Every date and time now renders in the zone set in Settings.

    • Improved

      A language setting has been added alongside currency. It offers English today; German, French and Spanish follow once each screen has been read by a native speaker.

  22. 2026.08.31.7

    August 31, 2026

    • New

      Design partner offer: leagues up and running before paid plans open get their first year free. The free year starts the day billing opens.

  23. 2026.08.31.6

    August 31, 2026

    • Fixed

      A co-host granted the "enter results" permission on a session can now save results, instead of getting turned away as not authorized.

    • Improved

      Pricing and billing pages now say plainly that paid plans are not open yet, and name only the free-tier limits that are actually enforced: a 30-player roster and 3 saved setups.

  24. 2026.08.31.5

    August 31, 2026

    • New

      The final knockout now ends the tournament on the spot: when one player is left standing, the session completes itself with the winner declared and results recorded from the elimination order. Made a mistake? Undo the knockout, edit the results, or reopen the tournament from its session page.

    • Improved

      Recap emails are now opt-in. Nothing mails your players automatically unless you turn on auto-send in settings, and a new button on the results page sends the recap on demand whenever you choose.

    • Improved

      A completed or cancelled tournament can be reopened, putting it back in play exactly where it stopped.

  25. 2026.08.31.4

    August 31, 2026

    • Improved

      Forgot to close out a game? If every player but one was eliminated, the tournament now completes itself overnight: winner declared from the eliminations, points and payouts recorded, exactly as if you had pressed the button. A session that was started but never used (no check-ins) quietly cancels itself after 12 idle hours.

    • Fixed

      Saving results for a tournament using a payout schedule now records the schedule's amounts automatically instead of leaving payouts blank unless typed in by hand.

  26. 2026.08.31.3

    August 31, 2026

    • New

      Players now get a results recap email when a tournament wraps up: finishing order, payouts, season standings and the next scheduled game, all in one message. Switchable off in settings for any league that would rather not send it.

  27. 2026.08.31.2

    August 31, 2026

    • New

      Signed-in players now get a cross-league home: every league you belong to in one place, with the next game, your standing and your career record for each, all from a single sign-in.

    • New

      Claimed players skip the PIN at the table. Sign in on your phone before you sit down and the live companion already knows who you are, so a knockout or rebuy request goes in under your account.

  28. 2026.08.31.1

    August 31, 2026

    • New

      Every league now gets a public home page at pokerleagueos.com/league/{your-league}, with standings, the next scheduled game, and recent results. It's on by default and can be switched off in settings if you'd rather keep your league private.

    • New

      Members get a real home when they sign in: the next game with one-tap RSVP, their own career record, and season standings. A new profile page holds their own contact details and PIN.

    • New

      Tournaments can now be scheduled ahead of time instead of starting the moment you create them. Set a date and time, and start the game whenever you're actually ready to play.

  29. 2026.08.30.2

    August 30, 2026

    • New

      Players can now claim their roster seat and turn it into an account. Claim from the Me tab on the live companion with an emailed code, or follow a claim link a host sends you. Either way, the account carries your tournament history and season standings from then on.

    • New

      Claimed accounts have no password by default, so sign-in now offers a second way in: email me a code, in place of a password, on the same login page.

    • New

      Hosts get player-screen tools to match: link or unlink a roster row to a member account, mint a claim link for a player's email, and merge a duplicate roster row into the right one.

  30. 2026.08.30.1

    August 30, 2026

    • Improved

      Players now land on a member view instead of the host console when they sign in. It shows the live tournament with a link to watch the clock, your league's recent results, and a link to season standings, with the full player home still on the way.

    • Fixed

      Roster data visible to members no longer includes other players' contact details.

  31. 2026.08.26.4

    August 26, 2026

    • Fixed

      Notify Players no longer emails your whole league by default. There is now a picker next to the button: players who RSVP'd yes, players checked in to that tournament, or the whole roster. It starts on RSVP'd yes, and the confirmation names exactly who is about to get mail before you send it. Previously the button mailed every active player on your roster with an email on file, whatever the tournament was.

    • Improved

      Nobody gets two copies of the same reminder any more, even if they hold two roster entries or RSVP'd twice with the same address.

    • Improved

      Contact links now point at hello@pokerleagueos.com, which is a real mailbox. The old support@ address was never set up, so mail sent to it bounced.

  32. 2026.08.26.3

    August 26, 2026

    • New

      ChipClock is now PokerLeagueOS, at pokerleagueos.com. The name says what the product grew into: not just a tournament clock, but the whole league. Seasons, schedules, standings, seating, payouts and the player companion are all the same product you were already using, under a name that covers it. Old chipclock.com links redirect, so nothing you have shared stops working. Your league, your players, your results and your saved setups are untouched.

    • Improved

      New look throughout: a darker, higher-contrast theme built for a room with the lights down, with every number set in a fixed-width face so the clock, chip counts and standings line up and stay readable across the table.

    • Improved

      The marketing site was rebuilt from scratch around what a league actually does across a season, with an honest pricing page: paid plans are not open for sign-up yet, so it now says so instead of offering a trial you cannot start.

  33. 2026.08.26.2

    August 26, 2026

    • Improved

      ChipClock now keeps its own diagnostics instead of sending them to an outside service. When a page is slow or something breaks, the record of it lives in our database with the rest of your league's data, and it is deleted automatically as newer records arrive. Nothing is shared with an analytics or error-reporting company, and nothing tracks you across other sites. The privacy policy has a new Diagnostics section describing exactly what is kept.

  34. 2026.08.26.1

    August 26, 2026

    • Improved

      Player initials in the companion are unchanged, but the unused photo fields behind them are gone. The app carried a player-photo column that nothing could ever set, so the coloured initial was always what you saw. Removing it trims every roster and standings response. If photos are wanted later they will be built as a real feature rather than a half-wired one.

    • New

      You can now correct a player's season points for a tournament. Open the results for that night, tap the pencil next to their name, enter the points and a short reason. The reason is shown to the player on their season history, so write it for them. Adjustments are org-admin only, appear in the tournament timeline, and clearing one puts the scored points back. Until now the app could display an adjustment but nothing could make one.

    • Fixed

      Re-saving results for a tournament that already had them no longer fails. Reopening saved results and saving again was rejected unless you retyped every payout amount, because the payouts came back as text and the save expected numbers.

    • Fixed

      Tournaments that pay fixed dollar amounts now show those amounts on the player companion. If your structure is "$300, $200, $100" rather than percentages, the Payouts list and the Deal tab were reading every place as $0 whenever the prize pool worked out to zero, which happens when check-ins were not recorded. Both now show what you actually promised, and a fixed place no longer displays a meaningless 0%.

    • Fixed

      The deal calculator no longer offers up money that has already been won. With five paid places and four players left, 5th belongs to whoever just busted; the chip-chop column was still dividing it while the ICM column ignored it, so the two columns disagreed by that amount. Both now work from the places genuinely still in play.

  35. 2026.08.25.6

    August 25, 2026

    • Fixed

      Editing a tournament that is not yours, or one that no longer exists, now says so instead of reporting success. The save reported "saved" and quietly changed nothing, which is the worst of both answers. Nothing was ever readable or writable across leagues; the request was correctly ignored, it just was not reported.

  36. 2026.08.25.5

    August 25, 2026

    • Fixed

      Two of the player companion's tabs were sharing one request budget. Your tournament view and your career view each allow 60 refreshes a minute, but they were counting against the same total, so flipping between them on a busy night could stop one of them loading for up to a minute. They now have their own budgets.

  37. 2026.08.25.4

    August 25, 2026

    • Fixed

      Starting a tournament from a template no longer loses your sound preset or your table names. A tournament saved as a template carried both, and the Library kept them, but the new-tournament screen had nowhere to put them: the sound preset silently reverted to the standard set and custom table names came back blank, every time. Both now come through with the rest of the setup. Templates you already saved keep the values they were holding.

    • Fixed

      The template badge on the new-tournament screen is more reliable. It reads green while your setup still matches the template and orange once you change something, and opening a template from the Library could briefly settle on orange without you touching anything.

    • Fixed

      A player searching for their seat on the TV clock no longer gets the page zoomed in on an iPhone, with no way to zoom back out.

  38. 2026.08.25.3

    August 25, 2026

    • Improved

      New passwords must now be at least 10 characters, up from 8. Existing passwords still work; the new length applies when you sign up or set a new one.

    • New

      You now get an email whenever your account's password or email address changes. If a change was not you, that message is the warning, and it arrives whether or not you were at the keyboard.

    • Fixed

      An account could finish signing up and end up with no profile record behind it, which left the app unable to resolve the person's name anywhere it appeared. Creating that record no longer depends on the browser making it back from the confirmation email, so it cannot be missed. The one account already in that state has been repaired.

    • Improved

      Signed-in pages verify your session without a round trip to the login service on every request, which takes a step out of the wait before a page starts rendering.

  39. 2026.08.25.2

    August 25, 2026

    • Fixed

      Retry-safe requests are now safe when they arrive together, not just one after another. An Idempotency-Key reserved its slot only after the work had finished, so two copies of the same request landing at the same instant both ran: two identical blind schedules saved, two sessions created, or a player charged for two rebuys off one tap. The key is now claimed before the work starts, and a duplicate that arrives while the first is still running is turned away instead of repeating it. This affects API and integration callers; the app's own screens were not sending duplicate keys.

    • Improved

      The database now rejects a malformed write to any of its structured fields outright. That class of fault used to store a scrambled copy that read back correctly through the app while search and filtering silently found nothing in it. It is the fault behind minigame names going missing from the live feed earlier this month.

  40. 2026.08.25.1

    August 25, 2026

    • Fixed

      Season points now use one field size everywhere. A tournament's point chart was matched against the number of players who had paid, while the default scale counted the results you entered, so points could shift the moment you saved. More seriously, a tournament where you never recorded check-ins counted as a field of zero, which matches no tier in your point chart at all, so the chart was skipped without a word and everyone scored off the built-in scale instead. Already-saved standings are untouched.

    • Fixed

      Editing a saved template no longer wipes its payouts. The editor only knew how to show fixed dollar amounts, so opening a template that paid by percentage (50/30/20, say) read every place as $0 and saving wrote the zeros back. Any tournament built from it afterwards paid nothing. Percentages, fixed amounts and saved payout schedules are now each shown as what they are, and a template whose payouts the editor has no control for is left exactly as it was.

    • Fixed

      A template backed by a saved payout schedule keeps that link when you edit it, and you can now change or remove the link from the template editor instead of having to rebuild the template.

    • Fixed

      Editing a template no longer resets each minigame's scoring type. A game you had set to Judged went back to whatever its name implied, quietly changing how its leaderboard ranked. The template editor now shows the scoring type per game, like the setup wizard does.

    • Fixed

      A template whose blind structure comes from the Library now shows that schedule's current levels while you edit it, rather than an older copy that saving would have made permanent.

  41. 2026.08.25

    August 25, 2026

    • New

      Private tournaments. A new switch in Tools › Share (and on the setup wizard) turns off the TV clock and the player companion for a game, so a link that leaks does not expose your roster, chip counts or feed. Present mode and the host screens are unaffected, and flipping it either way is recorded on the tournament timeline.

    • Improved

      Templates now hold the whole tournament, not part of it. Bounties, minigames, the rebuy and add-on cutoff levels, the house cut, career recording, the host-tools setting and your usual turnout all save with a template and come back when you use it. Previously the template had nowhere to put them, so every one of those reverted to a default on the next game you built from it.

    • Fixed

      Hitting the template limit on the free plan now says so. It was answering with a blank error page, so the only signal that you had run out was the template not appearing.

    • Fixed

      Corrected the API reference at /openapi.json and /llms.txt. It listed PUT where the endpoint takes PATCH, described a few endpoints that do not exist, and advertised retry-safe Idempotency-Key support on nineteen endpoints that ignore the header. A test now compares the reference against the real routes on every build.

    • Fixed

      Rehosting a tournament now copies the whole setup. The bounty amount and type, the minigame list, the add-on cutoff level and the “count toward career history” setting were all being reset to their defaults on the copy, so a rehosted bounty night came back as a plain freezeout with no minigames.

    • Fixed

      Bounty knockouts now show the amount won in the tournament timeline. Standard bounties were rendering as a plain elimination with no money attached, while progressive ones showed theirs, which made it look like standard bounties were not being tracked at all.

    • Fixed

      Recording a minigame result now needs the same permission as approving one. A co-host without check-in rights could add results to the minigame leaderboard even though the approve button was correctly closed to them.

    • Fixed

      Sharing a ChipClock link now shows a preview card. Links to the home page had no card at all, and the pricing, features, FAQ, about, agents and changelog pages were serving a login page to Slack, iMessage and every other link preview instead of their card.

    • Fixed

      Minigame results in the player companion's Feed now show which minigame was won. Every one of them read “a minigame” instead of “High Hand” or “Low Hand”, because the name was being stored in a form the feed could not read back. Past results were repaired too, so old feeds read correctly now.

    • Fixed

      Signup and password-reset emails no longer stop going out after the second one in an hour. If you invited a group and some of them never got their confirmation mail, that was the cause.

    • Improved

      Creating a point chart through the API now accepts an Idempotency-Key, matching the other Library resources, so a retried request cannot leave you with two copies.

    • Fixed

      Moving a player into a seat someone else is sitting in now works. It had been failing with an error since early June, so the two players never swapped. If you tried this mid-tournament and nothing happened, that was why.

    • Fixed

      Seating a player who has no seat yet into an occupied seat no longer removes the player already sitting there. It now tells you who is in the seat and leaves them alone, so nobody quietly vanishes from the seating chart.

    • Fixed

      Season standings now add up prize money correctly. Total winnings were being joined together instead of summed, so the earnings column showed a dash for most players and could break the season page for anyone with exactly one cash.

    • Fixed

      Setup template limits now count per league rather than per person, so a league on the free plan gets the three templates the plan describes instead of three each.

  42. 2026.08.17

    August 17, 2026

    • New

      League rules PDF. Upload your house rules once from Library > Rules and every player can pull them up on their phone during the game, straight from the companion page. Replacing the file updates it everywhere immediately, and you can remove it at any time.

    • Fixed

      The player companion's Me tab now shows your real finishing position once a tournament is complete, instead of leaving you at your last live standing.

  43. 2026.08.14

    August 14, 2026

    • New

      Live league standings on the player companion. When a tournament belongs to a season, players see where the season standings sit right now, including the game in progress. Anyone already eliminated is scored at their real finishing position, and everyone still alive is scored at the worst they can now finish, so the table updates on every bust instead of waiting for the final result.

    • New

      Season standings on the companion Season tab, so players can check the league table without leaving the clock.

  44. 2026.07.23

    July 23, 2026

    • New

      Three ways to seat a room. Choose whether players are seated as they pay in, all at once when you are ready to start, or entirely by hand. The setting saves into your setup templates, so a league night and a casual game can each open the way you actually run them.

    • New

      Seat anyone at any time. The Tables view now lists everyone waiting to be seated, lets you pick an exact seat, add a table on the spot, and open a new table with one button. You are no longer locked into the seating that happened at check-in.

    • New

      Career achievements and head-to-head on the player companion. Players see the milestones they have actually earned (no empty locked grid), plus who they have knocked out the most and who has knocked them out the most.

    • New

      Start time, finish time, and total run time on the Results report, for example 7:12 PM to 11:48 PM over 4h 36m. It measures from when the clock really started, not when you first opened the setup.

  45. 2026.07.22

    July 22, 2026

    • New

      Export to CSV. Download your roster, season standings, and tournament results as spreadsheet files for records, dues, or a league email.

    • New

      Printable sheets. Print or save-as-PDF a clean seat draw, payout sheet, or results sheet to post on the wall or hand to the room.

    • Fixed

      Fixed a crash when opening the Export view on a tournament with a saved payout structure.

  46. 2026.06.28

    June 28, 2026

    • Improved

      Tournament setup is now two pages instead of three, with fewer jumps between related settings. Changing pages also scrolls you back to the top, and a missing tournament name is flagged right where the Next button is rather than silently failing.

    • New

      Season sub-tab in the player companion's History, plus tap-to-expand detail on any past tournament, so a player can see how a specific night went without leaving the page.

    • Improved

      Adding a large roster in one go is noticeably faster.

  47. 2026.06.27

    June 27, 2026

    • New

      Minigame leaderboards. Pick how each side game is scored (most wins, best hand, and so on), set a Bad Beat game up from a preset, and the tallies build themselves as you record results. Winners can be reordered by hand, and the leader gets a medal on every screen that shows the game.

    • New

      CSV import across the Library. Paste or upload a spreadsheet to build a blind schedule, payout table, point chart, or chip set instead of typing every row. Each importer ships a template file, flags bad lines by line number, and loads the result into the normal editor so you review before saving.

    • New

      Best N of M season scoring, editable on the season page. Count a player's best 8 of 12 nights and the leaderboard applies it everywhere.

    • New

      Rename a tournament after it is created, from either the tournament page or the list.

    • Improved

      The leaderboard now opens on the active season by default and falls back to all-time when no season is running, with a direct link to manage seasons.

    • Fixed

      The loaded setup template is highlighted correctly on the first setup page, including when you arrive from a Library link, and no longer shows as modified just because a number is formatted differently (30 and 30.00 now match).

  48. 2026.06.26

    June 26, 2026

    • New

      Point Charts. Save your league's points-by-finishing-position table in the Library, per player count, and results award points from it automatically. Tournaments without a chart keep using the built-in scale.

    • New

      Table advice while you run. The host screen, Present mode, and the TV clock now flag an unbalanced table and suggest the right move: balance seats, break a table, or go to the final table.

    • Fixed

      The TV clock no longer repeats the pause announcement every few seconds while the tournament is paused.

    • Fixed

      Timeline entries for level changes no longer label automatic advances as manual and vice versa.

  49. 2026.06.22

    June 22, 2026

    • New

      Spoken announcer — the clock can now call the room out loud: "Shuffle up and deal" at the start, the new blinds at each level, when play pauses and resumes, the start of a break, "take your seats, cards are back in the air" when a break ends, and a heads-up to color up chips. Turn it on alongside the sound alerts. It uses a recorded announcer voice and now works on iPad and iPhone, where the browser's built-in speech was previously silent.

    • Improved

      Announcements no longer double up — with the host screen and the TV clock open in the same browser, each level change is announced once instead of two voices talking over each other.

    • Fixed

      Recording a minigame result is now safe to tap twice — a double-tap or a flaky connection can no longer log the same minigame win as two separate results.

  50. 2026.06.10

    June 10, 2026

    • New

      "You've been moved" alert on the player companion — when table balancing reseats you, a one-time banner shows your new table and seat (e.g. "Now at Table 2 · Seat 5"), then fades on its own. No more wondering where to go after a break.

    • Fixed

      Moving a player into a seat held by another active player no longer drops the player who was sitting there — in some cases the displaced live player's seat assignment could silently disappear instead of swapping. They now swap seats correctly.

    • Fixed

      Payouts can no longer exceed the prize pool when a structure mixes fixed dollar amounts with percentages — e.g. $60 to 1st plus 50% to 2nd on a $100 pool. The percentage share is now capped at whatever the pool has left after the fixed amounts, so the payouts always reconcile to the pool.

    • Fixed

      The clock now auto-advances correctly even after you step back to an earlier level — previously, using Prev Level (or jumping to a lower level) could silently disable auto-advance, leaving the timer sitting at 0:00 until you advanced by hand.

    • Fixed

      The "outside the season window" warning no longer misfires for evening tournaments — it was reading the game's date in UTC, which rolled a 7pm game to the next calendar day and falsely flagged games played on the season's last night.

    • Fixed

      Creating or cloning a tournament is now all-or-nothing — a hiccup mid-create can no longer leave a half-made session with no clock that shows in your list but can't be run.

    • Fixed

      Accepting, declining, or revoking player-submitted requests (knockouts, rebuys, minigames) now requires the matching host/co-host permission — a player-role member or a co-host without that permission can no longer resolve them.

    • Improved

      Pages and API calls you don't have access to now return a clean "not authorized" / "sign in" response instead of a generic server error.

  51. 2026.06.09

    June 9, 2026

    • New

      Seasons — group a run of tournaments into a league season and track a points standings across all of them. Create a season with an optional start/end date, then assign tournaments to it when you create or clone them (or link existing ones). The Seasons page shows the full standings — games played, points, best finish, and average — and you can delete a season when it's done.

    • New

      Pick a season at tournament creation — the new-tournament wizard has a season selector, so each night's game lands in the right league standings from the start. Cloning (rehosting) carries the season forward too.

    • New

      Season standings filter on the leaderboard — narrow the org leaderboard to a single season instead of all-time, so league nights and one-off games don't blur together.

    • New

      Season tab on the player companion — when a tournament is part of a season, players see the live season standings (and their place in it) right alongside the clock and feed.

    • New

      Hand-for-Hand mode — near the bubble, tap Hand-for-Hand to freeze the level timer so the blinds can't go up while tables finish their hands in lockstep. It shows as a clear badge on the host screen, the TV clock, Present mode, and every player's companion, and resumes the countdown cleanly when you turn it off.

    • Improved

      Soft "outside the season window" flag — if you link a tournament that was played before or after the season's date range, the Seasons page marks it so you can catch a mis-linked game, without ever hard-blocking the link.

  52. 2026.05.22b

    May 22, 2026

    • New

      Payout schedule auto-pilot — saved schedules from Settings now apply themselves on /sessions/new when Expected Players matches a row (no more clicking Apply), and the session keeps re-evaluating live as players actually pay in. If 8 was expected but 12 show up, the session's payout structure automatically shifts to the 12-player row. Matching is exact-first, then falls back to the highest row ≤ paid count.

    • New

      Custom payouts are dollar amounts, not percentages — on the new-tournament wizard and setup template editor, Custom mode now takes $ inputs and shows a dollar total instead of a 100% sum constraint. Top 3 / Top 5 presets keep their percentage semantics (they're proportional by design).

    • Fixed

      Door Mode "Outstanding" label no longer truncates to "OUTSTANDI" on phone viewports — renamed to "Owed" so it fits the 5-column stat rail at 390px.

    • Fixed

      Players page PIN icon buttons bumped from 22×22 to 36×36 to clear the 32px touch-target floor (10 instances per roster — now reliably tappable on phones).

    • Fixed

      Schedule-driven payouts ($ amounts) now display correctly on the Present screen — was rendering "0%" because the consumer only read percentage and ignored amount.

  53. 2026.05.22

    May 22, 2026

    • New

      Manual prize pool — set a fixed prize pool when creating a tournament instead of having ChipClock auto-calculate from buy-ins. Useful for sponsored events, freerolls with fixed payouts, or when the pool is set by the venue. Now editable after creation too (not just at setup).

    • New

      Saved payout schedules — admins configure named payout schedules in Settings (e.g. "6 players → $300 pool: 1st $180 / 2nd $90 / 3rd $30"). When creating a new tournament with a matching expected player count, the schedule appears as a one-click dropdown to apply prize pool + payouts together.

    • New

      Winner banner on the Clock pane — when one player remains, the running clock view shows a celebratory banner with the winner's name and a one-tap End Tournament CTA. No more hunting for the action when the heads-up bust happens.

    • New

      Expected Tables field on new tournament setup — sits next to Expected Players in Step 1. With seat-on-pay enabled, players now spread evenly across the planned tables from the start instead of filling table 1 first.

    • New

      Rename tables inline from the Run screen — tap any table name on the Tables view to rename it. Empty value reverts to "Table N". Changes broadcast to player companions and the TV clock.

    • New

      Eliminate (bust) + Undo elimination in the player ⋯ menu — Android swipe gestures aren't always reliable (touch-action conflicts with diagonal scroll detection), so the busting flow now also lives in the menu on every device.

    • Improved

      Player menu rebuilt as a portal-rendered popover — was previously trapped inside SwipeRow's overflow:hidden container and getting clipped to a 0-height strip on phones. Survives any overflow / transform ancestor now.

    • Improved

      Bigger tap targets on per-table seat buttons (now 40px minimum with active-state feedback) — reliably tappable on phones for opening the move-player sheet.

    • Improved

      Playing / out counter above the phone players list — shows live count of active vs busted players so eliminations register visibly, not just via a toast.

    • Improved

      Tournament status changes (end, cancel, pause, resume) now broadcast in real time to other tabs and devices — TV clock, present mode, and co-host phones no longer wait for the 5-second polling tick to catch up.

    • Improved

      Payouts now allocate using largest-remainder math so the sum always equals the prize pool. Three positions at 33.33% from $100 used to total $99.99 — now totals $100 exactly with one position picking up the extra cent.

    • Improved

      Floor view's table display no longer double-seats players when a roster row has multiple elimination records — replaced the LEFT JOIN with an EXISTS subquery for stable dedup.

    • Fixed

      Saved payout schedules in Settings + the new-tournament wizard now actually load. JSONB columns come back as strings from the database pooler; the page was trying to access them as parsed objects and silently getting undefined.

    • Fixed

      Amount-based payout schedules now display the right dollar amounts in the player companion clock, the player Deal calculator, and the host Tools Deal view. Was showing $0 across all positions because the consumers only read percentage.

    • Fixed

      Tournament results entry page now correctly uses the manual prize pool when set — was silently falling back to the auto-calculated pool, producing wrong pre-filled payouts.

    • Fixed

      Seat-on-pay no longer 500s under concurrent door-table check-ins. Two paid check-ins reading the same snapshot could pick the same seat; the second INSERT now retries with a fresh snapshot up to five times.

    • Fixed

      Moving a player into a seat held by an eliminated player no longer fails with "Failed to assign tables". The transactional 3-way swap cleans up stale assignments or rotates the live occupant via a temp seat to dodge the unique index.

    • Fixed

      Signing out of a tournament page now lands you on the homepage instead of a 404. The POST→GET redirect now uses 303 status so the browser follows it with a GET.

    • Fixed

      Players no longer appear at two seats on the table oval — the array-index fallback was masking sparse seat data and rendering each player twice.

    • Fixed

      Ending a tournament redirects to the results page instead of a 404 — the old library route never existed.

    • Fixed

      Check-in UPSERT now creates the check-in record when first marking a player as paid — was previously a no-op UPDATE that silently dropped the payment status.

    • Fixed

      Undo elimination button now actually calls undoEliminate instead of re-checking the player in (which lost their elimination position).

  54. 2026.05.01

    May 1, 2026

    • New

      Co-hosts on live tournaments — Tools drawer has a new Co-hosts section. Add an existing org member with one tap, or generate a 30-minute QR code that hands the running tournament off to anyone (signs them in or up, scopes them to this game only). Pro tier supports up to 5 co-hosts per session, league tier is unlimited. Built for the real case: host gets eliminated, hands the iPad to a friend, walks out the door.

    • New

      Send co-host invite to a checked-in player's phone — pick from the list of checked-in players in the Co-hosts section and tap Send. The invite arrives as an emerald banner on their /live/[id] companion (no QR, no copying URLs). One tap on their phone signs them in or signs them up, and they land on the host view.

    • New

      Hand-off audit trail — manager_added / manager_removed events show up in the live timeline and end-of-tournament recap, so it's clear who took over and when.

    • Improved

      Prev / Next level buttons on the host clock are now gated by a confirm dialog showing the target level — no more accidental skips when you brush the screen mid-walk. Prev disables at level 1, Next disables on the last level.

    • Improved

      Revoke an accepted minigame is now confirmed — destructive action no longer fires on a single tap.

    • Improved

      New-tournament setup form: expected-players input got its own labeled row with a wider field, blind structure inputs (SB / BB / Ante / Min) bumped to a readable size on mobile, payout-percentage inputs likewise. Double-digit values fit cleanly on Samsung Android portrait.

    • Improved

      Login page now honors a `?next=` parameter (relative paths only) so the co-host hand-off round-trip lands you back on the right page after sign-in.

    • Fixed

      Tools drawer trigger button on the host desktop layout no longer floats on top of the Cash strip's Add-ons cell — it's part of the row now.

    • Fixed

      Per-session minigame photo cap (50 / session) was silently never enforced — the cap query was checking the wrong JSONB key. Now correctly counts uploads against the limit.

    • Fixed

      TV clock and host phone Clock tab don't crowd the timer against header chrome on narrow Samsung-Android-portrait viewports anymore.

  55. 2026.04.18

    April 18, 2026

    • New

      Redesigned host UI — the admin is rebuilt from scratch around a Linear-inspired aesthetic: dense but calm, monochrome with a single emerald accent, status pills, slide-overs instead of modals. Feels like a serious live-ops tool instead of a collection of tabs.

    • New

      New Today landing page — first thing you see is a big Jump-in card when a tournament is running (with pulse + elapsed time), a stat rail of live/player/completed counts, and your five most recent tournaments. No session? Quick-start and From-template buttons are one click away.

    • New

      New Run screen — one URL per live session (/org/{slug}/run/{id}) with three panes: Clock, Floor (players + tables visual + request queue), and a Tools drawer. Desktop gets the full 3-pane layout; phone gets a bottom tab bar optimized for walking around with the session in your pocket.

    • New

      Door Mode — tap Door Mode from Run or Tools for a fullscreen check-in view. Big tap targets, live cash strip (collected / expected / outstanding), and a walk-up add sheet with name + optional PIN + payment method (Cash / Card / Venmo / Pay later).

    • New

      Present Mode (iPad-dock) — a new auth'd presentation mode at /run/{id}/present. Broadcast-scale clock with stat rail and payouts, and a tap-to-wake host controls overlay (pause/resume/next/prev). Wake-locked so it stays on during play.

    • New

      Rebuilt TV clock at /clock/{id} — Apple-Sports-style broadcast layout with a 12-column grid, huge tabular-nums clock, next-break countdown, top-3 payouts pill row, and a QR footer for the player companion.

    • New

      Cash Strip above the Floor — shows Collected / Expected / Outstanding / Rebuys / Add-ons at a glance, so you know where the cash reconciliation sits without doing math at 11pm.

    • New

      Swipe to eliminate (on phone) — swipe left on a player row to bust them, with a 5-second undo toast. Swipe right to quick-check-in.

    • New

      Deal calculator in the Tools drawer — chip counts, ICM (up to 9 players), chip-chop, and scheduled payouts side-by-side. Save as ICM, as chip-chop, or custom amounts — no more navigating away from Run during final-3 dealmaking.

    • New

      Dealer draw + Seat draw back in Floor — Dealer draw picks one random active player per table and marks them on the oval; Seat draw (renamed from Random Draw) reseats everyone with an 8-second Undo toast. Both accessible from Floor view on any device.

    • New

      Table visual back on Floor — ovals with seat circles, dealer chips highlighted, click any seat to open a move-player sheet with open seats per table.

    • New

      Color-up suggestions in the Tools drawer — shows which chip denominations can be colored off at the current level, with the wording 'Color off all X chips.'

    • New

      Minigame results view in the Tools drawer — host sees every accepted minigame report with submitted photos, timestamp, and a revoke button. Badge count on the button tells you when something new landed.

    • New

      Inline rebuy + add-on row actions — the player row's ⋯ menu now has Add rebuy / Add add-on / Undo last rebuy or add-on, gated on the session's cutoff level so you can't accidentally record one past the deadline.

    • New

      Request queue accept/decline — pending knockout, rebuy, and minigame reports from the player companion now have explicit accept/decline buttons in Floor. No more wandering into a separate tab.

    • Improved

      Audio toggle + test chime moved to the Run header — visible on every device, with localStorage persistence so it remembers your preference across sessions.

    • Improved

      Persistent 'jump-back-in' badge in the topbar while a session is live — you can browse Players / Templates / Settings and always return to the live tournament in one click.

    • Improved

      New session-aware status pills (Running / Paused / Break / Completed / Cancelled) with the same color language on Today, Run, TV, Present, and the live badge.

    • Fixed

      Deal calculator penny-rounding — saving whole-dollar custom amounts over odd prize pools no longer produces off-by-a-cent differences on reload ($230 stays $230).

    • Fixed

      Auto-advance no longer double-fires when the host has Run and Present open on two devices at the same time — an Idempotency-Key on the level-advance request collapses concurrent POSTs into one server-side mutation.

    • Fixed

      Post-mutation UI refresh now always pulls fresh state — previously an internal debounce could silently no-op the refetch, making check-in / elimination / rebuy visibly lag until the next 5-second poll tick.

    • Fixed

      Undoing a Seat Draw is atomic in the user's eyes — partial network failures keep the snapshot around and offer a Retry action toast so you can try again instead of being stuck in a half-restored state.

  56. 2026.04.17c

    April 17, 2026

    • New

      Live tournament history — the host page and player companion now both have a History tab showing level changes, eliminations, rebuys, pauses, deals, and minigames in real time. Knocked-out players watching from home get to follow the whole game.

    • New

      Proactive plan-status banner — your free-tier roster usage is shown on the new-session setup and check-in tab, so you know your ceiling before you hit it during check-in.

    • New

      Offline indicator on the host page — if the host device loses network, a yellow banner appears so you know the clock and eliminations on screen may be stale.

    • Improved

      Paused clock now shows a yellow border and badge — easy to notice in a noisy room when the timer is frozen.

    • Improved

      End Tournament confirm now spells out that recorded eliminations are locked once you confirm, and the duplicate footer button is hidden when only one player remains.

    • Improved

      UNPAID badge on the check-in list and a warning on results entry when unpaid players are about to be excluded from the prize pool — prevents underpayments at the end of the night.

    • Improved

      Warning + confirmation when saving tournament results that already exist, so a stray tap doesn't silently replace them.

    • Improved

      Blind structure editor redesigned for mobile — larger buttons, no more forced horizontal scroll on 360px phones, break rows properly labeled for screen readers.

    • Improved

      Large prize pools no longer overflow the stat cards on narrow screens (they format with thousands separators and tabular digits now).

    • Improved

      Empty check-in state now shows a "No players yet" card with guidance, replacing the bare search box.

    • Improved

      Confirm dialogs now default focus to Cancel, trap Tab/Escape correctly, and announce themselves to screen readers.

    • Improved

      Minigame photo uploads verified by magic bytes (defense against disguised file types); per-session cap of 50 photos to bound storage abuse.

    • Fixed

      Payout structures that sum to more than 100%, contain duplicate positions, or have negative positions are rejected at save time — no more overpayment surprises at the end of the night.

    • Fixed

      Recording an elimination for a player who isn't checked in now returns a clear error instead of creating a phantom record that shows up in the leaderboard.

    • Fixed

      Duplicate finish positions in results entry are rejected — every position must be unique.

    • Fixed

      Forgot your PIN and had the host reset it? You can use the new PIN immediately — previously a locked-out player could stay locked out for 15 minutes even after a reset.

    • Fixed

      Two venues running tournaments behind the same Wi-Fi no longer share a rate-limit quota — each tournament session gets its own bucket.

    • Fixed

      Malformed requests return a clear 'invalid input' error instead of a generic 500 server error across every mutating endpoint.

  57. 2026.04.17b

    April 17, 2026

    • New

      Agent quickstart — POST /api/quickstart creates a trial organization, a demo tournament, and an admin API key in a single request. The returned Bearer token can immediately run the clock, add players, and record eliminations. Trial orgs auto-delete after 7 days.

    • New

      Daily cleanup cron — expired trial orgs and their ghost owners are swept at 03:00 UTC.

    • New

      Agent-oriented documentation — /llms.txt rewritten to lead with the quickstart curl; new /llms-full.txt with full agent workflows, error-code table, idempotency rules, and rate-limit summary.

    • New

      Marketing pages — /agents, /features, /faq (with FAQPage schema), /about, /for/leagues, /for/home-games, /vs/the-tournament-director, /vs/blindvalet, and a public /changelog.

    • New

      SEO foundation — /robots.txt (allow-lists GPTBot, ClaudeBot, PerplexityBot, and more), /sitemap.xml, generated OpenGraph + Twitter cards, and Organization/WebSite/SoftwareApplication JSON-LD on every marketing page.

    • Improved

      OpenAPI spec expanded with the /api/quickstart operation, per-tag guidance written like agent instructions, and an info.description that leads with the one-curl quickstart flow.

    • Improved

      Landing page rewritten around the league thesis with a dual CTA (Start free + Try via agent) and a dedicated agent-ready callout card.

    • Improved

      Privacy and Terms last-updated dates refreshed to April 17, 2026.

  58. 2026.04.17

    April 17, 2026

    • New

      Minigame photos — players can attach a photo (high hand, best bluff, etc.) when reporting a win. Images compress on-device to 100 KB before upload, display as thumbnails for the host, on the live Minigames tab, and in the end-of-tournament recap.

    • New

      Live Minigames tab on the player companion — everyone can see who's winning each minigame in real time, with photo thumbnails and relative timestamps.

    • New

      TV clock now shows active minigames in the footer so spectators know what's being tracked.

    • New

      Minigame Wins card on the completed-session page — chronicles every accepted minigame by game name with winner photos.

    • New

      Career Minigame Wins card on player profiles — tallies wins per minigame across all tournaments, plus the 10 most recent with photos.

    • New

      Tournament Timeline — every completed session now shows a chronological recap (level changes, eliminations, rebuys, pauses, minigame wins, etc.), grouped by level with elapsed deltas from start.

    • New

      Expected-player count on setup — pair it with the planned table count and seat-on-pay fills the lower seats first (no more "seat 9 while seats 1-8 are empty").

    • New

      Paste-to-add bulk minigames — paste a comma or newline-separated list in the setup wizard; duplicates are case-insensitively dedoped.

    • New

      Revoke button on accepted minigames — host can retract an accepted result (e.g., inappropriate photo) and the timeline records it.

    • Improved

      Manual "Next Level" button now behind a confirm dialog showing the upcoming blinds — stops accidental mid-level jumps on mobile.

    • Improved

      Clock level changes are server-debounced (2-second cooldown) to prevent two devices racing to advance simultaneously.

    • Improved

      Auto-advance guard rewritten — stale client state can no longer re-fire "next level" after the server already advanced.

    • Improved

      ICM calculator for >9 players now distributes tail prize positions by chip stack instead of splitting equally — bigger stacks get proportionally bigger tail shares, matching real ICM intuition.

    • Improved

      Running a tournament clone (rehost) now logs as a new session start in the timeline.

    • Fixed

      Adding the player companion to your iPhone home screen now opens the correct game — previously it bounced to the marketing homepage.

    • Fixed

      Dismissing a minigame you've already revoked returns a clear 409 instead of silently succeeding.

  59. 2026.04.09

    April 9, 2026

    • New

      Add to Home Screen (PWA) — ChipClock now installs as a standalone app on iPhone and Android with its own icon and full-screen mode

    • Improved

      Mobile UX overhaul — larger touch targets on host dashboard (action buttons, elimination buttons, table controls), bigger self-service buttons on companion page

    • Improved

      Host bottom bar redesigned — End Tournament separated from safe actions to prevent mis-taps

    • Improved

      Clock page refinements — wider volume slider, larger seat finder, session name truncation

    • Improved

      Companion page — larger PIN submit button, more readable stats labels, tappable Switch button

    • Improved

      Blinds editor scrolls horizontally on narrow screens instead of cramming columns

    • Improved

      Security headers added — Content-Security-Policy, X-Frame-Options, referrer policy

    • Improved

      CORS restrictions on public API endpoints

    • Improved

      Rate limiting added to Stripe checkout, billing portal, and clock mutations

    • Fixed

      PIN set-pin endpoint now requires nickname match to prevent PIN-spraying

    • Fixed

      Clock page shows error for any failed API response, not just 404

    • Fixed

      E2E test selectors updated for pricing, privacy, landing, and clock pages

  60. 2026.04.01

    April 1, 2026

    • New

      Player PIN identity — players scan the QR code and sign in with a personal 4-digit PIN for a personalized companion experience

    • New

      Auto-seat display — identified players see their table and seat automatically, no searching needed

    • New

      Host can pre-set PINs when adding players and share game links with PINs via clipboard

    • New

      Bulk "Copy All Links" — one button copies all player invite links with PINs

    • New

      Minigame lifecycle — host can end/restart individual minigames during the tournament

    • Improved

      Rebuy and minigame self-service pre-populated with player identity (fewer taps)

    • Improved

      Minigame reporting: primary "Report Hand" button for your own wins, secondary option to report for others

    • Improved

      Dealer seat highlighted yellow with "D" badge in table map

    • Improved

      QR code enlarged for TV scanning, overlay now mentions PIN sign-in

    • Improved

      PIN status indicators on host check-in list and roster page

    • Improved

      iOS safe-area-inset support for notched iPhones

    • Improved

      Android back button closes modals instead of navigating away

    • Fixed

      Room code system removed — replaced entirely by personal PINs

  61. 2026.03.31b

    March 31, 2026

    • New

      Setup template editing — full edit page for tournament templates with blind structure, payouts, and all settings

    • New

      Planned table count — choose how many tables before the tournament starts so seat-on-pay distributes players evenly

    • New

      Minigame results card — accepted minigame reports now visible in the Tournament tab

    • Improved

      Template list shows summary info — level count, break count, blind range, and estimated duration

    • Improved

      Loading a template now also loads blinds and payout structure

    • Improved

      Player companion clock enlarged for mobile readability

    • Improved

      "Setups" renamed to "Templates" in navigation for clarity

    • Fixed

      Fixed crash on Templates page caused by double-encoded tournament data

    • Fixed

      Improved error messages — errors now show what went wrong instead of a generic message

  62. 2026.03.31

    March 31, 2026

    • New

      Seat on Pay — automatically assigns a random seat when players pay, so everyone knows where they're sitting before the tournament starts

    • New

      Bubble & ITM indicators — host mode shows a banner when approaching the money and when players are in the money

    • New

      Pause messages — add a custom message when pausing (e.g. "Dinner break — 20 min") that displays on the TV clock

    • New

      Next break on TV clock — footer shows how many levels until the next break

    • New

      Payout structure visible in host mode — see payout amounts during the tournament

    • Improved

      Average stack stat card added to host mode stats bar

    • Improved

      Blind schedule always visible with auto-scroll to current level (no more clicking to expand)

    • Improved

      Rebuy/add-on status badges — see at a glance if rebuys are open, closing soon, or closed

    • Improved

      Player request notifications visible from any tab, not just Tournament

    • Improved

      Elimination search filter — quickly find a player to eliminate when 8+ remain

    • Improved

      Clock +/- buttons now show "-1m" / "+1m" labels for clarity

    • Improved

      Copy Clock URL and Player Link buttons replace the static URL display

    • Improved

      Duration column added to blind schedule on host mode and player companion

    • Fixed

      Strict equality checks across the codebase for more reliable comparisons

  63. 2026.03.29

    March 29, 2026

    • New

      Player companion page (/live/) — mobile-first live view with clock, blind schedule, find-my-seat, and self-service reports

    • New

      Self-service knockout reports, rebuy requests, and minigame reports

    • New

      QR code on TV clock links directly to the player companion page

    • Improved

      Production viewport audit — tested on desktop, Android, and iPhone viewports

    • Fixed

      iOS Safari auto-zoom on inputs fixed (text-base on all public page inputs)

  64. 2026.03.28

    March 28, 2026

    • Fixed

      Boolean coercion root cause fix — isTruthy() handles string booleans from Supabase pooler

    • Fixed

      Audio alerts now play reliably (AudioContext.resume() properly awaited)

    • Fixed

      Color-up suggestions persist across level changes

    • Fixed

      Penny rounding in prize pool calculations

    • Improved

      22-test tournament simulation passing end-to-end

  65. 2026.03.26

    March 26, 2026

    • New

      Chip color-up alerts — suggests when to remove small denominations based on blind level

    • New

      Dealer draw — random dealer selection per table with visual indicators

    • New

      Add-on support with configurable cutoff level

    • New

      Bounty tracking (standard and progressive)

    • Improved

      Table oval SVG with seat positions and dealer marker