Archive

What GameNight sent this summer

GameNight keeps one log of every message it sends and receives: texts, emails and WhatsApp. I pulled the numbers for the three months the log covers, 27 June to 24 September 2026, to see which channels people actually use and whether anything is breaking.

1,457 messages sent, 99.2% accepted by the provider, 168 replies received, 36 events with notifications sent

The channels

Texts go out through Surge, email through Brevo's SMTP relay, and WhatsApp through a self-hosted WAHA gateway. Text is the busiest channel and the only one that has never logged a failure. It is also where most replies come from: 136 inbound texts, against 32 on WhatsApp.

Table: Text via Surge 729 sent, 0 failed, 136 replies. Email via Brevo 665 sent, 3 failed. WhatsApp via WAHA 63 sent, 8 failed, 32 replies. Total 1,457 sent, 11 failed, 168 replies.

All 11 failures are old. Seven of the eight WhatsApp failures happened on 2 July, the day I was setting it up, and the eighth was on 28 July when the gateway moved to a new engine and the session hadn't reconnected yet. The three email failures were messages with an empty body, the last on 2 August. Nothing has failed since then.

For email, a "sent" means Brevo accepted the message. It doesn't prove the message reached an inbox, and bounces don't come back into this log.

Month by month

Stacked bars of messages sent per month. June (partial): 21 text, 32 email. July: 174 text, 96 email, 54 WhatsApp. August: 258 text, 310 email, 12 WhatsApp. September (to the 24th): 276 text, 230 email, 5 WhatsApp.

August was the biggest month at 580 messages, and email carried most of it. In September text passed email, and September still had a week to go when I ran this. WhatsApp got a burst of use in July and then faded; in the last 30 days it sent five messages, all to one person.

Week by week

Line chart of messages sent per week by channel. Email spikes to 129 in the weeks of 17 August and 14 September. Text climbs from the teens in June to 106 in the week of 14 September. WhatsApp peaks at 47 in the week of 29 June and stays near zero after.

Email comes in bursts. It hit 129 in the week of 17 August and again in the week of 14 September. Text grows more steadily, and the week of 14 September was the busiest of the period, with 238 messages across all three channels.

When they go out

Bar chart of messages by hour of day, Central time. Traffic rises from 7am, peaks at 171 at 11am, dips in early afternoon, and peaks again at 149 at 5pm.

There are two peaks, 11am and 5pm, and very little goes out between midnight and 6am.

Bar chart of messages by day of week: Monday 211, Tuesday 134, Wednesday 278, Thursday 233, Friday 281, Saturday 157, Sunday 174.

Friday and Wednesday are the busiest days. Tuesday is the quietest.

What I take from it

Text carries the most traffic and has the cleanest record. Email handles the big sends. WhatsApp is down to one regular user. Over the whole period, 45 events were on the calendar, 311 invitations went out and 234 of them came back as a yes.

Sign in to leave a comment.

A tournament timer layout for Stonebridge at Newport

New layout for the GameNight tournament timer, built for the Saturday night game at Stonebridge at Newport. Deep felt green, cream lettering, gold small caps, and the club's own bridge logo up in the corner.

If you haven't tried layouts yet: a layout is the whole board, not just a skin. It decides what's on the TV, what takes over during breaks, and what a phone sees after scanning the QR code. This file has the logo packed inside it, so importing it is the whole setup. Open Timer Layouts in GameNight, hit Import, pick the file, done.

Main screen

Stonebridge at Newport main screen on a TV

A big clock up top between the logo and the QR code, the current blinds in a gold-trimmed box, then a strip with the next level, time to the next break and the round. The bottom row has players left, average stack (in big blinds too), entries and the prize pool, with the payout ladder along the foot of the screen.

Break screen

Stonebridge at Newport break screen on a TV

ON BREAK in gold, the countdown in green, and what the blinds will be when everyone sits back down. The logo and the QR code stay on screen so late arrivals can still pull the clock up on their phones.

On a phone

Stonebridge at Newport on a phone

Scan the code and you get a stripped-down version made for a phone: logo, clock, blinds, what's next, and how many are still standing.

Download Stonebridge at Newport (77 KB)

Swap in your own logo in the editor and it works for any room that likes its poker a little classier than a garage.

Sign in to leave a comment.

GameNight is out of beta, and your poker night can be played online

GameNight is out of beta. Version 1.0.0 went up on 21 September, and the build counter that used to sit in the footer went with it. First commit was 31 March, so it took a shade under six months of real game nights to earn a release number.

Three more releases followed it inside two days. Two of those are worth a post.

The timer you build yourself

The designable board is out of beta too. It is the Tournament Timer now, and the original full-screen clock is Tournament Timer Classic.

What makes the new one worth the switch is that you lay it out yourself. Cells for the clock, the blinds, the payout table, the chip counts, a welcome ticker along the bottom, a live video feed if the room wants half an eye on one. Every cell takes its share of the screen from the row and column weights, so nothing ever covers the clock or hangs off the edge. And a layout is the whole board, not the paint on it: what is up there, where it sits, what takes over during breaks, and what the phones get when somebody scans the QR code off the TV.

If you would rather not start from a blank board, there are six ready-made ones to import. Neon Nights, Dusty Trail Saloon, Zen Minimal, Emerald High Roller, Pixel Arcade, and Snowman Poker League at Griff's, which carries a phone screen of its own for whoever scans that code. Watch Party makes seven, built around the video cell, with the stream down one side and the clock up the other. Each file brings its own artwork and sounds along with it, so importing one is the entire setup, and they land in your library to hack about afterwards. Old links, bookmarks and second screens already casting the clock all still go to the right page.

FinalTable

This one has not come up here before. FinalTable is a poker server I have been building alongside GameNight, and it runs the kind of tournament you already run in a kitchen.

A FinalTable table in a browser: eight seats around a green oval, the blind level and countdown at the top, hole cards and the fold/call/raise bar at the bottom

People register by code or by link. The game starts at a time you set, on a blind structure you picked or edited, antes and breaks included. Tables balance and break as players bust, and the field merges down to one final table. Late registration, re-entry and an add-on at the first break are all there if the host turns them on. Payouts get worked out for you, and the bubble is played hand for hand. The host can pause, step the level, move somebody to another seat, or take them out of the game.

The FinalTable waiting room: the tournament name, a five-character join code with copy buttons, the list of registered players, and the structure summarised underneath

The parts that matter on a real night are duller than any of that. Lose your connection or reload the page and you come back to your seat with your stack. A seat that has gone quiet never gets played for you: it sits out, checks when checking is free, folds to a bet, and blinds down until you come back or bust. Restart the server in the middle of a tournament and the field comes back too, because it gets written down between hands. Anybody can watch from a rail link. And if you want to see it move before you invite a soul, the create form will fill the table with demo bots that call far too much.

The same table on a phone, one screen, with the level, the seats and the action buttons

GameNight sets the table up, and gets the night back

The two are joined now. That is v1.2.0.

A poker tournament in the event editor has a Played choice: in person, or online at a connected app. Pick online and the event page grows a Played online at section. Before the table exists, you and your managers see what is going to be sent. The guest list (you host, every approved invitee with an account goes, and anybody without one is named as not sent), the blind schedule, chips, seats, buy-in and re-entry. Under it sits a Set up the table button.

One press makes the game on FinalTable with your roster and your blinds, then tells everyone on the guest list where to play. The join link arrives as an ordinary GameNight notification. Nobody has to make a second account. FinalTable's sign-in page is a Sign in with GameNight button, and you get seated under the name you already use.

After that, the section is the table's status, refreshed every fifteen seconds while the tab is open. Registering with its start time, then the level, the blinds, the time to the next level and how many players are left. Paused, if somebody paused it. An emptied room, if everyone wandered off. Play at FinalTable shows for anyone with a seat and Watch for anyone who can see the event, with copy buttons next to both. Managers also get Start now, Pause, Resume, Take out of play beside each seated player, and Cancel the game. When FinalTable refuses one of those, you get its refusal in its own words instead of a shrug.

What comes back is the half I care about. FinalTable reports the game while it is happening: the clock starting, every level and break, every pause, every bust-out and re-entry, and the finish. GameNight writes all of it the way you would have written it by hand on Manage Game. A bust-out becomes a finishing position, provisional until late registration and re-entry close. A re-entry clears that position and counts as a rebuy. The finish records every place, marks who actually played as bought in, sets the session to finished, and runs the same hook the Finish button runs. So payouts, points, bounties and entry tickets come out of this event's payout structure, and the league table picks the night up like any other. FinalTable's own prize figures stay on the status line, where they cannot argue with yours.

Delete an event with a live table and the game gets called off first. Remove somebody from a league, or delete their account, and they are signed out of every FinalTable that holds a key. After a finish or a cancel, you can set the table up again.

Connecting the two takes about a minute. FinalTable's administrator makes a game key on its Admin page, which is shown once. A GameNight admin pastes it into that app's Game key field under Site Settings → Connected Apps, where it is stored encrypted and shown afterwards only as Set or Not set. There is a Test button beside it that makes two requests which create nothing, and it reports FinalTable's own answer when the key is wrong.

What is next

On the FinalTable side, the big one is games other than Hold'em. The engine deals two cards and makes the best five out of seven, and that assumption runs all the way down into the hand evaluator. Omaha changes the deal and adds the must-use-two rule. Stud changes the street structure entirely. Draw needs a discard phase that has no equivalent anywhere in the code. I would rather do that once, properly, on the shape of the engine than bolt four special cases onto a Hold'em loop, so it is going to take a while.

On the GameNight side, WhatsApp comes out of alpha next, with two-way RSVP to match what SMS already does, and a preferred-channel setting so people hear from you where they actually read things. After that the work is about handing the site to strangers who are not me: settings driven from the environment instead of assuming one install, registration and access controls, an onboarding wizard for a fresh site, and two-factor for admins. Then push notifications through the PWA, and calendar integrations, which is the request that comes up most.


Both are open source: GameNight and FinalTable. The running site is gamenight.poker. If you get a table going on a real night, say how it went in the comments.

Sign in to leave a comment.

New in the GameNight timer: put a live stream on the board

The classic GameNight timer has had a streaming panel for a while: paste a link, a video shows up next to the clock. The new layout engine launched without it. As of v0.2111 it's there, and the layout version is the better one.

Paste a YouTube, Twitch, Vimeo or Kick link into any cell and the player renders right inside the layout. A video is a cell like any other. It gets its share of the screen from the row and column weights, which means it can never cover the clock and never hang off the edge of the TV — the flexbox engine that keeps text honest keeps video honest too. Want the stream bigger? Give its box more weight, same as anything else.

The details came along for the ride:

  • Level chimes and the last-minute countdown duck the video's audio, then bring it back a few seconds later. YouTube and Vimeo only — they're the players that allow it. Twitch just keeps talking, same as it did on the classic timer.
  • Twitch links figure out the right parent domain on their own, so a layout file built on one install plays on another.
  • A link the timer doesn't recognize draws a dashed placeholder instead of an embed. Layouts are files people share, and nobody gets to smuggle an arbitrary iframe onto your wall through one.

Watch Party

Main screen, TV and phone:

Watch Party layout on a TV: video panel on the left, clock and blinds on the right

Watch Party layout on a phone

Built around the new cell to show what it's for. The stream takes the left half with a LIVE tag under it, the clock, level and blinds stack up the right side, and the numbers worth glancing at — players, average stack, pot, next break, rebuys — run in a bar across the bottom. The clock goes amber on break, gray when paused, red at GAME OVER. One screen everywhere; on a phone it just squeezes down, as the second shot shows. Quiet by design: a chime at each new level and a tick through the last minute, both of which dip the video's volume instead of fighting it.

The placeholder in the screenshots is the first video ever uploaded to YouTube. Nineteen seconds of elephants. Click the cell in the editor and swap in your table cam, the final-table broadcast, or whatever the room wants half an eye on.

Download Watch Party (4 KB)


Wiring it into a layout you already have takes four clicks: open it in Timer Layouts, click a cell, hit Use a video stream instead, paste the link. The field checks the link as you type and warns in red when it's one the display won't load. The video cell needs GameNight v0.2111 or newer; the Watch Party file imports like the six from the last post — Timer Layouts → Import, pick the file. If you point one of these at something good on a game night, post it in the comments.

Sign in to leave a comment.

Six ready-to-steal tournament timer layouts for GameNight

The GameNight tournament timer got a full layout editor last week. Here are six ready-made themes built with it, screenshots and all, with the layout files free to grab at the bottom of each section.

Quick primer if you haven't touched the new timer yet. A layout isn't just a skin, it's the whole board: what's on it, where it sits, what screen takes over during breaks, and what the phones see when someone scans the QR code off the TV. Each file below carries its own artwork and sounds inside it, so importing one is the entire setup. Open Timer Layouts in GameNight, hit Import, pick the file, done.

For each layout you get the full tour: the main screen and the break screen, each shown twice, once as the TV sees it and once as a phone sees it. That's not four designs, it's one layout deciding what to show based on the game state and what kind of screen is looking at it. Neatest trick in the whole feature.

Neon Nights

Main screen, TV and phone:

Neon Nights main screen on a TV

Neon Nights main screen on a phone

Break screen, same pair:

Neon Nights break screen on a TV

Neon Nights break screen on a phone

Vegas at 2am. Cyan clock in a glowing frame, magenta blinds panel, everything floating on near-black purple, and the break screen tells everyone to TAKE FIVE. This is also the loudest of the six by a mile: it plays a horn and literally announces the new blinds out loud at every level, ticks and flashes through the last minute, and hits a casino fanfare when break starts. If your bar is already noisy, this one can shout over it.

Download Neon Nights (7 KB)

Dusty Trail Saloon

Main screen, TV and phone:

Dusty Trail Saloon main screen on a TV

Dusty Trail Saloon main screen on a phone

Break screen, same pair:

Dusty Trail Saloon break screen on a TV

Dusty Trail Saloon break screen on a phone

Wood planks, cream lettering, gold double borders. The blinds are THE STAKES, the players left are outlaws still standing, and the payouts are BOUNTIES, because once you commit to a theme you commit. The break screen calls LAST CALL AT THE BAR, which in an actual bar is just useful information. Sound-wise it's polite, a chime on level changes and a soft one at break.

Download Dusty Trail Saloon (140 KB)

Zen Minimal

Main screen, TV and phone:

Zen Minimal main screen on a TV

Zen Minimal main screen on a phone

Break screen, same pair:

Zen Minimal break screen on a TV

Zen Minimal break screen on a phone

The opposite of everything above. Black screen, big clock, the blinds, one small line of level and player count. The break screen is the word "break" in lowercase gray and nothing else. No QR, no panels, no sounds, no nothing. Made for rooms where a flashing casino screen would feel wrong. Two kilobytes. The whole thing is two kilobytes.

Download Zen Minimal (2 KB)

Emerald High Roller

Main screen, TV and phone:

Emerald High Roller main screen on a TV

Emerald High Roller main screen on a phone

Break screen, same pair:

Emerald High Roller break screen on a TV

Emerald High Roller break screen on a phone

Deep green felt, thin gold rules, and the prize pool gets equal billing with the blinds, which tells you who this one is for. The break screen says INTERMISSION like it's the opera, and keeps a QR code up so latecomers can join the watch party mid-break. Quiet triggers: a chime each level, and one single fanfare when the table gets down to its last nine.

Download Emerald High Roller (28 KB)

Pixel Arcade

Main screen, TV and phone:

Pixel Arcade main screen on a TV

Pixel Arcade main screen on a phone

Break screen, same pair:

Pixel Arcade break screen on a TV

Pixel Arcade break screen on a phone

Hard-edged 8-bit blocks in colors that should not work together and somehow do. LVL and POT cartridges across the top, a green CRT clock, payouts listed as HI-SCORES, and the break screen just says INSERT COIN. The paused clock literally says PAUSED like the game froze. Countdown sound and a screen flash in the last minute, and it says "game over" out loud when someone wins.

Download Pixel Arcade (5 KB)

Snowman Poker League at Griff's

Main screen and break screen on the TV:

Snowman Poker League main screen on a TV

Snowman Poker League break screen on a TV

This one has a third screen the others don't: a dedicated phone screen. Anyone who scans the QR gets this stripped-down view instead of a squeezed copy of the TV, and during breaks it flips its own break banner up top. During play, then on break:

Snowman Poker League phone screen during play

Snowman Poker League phone screen during a break

And this one's different in another way: it's a real skin for a real league that plays at a real pub, included as the "here's what your bar could look like" example. Glossy plates with the labels painted right into the artwork, the pub's actual wall mural on the break screen, neon clovers down the wall edges, and the league's snowman mascot parked on the points bar. It's a free league that plays for points, so the bottom bar tracks points instead of cash. Heaviest file of the six because all that artwork rides along inside it.

Download Snowman Poker League (916 KB)


All six import into any GameNight install running v0.2089 or newer. They land in your own library, so hack away at them in the editor: recolor, reword, swap the artwork, steal one screen out of one and bolt it onto another. If you build something good out of these, post it in the comments.

Sign in to leave a comment.