GameNight! You In? (no longer just an invite tracker) (4 Viewers)

Leagues now have Posts.

Owners and managers can publish posts to their league from a new Posts tab on the league page, using the same rich-text editor admins use for global announcements. Members see league posts mixed into the landing-page feed alongside admin posts, each tagged with a league badge. Non-members never see them.

Any post can be flagged as the league's rules post. It's pulled out of the feed and surfaced via a League Rules button in the league header, so members always know where to find the house rules without scrolling.
 
Got a few more test, event some home games have been ran!

https://gamenight.poker

GameNight changes since April 21

Notifications & RSVP
- Resend button: hosts can now re-send an invite SMS or email to any invitee who hasn't responded. No more delete-and-re-add
workarounds.
- Tokenized RSVP links now require a Confirm tap. Previously, link-preview crawlers and SMS URL safety scanners could silently flip an
invitee's RSVP three different ways within seconds of delivery, before the human even opened the message. The link still works the same;
it just lands on a "Confirm Yes/No/Maybe" page instead of writing immediately.
- Activity log now captures RSVPs from invitees who don't have an account, so audits show every flip, not just the registered-user ones.

Event editor
- Pending league members (added by phone with no email) now appear in the invite picker. They were silently dropped by a NULL-key dedup
bug.
- Admins also see pending league invitees when a league is selected, not just the registered users.
- Pending invitees clicked from All Users now show their real name on the Invited side instead of a phone number.

Security
- Walk-in autocomplete on the Manage Game screen no longer leaks every site username to non-admins. League owners now only see members
of the event's league plus their personal contacts.

Performance
- Apache prefork capped at 25 workers (was 150) so a traffic spike can't OOM the host on a small VPS.
- Indexed events.start_date and events.end_date so the calendar's main query stops full-scanning the events table.

Polish
- League Rules tab gets an Edit button (no more unset, edit, re-flag dance).
- Manage Game back arrow uses browser history instead of a hardcoded calendar link.
- SMS dedup is cleared when a user is deleted, so re-added custom invitees actually get their message.
 
Public share links for league posts (v0.19100)

League owners and managers can now share an individual league post outside the league via a public link, without making the post
globally visible.

How it works

On the league's Posts tab, each post now has a "Make public" button (visible to owners, managers, and site admins). Clicking it mints a
share token and reveals a panel with the URL. Anyone holding that URL can open the post and read it without logging in. The post still
does not appear in any feed for non-members. The only way someone outside the league finds it is if you hand them the link.

Controls

- Make public mints the link the first time, idempotent after that.
- Copy copies the URL to the clipboard.
- Regenerate rotates the token, killing the old link without flipping the post off.
- Disable clears the token entirely. The URL stops working immediately.

A green "Public link" badge appears on the post card so members can see at a glance which posts are exposed.

For the visitor opening the link

- Logged-out visitors see the post read-only with a top bar offering Log in / Sign up.
- Logged-in league members see the comment form just like in a normal feed view.
- Logged-in non-members can read but not comment.
- Search engines are told not to index the URL (noindex, nofollow).

Behind the scenes

The share URL routes to a new /post_public.php?token=... page. If your site has the URL shortener enabled, the displayed link is run
through it automatically, so users see a short.gy style link instead of a 32-character token.

Why this exists

Sometimes you write a league post (a tournament recap, a rules clarification, a flyer) and want to send it to one person outside the
league without inviting them in or copy-pasting the whole thing into an email. This gives that path without weakening the league's
overall privacy model: feeds, league pages, and the homepage all still hide league posts from non-members. The link is the only door.

Feedback welcome.

Example. https://gamenight.short.gy/azQJtE
 
This just keeps growing, not going to lie... i am having a LOT of fun making this!

The league page that is pulling info straight from GameNight. https://www.bayouburro.com

GameNight now has an API

Heads up for anyone running a sister site for your league: GameNight can now feed your other site directly. League owners can mint a
read-only API key from their league's new API tab and hand it to a sister site's developer.

What it can pull:
- League info (name, description, member count)
- Member roster (display names and roles, no contact info)
- Events with RSVP counts
- League posts (sanitized HTML, ready to render)

What it can't do: write anything, read other leagues, or expose member emails or phones. Each key is scoped to one league and revocable
in one click if it leaks.

Useful if you want your league's marketing site, a club page, or a Discord bot to stay in sync with what's happening in GameNight
without copy-pasting.

Docs are in DOCS.md under "API for Sister Sites" if your developer wants the full reference.
 
The site is very much still a beta product. Heavy changes are happening.

So I think I will be moving more towards a service based site.

I plan on adding the following.

1. Leagues. Leagues will have a multilevel of management. League managers and league members.
2. Users can create their private events. Or if a league manager can create league events.
3. Allow users to be members of multiple leagues???? Not sure on this one yet.
4. This way each league gets their own calendar and users can have their own calendar too.


Currently sitting in a major traffic jam brainstorming.
Make this a WordPress plugin and you're golden! 👍😁👍
 
Make this a WordPress plugin and you're golden! 👍😁👍
so, having this all running in a WordPress plugin might be a bit too much... BUT, i have an idea!!

I think a WordPress plugin that can leverage the API system I am building to interact with the https://gamenight.poker site is doable.

Public API now supports user creation

Sister sites can now create GameNight users via the API. New endpoint:

POST /api/v1/users — give it a display_name plus an email or phone, and it creates the account, adds the person to your league, and
sends a verification email or SMS so they can set a password later. Replaying the same call is a safe no-op (returns the existing
user_id), so retries won't duplicate accounts.

API keys now carry a scope. Existing keys stay read-only; to create users, mint a new key with Read + write from the league's API tab.
The keys table shows the scope on each row so you can see at a glance which keys can write.

Per-key rate limit is 60 creations per hour. Full reference (request body, response shape, error codes, examples) is in DOCS.md under
"API for Sister Sites".
 
Ok. First initial api and a basic working Wordpress plugin are on track to work!

This is my test Wordpress site while I am fleshing this out.

https://wp.bayouburro.com/gamenight-test/

That is pulling information into a Wordpress page using the api interface with a Wordpress plugin.
 

UncleSalty, Rakrul, and anyone else.

GameNight WordPress Plugin — now available

I built a free WordPress plugin that connects your WordPress site to your league on gamenight.poker.

Setup (5 minutes):

1. Create an account on https://gamenight.poker
2. Create your league
3. Open Leagues → API and mint a read/write API key. Copy it — you'll need it in step 6.
4. Download the latest release from https://github.com/Isorgcom/gamenight-league-wp/releases
5. In WordPress, go to Plugins → Add New → Upload Plugin, upload the ZIP, and activate.
6. Go to Settings → GameNight League, paste your API key, and click Run test to verify the connection.

That's it — drop [gamenight_league], [gamenight_events], [gamenight_roster], or any of the other shortcodes onto a page, or use the new
GameNight menu in wp-admin to manage members, events, posts, and RSVPs directly from WordPress.

Source: https://github.com/Isorgcom/gamenight-league-wp
 

UncleSalty, Rakrul, and anyone else.​

GameNight WordPress Plugin — now available

I built a free WordPress plugin that connects your WordPress site to your league on gamenight.poker.

Setup (5 minutes):

1. Create an account on https://gamenight.poker
2. Create your league
3. Open Leagues → API and mint a read/write API key. Copy it — you'll need it in step 6.
4. Download the latest release from https://github.com/Isorgcom/gamenight-league-wp/releases
5. In WordPress, go to Plugins → Add New → Upload Plugin, upload the ZIP, and activate.
6. Go to Settings → GameNight League, paste your API key, and click Run test to verify the connection.

That's it — drop [gamenight_league], [gamenight_events], [gamenight_roster], or any of the other shortcodes onto a page, or use the new
GameNight menu in wp-admin to manage members, events, posts, and RSVPs directly from WordPress.

Source: https://github.com/Isorgcom/gamenight-league-wp
Thanks for the tag!!
I'll need to create a new wp site for this now to try it all out!!👍😁👍

Will let you know.

With this easy api and short codes and using a wp poker theme you could really be onto something huge here I reckon!! 😎🤙
 
AHH!!

ok, I was doing some security hardening, and looks like i broke the new user sigon! Its been fixed now!

Summary:
- Bug: v0.19238 enabled SQLite FK enforcement, but db_log_anon_activity() writes user_id=0 (anonymous sentinel)
into activity_log, which has a FK to users(id). Every anon-event path — registration, failed logins, password
resets, resend verification, walkin RSVPs, all /api/v1/* calls — hit FOREIGN KEY constraint failed and returned
an empty 500. PHP's log_errors=Off hid the cause.
- Fix (v0.19239): dropped the FK from activity_log. One-shot migration rebuilds existing tables; fresh-install
schema also updated. The user_id=0 sentinel is preserved (admin log viewer already handles it).
- Verified live: POST /register.php now returns 200 with the "Check Your Email" / "Account created" banner.
 
Thanks!

"Tournament timer" throws error also. 500 error.
https://gamenight.poker/timer.php
thanks Frode789! this exposed 2 more of the sql db bugs! should all be good now.

and i also fixed another bug, a layout bug where really long event descriptions were pushing the RSVP and Edit/Delete buttons off the bottom of the event popup. Now the description scrolls inside its own little box so the buttons always stay visible. Refresh the page (Ctrl+F5) if you still see the old version.
 
So. Since this thing has morphed into a game/league management tool.

• Invites. SMS, email, WhatsApp. Scheduled reminders. Anything else???
* Tournament timers per event. Multi screen and shareable. Basic user admin right from the timer screen.
* custom tournament timers levels save per user or per league.
* QR code user registration for hosted events.
* game buyin add on table management.
* league management. News, events, league rules.
* league scoring system (I feel this needs some fleshing out)
* api and Wordpress integration(still waiting on the official Wordpress plugin greenstamp)


Is there anything else that I should be adding??
 
Last edited:
Per-user timezone support - recent updates

Each user can now pick their own timezone in Account Settings. Once set, the whole site renders in your local clock instead of the site
default.

What you'll see in your timezone:
- Footer current time
- Event start/end times across the calendar (month + week views), My Events, and league event lists
- Event reminder emails and texts sent to you
- Post and comment timestamps

Creating/editing events: type the time you mean in your own clock. If you're in Eastern and pick 7:30 PM, that's stored as 7:30 PM
Eastern - anyone viewing it in Central sees 6:30 PM, anyone in Pacific sees 4:30 PM, etc.

Defaults stay sensible: if you don't pick a timezone, you still see whatever the league admin has configured site-wide.
Public/anonymous flows (RSVP links, the login page) also stay on the site timezone.

Versions: v0.19243 - v0.19245.
 
@Isorg You are doing great work! I can't wait to have my friend help set it up on a server to use the original version, not the league. Appreciate you!
 
Not sure where i will use this... but one of the timer elements you can use.....

Streaming video panel — multi-provider. CSP frame-src expanded to allow embeds from YouTube (www.youtube.com, www.youtube-nocookie.com), Twitch (player.twitch.tv, www.twitch.tv), Vimeo (player.vimeo.com), Kick (player.kick.com, kick.com), and Prime Video (www.primevideo.com, atv-ps.primevideo.com — best-effort; Amazon's X-Frame-Options usually blocks). A client-side normalizeStreamUrl() helper extracts the embed URL from a user-pasted watch URL for each provider, including the tv.youtube.com/watch/<id> pattern. Twitch's parent= requirement is satisfied from location.hostname so the embed works in both dev (localhost) and prod (gamenight.poker) without any settings. The stream URL is stored on timer_themes.properties.elements.streaming.url; theme-editor inspector has a URL field plus a Prime-Video warning. Iframe auto-hides on touch devices (('ontouchstart' in window) || navigator.maxTouchPoints > 0) because cross-origin iframes capture taps that would otherwise re-acquire the wake lock — admins can still configure the URL on their phone; it shows on desktop/TV viewers.

1779078789506.webp
 
If you are streaming your own tourney, can you have your stream show in the tourney window like you show? What about building streaming into the GameNight app? A way to have your stream that includes cards and graphics play through it (I may not know what I'm asking).
 
Also, a buddy of mine likes to get granular (counting the distribution of chips) with his buy-in's and rebuys in a cash game - he likes to track which chips he gives out - how many $1's, $5s, $25s's etc. per player. Can you build in a way to track that in the Event/Manage Event window?
 
Also, a buddy of mine likes to get granular (counting the distribution of chips) with his buy-in's and rebuys in a cash game - he likes to track which chips he gives out - how many $1's, $5s, $25s's etc. per player. Can you build in a way to track that in the Event/Manage Event window?

i have seen some poker timers go a default chipstack tracker, i think that could be added with minimal changes.

If you are streaming your own tourney, can you have your stream show in the tourney window like you show? What about building streaming into the GameNight app? A way to have your stream that includes cards and graphics play through it (I may not know what I'm asking).

1779112185484.webp


any streaming URL can be put in the url field. the idea was, to be able to add a amazon prime stream of a the Astros!


but..... Amazon Prime has DRM enabled and you can't stream anything with a DRM protection flag.
BUT!!! using a 3rd party web browser PIP (picture in picture) extension... something might be able to be cobbled together. This is a little more host dependent solution VS a server side programming feature. I am still researching.
 
I got a question. Would there be any interest in just the tournament timer as a stand alone item?
 
I'm mostly interested in the Invite part of the app. I haven't tried it for a tourney. If I wanted to use it for a tourney, can I pull up the timer on an iPad?
 
I got a question. Would there be any interest in just the tournament timer as a stand alone item
I'm mostly interested in the Invite part of the app. I haven't tried it for a tourney. If I wanted to use it for a tourney, can I pull up the timer on an iPad?
yes. It works very well on an iPad.
 
GameNight patch notes (v0.19248 to v0.19301)

- New: Full illustrated Host Guide, one walkthrough from setup to running the clock. Host and Guest guides now live under a Help menu.
- New: Admins get an "update available" dot (plus a Check now button) when the install is behind the latest release.
- New: Export and import tournament-timer themes as files.
- New: Streaming video auto-mutes during timer alarms, then un-mutes (YouTube and Vimeo).
- Fixed: Changing the site timezone no longer shifts your existing event times.
- Fixed: Usernames keep their capitalization across the site (nav, emails, standings, invites).
- Fixed: Tournament timer no longer flashes an inflated countdown right after a page refresh.
 
Tournament Timer update: a big round of Blind Structure editor improvements

The Blind Structure editor in the Tournament Timer got a lot of love over the last couple of updates. Here is everything that is new.

Generate a whole structure in seconds
New ⚙ Generate button. Instead of typing every level by hand, give it a few inputs (starting small blind, how many levels, minutes per
level, and optionally how often to add a break, break length, and when antes kick in) and it builds the full schedule for you. The blinds
follow a clean, chip-friendly ladder (25 / 50 / 75 / 100 / 150 / 200 and up), scaled to your starting point. Tweak any level afterward
if you want.

Reorder levels on any device
Each level now has up/down (▲/▼) buttons, so you can move a level or break around with a single tap. This finally works on iPads and
phones, where the old drag-to-reorder did not. Drag-and-drop still works on desktop if you prefer it.

Never lose your work
The editor now quietly saves your in-progress edits to your browser as you go. If you close the tab, reload, or your phone drops the page
in the background, it offers to restore your edits when you come back. The Save button also shows a marker when you have unsaved
changes, and you get a heads-up before leaving with edits pending.

Toolbar and column titles stay pinned
The Save and action buttons (Generate, Add Level, Add Break, Close) along with the preset menu (Load, Save As, Delete, Export, Import)
now sit in a header pinned at the top of the editor. The # / SB / BB / Ante / Min / Type column titles stay locked right beneath them.
Scroll a long structure and your controls and column labels never disappear, and your level rows no longer slide up behind the buttons.

Cleaner "unsaved changes" prompt
Closing the editor with edits you have not saved now shows a proper in-app dialog with two clear choices: Discard to throw the edits away
and revert to your last saved structure, or Keep editing to jump right back in with everything intact. No more accidental losses from a
misclick.

Small touch: "Save Changes" is now just "Save"

That wraps this round. As always, give it a spin and let me know if anything feels off or if you have requests
 
GameNight - what's new (May 24–29)

A run of timer updates this week, with a lean toward iPad/touch and streaming. Here's the rundown.

Circular countdown clocks
The clock now has a Style setting. Classic MM:SS is still the default, but you can switch to:
- Radial ring - a circle that drains as the level counts down, time in the center. Read the level at a glance from across the room.
- Radial with checks - same idea, but split into segments that check off one by one. Pick how many segments you want.

Both keep the green → amber → red color cues (and the final-seconds pulse), and you can set ring thickness and sweep direction.

Cleaner layout editor
Entering edit mode used to dump every element onto the screen at low opacity, including the ones you'd hidden. Now there's an Objects panel down the side that lists every element with a show/hide eye. Hidden elements stay hidden - one only ghosts onto the canvas while you've got it selected to nudge it into place, then tucks away again.

Preset theme library
A built-in gallery of timer themes you can load in one click no more downloading and re-importing files. Six to start: Classic Dark, Default Blue-green, Casino Red & Gold, Emerald Felt, High Contrast, Midnight Purple. Admins can upload/delete presets.

Streaming on remote displays
- Fixed: the embedded video stream now actually shows up on the remote/TV display (it was being dropped on remote views entirely).
- Admins can now allow extra stream hosts (Settings → General → Tournament Timer) beyond the built-in providers - handy for a self-hosted stream. Supports *.example.com wildcards.

iPad / touch fixes
- Snap toggle - a 🧲 button to turn off snapping for fine positioning (Shift still works if you have a keyboard, but iPad couldn't).
- No more white edges - the theme background now paints behind the whole page, so iPads no longer flash white at the screen edges or during the Safari toolbar transition.

🧹 Editor polish
The layout-edit pill's Cancel is now Close, and it no longer flashes the old theme on exit if you'd loaded a different one mid-edit.

Everything theme-related (clock style, ring settings, what's shown/hidden, positions) saves as part of your theme and travels with export/import. Older themes are untouched - they just show the classic text clock as before.

Try it at https://gamenight.poker.

1780083388524.webp
1780083452843.webp
 
Some changes went live over the last couple of days, mostly around invites and RSVPs: Thanks to SixSeven for bringing these issues to me!!
  • You control when invites go out. Creating an event no longer auto-sends invitations. You build it, look it over, then hit the new Send Invitations button when you're ready.
  • Send only sends to who needs it. A banner shows how many people haven't been invited yet. Add someone later and hit Send again, and only the new folks get a message. Nobody gets pinged twice.
  • No more login wall on email RSVPs. When invitees tap Yes, Maybe, or No in their email, they land on a clean event page that shows the details, who's coming, and lets them change their answer. No account, no password needed.
  • New events open right to the send prompt. After you create an event, it pops open with the Send Invitations button front and center instead of just closing.
  • Faster guest lists. Double-click a name to add them to the invite list, double-click an invited name to remove them. The arrows and drag-to-reorder still work the same.
  • You can invite (and send to) yourself. Handy for testing that emails are landing.
  • Fixes: sorted out the Add Event button not opening, a "network error" some hosts hit when sending invites, and the manager toggle not showing on brand-new events.
As always, give a shout if anything looks off!
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account and join our community. It's easy!

Log in

Already have an account? Log in here.

Back
Top Bottom