What's new on the bbstats.am platform.
13 Sept 2026
The first YouTube Live release used one reusable OBS key for the whole league. A brief encoder drop then completed that broadcast, and the next Start in OBS opened a new YouTube live — or the next bound fixture — while the game page still embedded the old watch URL.
10 Sept 2026
League admins can sign in with Google and attach the championship YouTube channel. One OAuth app covers the whole platform; each league connects its own channel.
9 Sept 2026
A second Browser Source sits next to the live scoreboard and shows the same team-vs-team bars and top performances as the public game page, updating while the game is live.
The MIN column used to stay at 0:00 until the buzzer. On-court time is now built from substitutions and the running clock, the same way the finished box is rebuilt.
6 Sept 2026
A club that played last year and is signing up again no longer shares one forever list. Each season has its own squad, so dropping someone from next year does not take them off last year’s games.
The public roster used to list everyone ever attached to the club, which mixed last year’s leavers into this year’s page.
The coach roster screen is where next year’s squad actually gets built. When a team is in more than one season, a Season dropdown appears so add, edit and remove apply to the season on screen.
30 Aug 2026
Made baskets can now celebrate the scorer on the OBS Browser Source overlay — a short pop above that team’s side of the bar, without touching the scoreboard itself.
Logging a substitution in live scoring can now play a broadcast-style in/out graphic at the top centre of the overlay.
A player foul can now flash a small rectangular card in the upper corner of that team’s side — home left, away right.
26 Aug 2026
The public player page leads with what fans actually scan first — points, rebounds and assists — instead of a flat row of equal numbers.
Picking a player, team, coach, news or branding image now opens an optional crop before upload. Skip to keep the original.
PG, SG, SF, PF and C on public player lists and profiles use the same hover (and tap) hint as stat abbreviations — so PF is power forward there, not personal fouls.
Searching or browsing Players on a wide screen used to render both the table and the mobile cards. Cards stay hidden on desktop now.
Box scores, player pages and player compare now show a hover (and tap) hint for every stat abbreviation — PPG, RPG, APG, TOPG, PIR, TS% and the rest — in English, Russian and Armenian.
A finished game page is a story first, then the numbers.
Mark a championship completed and 1st / 2nd / 3rd place team medals are created automatically.
The Awards page is a dropdown of completed championships — no mixed “All championships” list, and seasons that have not finished stay out of the menu.
The Leaders dropdown includes in-progress and finished championships. Upcoming seasons (not started yet) stay out. The page opens on a real board instead of an empty “pick a championship” prompt.
On a championship page, the tab row wraps so Awards is tappable. In the Games table, status sits under the date and team names use abbreviations so the row no longer spills off the screen.
24 Aug 2026
The Playoffs page is a tournament tree now, not a stack of series cards.
18 Aug 2026
A dedicated page that explains what bbstats is for organizers searching for basketball league software.
Search engines now get a clearer picture of the marketing site and stop indexing empty shells.
12 Aug 2026
Each league can publish a public Partners page with sponsor logos and links.
7 Aug 2026
Leagues can open a public Coach portal so club coaches self-serve youth registration.
A step-by-step product tour for youth seasons, divisions and coaches.
2 Aug 2026
Head coaches are first-class people, not just a text field on the team.
Game-day attendance goes beyond fan Going / Maybe / Not going.
League staff can message a team’s managers and keep an audit trail in the admin app.
Require liability / consent acknowledgements before paid or free team and player registration.
Cross-game suspensions that affect eligibility, not only in-game fouled-out.
Public SEO pages that position bbstats against common league platforms.
29 Jul 2026
Leagues can publish one-way announcements to team followers, and fans who follow a side can RSVP on upcoming games.
Enter a final score without running live play-by-play — useful for games scored offline or reported after the fact.
The schedule generator can pack fixtures onto chosen weekdays, multiple tip-off times, and multiple venues without double-booking a court.
Each game can run a real FIBA-style shot clock on arena TVs, separate from live scoring.
28 Jul 2026
Leagues can collect team and player registration fees on their public site — payments go through the bbstats merchant account (Paddle), with an adjustable platform fee recorded on each invoice.
Admins can generate a full regular-season fixture list in one pass from Games → Generate schedule — hand-creating games one-by-one still works as before.
Public league sites (and bbstats.am) can be installed on a phone’s home screen like a native app — full-screen, with the league’s name and branding.
Keep your own club site and still show live league data — copy a one-line script from Branding → Website embeds, or call the public JSON API.
Try the product without signing up at demo.bbstats.am — a shared sample league with live scoring you can explore.
Demo data resets on a schedule so the site stays ready for the next visitor.
The platform homepage now walks through the product with real screenshots — not mockups:
Each stop has a short plain-language explanation so visitors can see how a league runs day to day before they sign up.
bbstats.am now surfaces a visible FAQ covering plans, live scoring, multi-championship leagues and public pages, with matching structured data for search engines.
New tenant dashboards open with a short onboarding checklist that tracks the first setup steps — branding, teams, venues, staff and the first game.
Progress updates as you go, and you can dismiss the checklist once the league is ready to run.
Admin and stats accounts now keep a single active sign-in. Logging in on another device ends the previous session immediately (API and live-scoring sockets), so shared credentials cannot stay open on two machines at once.
If your session was replaced, you are sent back to login with a clear notice to sign in again.
31 May 2026
A new **Streaming overlay (OBS)** section in Branding lets you design how the scoreboard looks without touching code:
Every game row in the admin Games list now has a **Copy overlay** button next to **Score**, so you can grab the OBS Browser Source URL for that fixture in one click before going live.
28 May 2026
A single league site can now run several championships at once instead of being locked to one.
Teams now carry an explicit championship assignment, editable from the admin Teams view. When you create a game, only the teams belonging to the selected championship are offered, which prevents accidentally scheduling a cross-competition fixture.
The court-view live scorer can now open and correct the play-by-play feed without leaving the court, so a mis-logged bucket or rebound can be fixed in place mid-game.
The selector dropdowns used across the admin (championship, team and player pickers) were restyled for clearer, more consistent menus.
24 May 2026
The admin now defaults to the most relevant championship (the active one) when you open Games and related views, instead of forcing you to pick every time.
Several edge cases in the foul-logging flow were corrected so the foul type, free-throw awards and resulting game state stay consistent.
21 May 2026
A brand-new **Court** scoring mode lets the scorekeeper record shots by tapping their exact location on a to-scale half-court instead of using buttons alone.
A new game-stats screen turns the shot coordinates from Court mode into visual analytics:
19 May 2026
The Branding section now includes a QR code that points to your public site, ready to print on posters, programmes and signage so fans can jump straight to live scores.
The generated QR code is fully customizable from Branding:
18 May 2026
After a missed shot that is immediately put back, the live scorer offers a one-tap **tip-in** so the offensive rebound and the made basket are recorded together in the correct sequence.
Blocked 2-point attempts are now captured properly: the block is credited to the defender, the attempt is logged as a miss, and the live rebound flow continues as expected.
A batch of smaller live-scoring corrections from May 17 covering event sequencing and game-state consistency.
13 May 2026
Games can now be set to 8-, 10- or 12-minute quarters, so the same platform handles youth, club and senior formats without hard-coded period lengths.
When a player fouls out, the live scorer now requires a substitute before play resumes, and foul counts (personal and team) are tallied correctly through that flow.
12 May 2026
Admins can now clean up duplicate player records created across games or imports.
Fixed the player search used by the import and merge flows so partial-name lookups return the expected matches.
11 May 2026
Standings are now sorted with the standard FIBA league criteria:
Logging an unsportsmanlike foul now applies the correct free throws plus possession outcome and updates personal/team foul counts consistently.
8 May 2026
Admins can now turn a finished game generated by GENIUS into a played-game record without re-typing anything.
FIBA Box Scores display each player's on-court time rounded to whole seconds, so summing them can drift by 1–2 s vs. the canonical Totals row (e.g. 240:01 for a 4×12 game). The importer now snaps player seconds to the Totals row when the drift is small (≤5 s) by absorbing the delta into the longest-played active player; larger drifts surface as a warning on the review screen.
7 May 2026
Refreshed front-door experience for fans landing on a tenant subdomain:
Every finished game now exposes a **Download PDF** button on its public page. The export contains the full box score, quarter scores, and play-by-play with FIBA-style team-rebound footers — same renderer used by the admin export.
Each league can attach Instagram, Facebook, X (Twitter), YouTube, Telegram, and TikTok URLs in **Branding** (admin → Branding → Social media).
On **News** (admin), a Clone action duplicates an article as a new draft (title prefixed with "Copy of …"), preserving cover image, body HTML, and category. Slug is auto-regenerated; published flag flips to `false`.
Each scheduled game now has a **Reschedule** button that opens a date/time picker without leaving the list. Saves immediately; live admins on other devices see the change via the standard `game:updated` socket event.
5 May 2026
Recording a turnover now asks for the type — **bad pass** vs **lost ball** vs other. The play-by-play line and the boxscore filter (`turnovers by type`) reflect the choice.
Logging a shooting foul prompts for the shooter, the foul shots awarded (1/2/3), and which attempts were made/missed — with rebound capture on the last miss when the play stays live.
The arrow flips on jump-ball outcomes and dead-ball possessions. Visible on the live admin scoreboard *and* the public game page; included in PDF exports.
3 May 2026
Per-game **team rebounds** are now first-class:
2 May 2026
Several edge cases around starting and resuming the clock — off-by-one second drift after a pause-resume cycle, occasional double-tick on socket reconnect — have been fixed. Admin live-scoring sockets now refresh their JWT before emitting events when the access token is near expiry, so a long live-scoring session can't time out mid-game.
A scheduled job now flips championships between **upcoming → active → finished** based on `startDate` / `endDate`. Available both as an in-process timer (default) and a one-shot script for OS-level cron (`npm run championship-status-sweep`) when operators prefer external scheduling.
19 Apr 2026
Wildcard subdomains *.bbstats.am for new leagues/championships
19 Apr 2026
19 Apr 2026
19 Apr 2026
19 Apr 2026
The homepage hero CTA on bbstats.am now links to `/start` instead of opening a `mailto:` — the platform is officially self-serve.
19 Apr 2026
19 Apr 2026
19 Apr 2026
19 Apr 2026
The collapsed/expanded sidebar logo, browser tab title and favicon now follow the platform/tenant brand instead of a hardcoded image.
19 Apr 2026
19 Apr 2026
In the super-admin tenant list, the Open button now opens the custom domain when verified, falling back to the subdomain otherwise.
Service workers register per origin, so each tenant host has its own push subscription and notifications. No cross-tenant noise.
Added PUT /api/auth/me and a "My account" modal in the admin app so super-admins (who don't belong to any tenant) can update their password.
Public rules view falls back to platform defaults until the tenant admin saves their first version.
publicAuthenticate now verifies that a user's championship matches the request's resolved tenant; pasted tokens from another tenant return 403.
19 Apr 2026
Public site applies the tenant theme at boot — before the first paint — so users never see a flash of unstyled content.
Branding editor offers a curated catalog of Google Fonts. Selected families are loaded only on the tenant's own host.
Tenant admins can download a ZIP with their JSON data and uploaded images via /api/tenant/export.
Clone a championship to start a new season carrying over teams and players.
Suspended tenants show a maintenance splash on their public site and reject API writes.
New PlatformNews model + dedicated landing site at bbstats.am with platform-only news, completely isolated from any championship.
This page! Super-admins can author release notes (added / changed / fixed / removed / security).
New tenant admin password and "My account" password change include a secure 16-char generator and copy-to-clipboard.