August 2026: Sportscast Mobile Goes Live, Plus Cleaner Season Registrations
Released 2 – 9 August 2026 · versions 0.83.0 – 0.90.0
A big week, and an unusually connected one. Most of what shipped falls into three stories: getting the Sportscast mobile app fully wired to the platform, making season registration behave predictably from application through to roster, and fixing the small things that quietly made pages harder to trust — like a 7pm tip-off displaying as 11:00 AM.
Sportscast mobile can now do everything it shows you
If you scan a QR code to name an opponent, spin up a pickup game from the hub, or open a club and expect to see its games, those screens now have a backend behind them. Previously several of them simply failed.
Create a game from your phone. Schedule into a season, or start an unofficial game — a pickup, friendly, or scrimmage — with no league or club attached at all. The app now asks for the sport up front and filters the team list to match, so you are not scrolling past every team you have ever created.
Find and create teams. Browse a season's registered teams, pull up your own, create a new one you own, and resolve any team by scanning its QR code. Team names now render as names, not as raw ID strings.
Club games appear where you'd expect them. Opening a club in the Games screen used to come up empty. Club games now load properly, filterable by event and status, and they display exactly like league games — same venue, same streaming indicator, no half-blank cards.
Clearer errors when something is off. Picking a division that doesn't exist, a team ID that doesn't resolve, or a league with no sport configured now returns a specific, readable error instead of a generic failure.
Season registration works the same way everywhere
Two related fixes that league admins will feel immediately.
A team can only hold one live registration per season. It was previously possible for the same team to be registered twice, which meant duplicate entries in team pickers and confusing roster views. That is now prevented, and we've cleaned up existing duplicates — carefully. Where a duplicated pair had registration fees recorded against more than one row, we deliberately left it alone and flagged it, because deciding which fees belong to which registration is a finance call, not something a script should guess at.
Accepting an application no longer errors out. Admins were hitting an "already registered in this season" error when accepting a team that looked completely unregistered. The application screen and the accept action were answering the question "is this team already in?" two different ways. They now share one answer. If a team is genuinely registered under a different division, you get a clear message naming both divisions rather than a silent move — because divisions carry standings, brackets, games, and pricing, and moving one quietly can change what a team owes.
Game officials are part of setup now
Getting officials in place is one of the first things you do when standing up a league, but the setup checklist never mentioned it, and the only way in was a form buried in Settings that sent one email at a time.
"Add game officials" is now the fourth step on the League OS setup checklist, and the invite form accepts a whole list of addresses at once — paste them separated by commas, semicolons, or line breaks, up to 50, with duplicates removed automatically. Each address gets its own invitation for the shared role you pick. If a few addresses fail, the rest still go out and you're told exactly which ones didn't.
We also fixed three separate reasons an official could accept an invitation and still not be selectable in a game. Accepted officials now show up in the per-game picker as they always should have, including invitees who already had a StatsCentral account.
Public league pages read correctly, wherever you are
Schedules now display in your own timezone. Public league pages were rendering every time server-side without a timezone set, so a Manila league's 7pm tip-off read as 11:00 AM to everyone, everywhere in the world. Times now follow the viewer's own clock, including on a first visit before your browser has told us anything. Where we can't yet tell, the time is labelled UTC rather than shown as if it were local.
Games link to the live viewer. Every game card on a public league's Games tab now opens that game in the game viewer.
Club OS profiles show what's actually relevant
Member profiles used to render Stats, Assessments, and Invoices for every member regardless of who they were. Club staff saw empty stat cards. Members who had never activated their account saw an invoice card they could do nothing with.
Stats and Assessments now appear for players only. Invoices appear only for members billed in their own right — guardians, who pay for the children they manage, and adult players. A child player's invoices go to their guardian, which is how approvals and payments already worked. All three sections require an activated account.
Emails go to people who can actually read them
No more mail to children's placeholder addresses. Minors added to a roster through a guardian invite get an account so they can be rostered and scored, but not a real inbox. Every roster and team-event notification sent to one of those accounts was guaranteed to bounce. We've added a single platform-wide safeguard that catches this across all of our email, rather than patching it mailer by mailer.
Guardian invite forms explain themselves. Parents accepting on a child's behalf were putting the child's details into the parent section — so those three fields are now explicitly labelled as the parent's, with the section copy saying plainly where the child's details go. The submit button is no longer disabled with no explanation; if something's missing, you get a list of exactly what, and the cursor jumps to the first one. We also fixed a path where choosing "Register a new child instead" showed no name fields at all and created the child with a blank name.
Also in this release
- League OS pages load faster — the league logo in the top bar was being fetched separately on most pages instead of loaded up front.
- Our full company name now appears correctly in the site footer and across every email template.
Questions about anything here? Get in touch — or check the helpdesk for step-by-step guides.