Operations View

What's New

Release notes grouped by the date changes landed on main.

29/07/2026

Signing Out

  • -Signing out now clears the navigation immediately. Previously the header could keep showing Team HQ, Production and Admin until you reloaded the page, even though you were already signed out.

Home Page Registration

  • -When a tournament is open for registration, the home page now leads with it: the date, the entry fee, when fees are due, and how many teams have signed up so far.
  • -Captains get a button that goes straight to their roster for that tournament, instead of having to find it through the team management pages.
  • -If you are not signed in, or do not have a team yet, the same button points you to the right place to start.
  • -Removed the stat boxes at the top of the page. Every one of them repeated something shown further down.

Create Your Own Team

  • -New teams can now be created directly on the site. Sign up, click Create a team from your account page, and you are the captain straight away with nothing to wait for.
  • -From there you add your squad by PUBG in-game name and register for tournaments yourself, without contacting tournament management first.
  • -Team names and tags have to be distinct from existing teams. The check ignores capitals and accents, so Trúðalestin and Trudalestin count as the same name.
  • -A new team appears on the public Teams page once it has registered for its first tournament.

Captains Register Their Own Teams

  • -Added a team management area for captains at Manage team on your account page, covering the squad and tournament registration. Registering no longer goes through a spreadsheet.
  • -Added squad management: search the league player list, add and remove players, and mark who is a starter and who is a sub. The squad is your persistent pool, separate from the lineup you pick for each tournament.
  • -Added adding players who are new to the league by PUBG in-game name. We look the name up so their stats match automatically from their first game. If the name is wrong or the PUBG service is unavailable, you can still add the player and an admin resolves the account later.
  • -Added tournament registration: pick your lineup from the squad, with live checks for squad size, the two-sub limit, and players already registered with another team. The same rules run on the server, so nothing invalid gets through.
  • -Rosters stay editable until an admin locks the tournament, and a team can withdraw and register again while registration is open.
  • -Registered teams get a direct link to set their drop location for that tournament.
  • -Captains are assigned by league admins. Ask an admin if you should have access.

Drop Locations Carry Forward

  • -Your drop locations now follow you from one tournament to the next. When you register, the spot your team last used on each map is filled in automatically.
  • -Change your drop in a tournament and that becomes the one carried into the next tournament, so there is nothing extra to set up or maintain.
  • -You can still move your drop for any individual tournament as usual.
  • -Two teams can still choose the same spot. That gets settled in game.

Entry Fees

  • -Tournaments can now carry an entry fee, shown to captains with the league's bank details and the payment deadline when they open their roster.
  • -Teams that pay for a whole season at once are marked with a season pass, which covers every tournament in that season including ones added later.
  • -Paying does not block registration: your roster is registered either way, but a team that has not paid by the deadline is removed from the game lobby.
  • -Payments are recorded by league admins once the bank transfer arrives, so the status can take a little while to update.

League News

  • -Added a News section for league announcements, linked from the main navigation.
  • -The three most recent posts also appear on the home page.

Rebuilt Home Page

  • -The home page now opens with the current season and what is happening next: a live tournament while one is running, otherwise the next scheduled tournament with its date and how many teams have registered so far.
  • -Standings on the home page are now top-five summaries that link to the full league, championship, and tournament tables, instead of three full tables stacked on one page.

28/07/2026

Opponent Scouting

  • -Added an Opponents section to Team HQ, replacing the placeholder that was the last unfinished page in the private team area.
  • -Added a head-to-head record against every team you have shared a synced lobby with, decided per match: a win means you finished above them in a game you both played.
  • -Added a side-by-side comparison over shared lobbies only, covering placement, kills, damage, survival, and chicken dinners.
  • -Added an opponent player board built from who actually played against you rather than their current roster, plus links back to each shared match review.
  • -Added drop overlap, comparing declared drops where both teams set one in the same tournament, and warning when your own Map Prep drop plans sit close to somewhere that opponent has actually landed.
  • -Added private opponent-scoped notes for tendencies and prep.

Rotation Maps and Heatmaps

  • -Added a Routes tab to the public match review page. Pick a team to draw its four rotation paths with landing and death markers, with the rest of the lobby kept as faint context.
  • -Added a rotation history view to Team HQ Map Prep, drawing every stored route your team has run on the selected map.
  • -Added drop and death heatmaps for your team per map, filterable to a single match.
  • -Routes begin where a team actually lands: the aircraft flight and parachute are detected by altitude and excluded, so a rotation shows movement on the ground rather than the flight path across the map.
  • -Rotation distances measure ground movement only, so they are no longer inflated by the several kilometres flown in the plane. Mid-game glider and emergency-pickup flights are kept, since those are real rotations.
  • -These are built from route telemetry that has been captured on every synced match since May and was previously only used for a single distance number.

Live Tournament Indicators

  • -Added a Live indicator to the main navigation that links straight to the tournament currently running.
  • -Added Live badges beside active tournaments in the tournaments list.

Broadcast Overlays

  • -Fixed a live-broadcast bug where 7 of the 8 OBS overlays never refreshed after the browser source loaded, so a leaderboard could sit frozen mid-broadcast. All overlays now refresh on their own.
  • -Overlays showing an unavailable state now recover on their own too, instead of needing a manual reload once the game syncs or the map is picked.
  • -Added a head-to-head overlay comparing two teams' rank, points, kills, chicken dinners, and average placement alongside their head-to-head record.
  • -Added a lower-third overlay for the bottom of the programme feed, with title and subtitle set from the overlay URL.
  • -Overlay text scales down to fit rather than being cut off, so long titles and Icelandic team names stay readable on air instead of ending mid-word.

Team Roles and Team HQ Access

  • -Added team role management to the admin user list, so accounts can be set as Captain, Coach, or Analyst instead of everyone being a Player.
  • -This makes captain-only tournament drop-location editing reachable for the first time; the editor itself already existed but no account could ever hold the role.
  • -The account page now names your team role in plain words and tells captains what it lets them do.
  • -Team HQ access is now granted through entitlements with an optional expiry date, managed from the admin team page, replacing manual database edits.

Charts and Stats Presentation

  • -Rebuilt the trend charts for the dark theme. They were previously built light and rendered on dark pages, which left grid lines and tooltips looking wrong.
  • -Added a shared, colourblind-checked chart palette so every chart in the app uses the same colours consistently.
  • -Added a damage composition chart to team pages and the tournament player leaderboard, showing at a glance what each player does their damage with. The full per-weapon numbers remain in the tables.

Mobile and Navigation

  • -Added a mobile menu. The header previously stacked every navigation and account link into a four-to-five line block on phones.
  • -Added a sticky player column to the two widest stats tables, so you can tell whose row you are reading while scrolling sideways.
  • -The per-weapon damage columns now drop out on smaller screens, where the new damage composition chart covers the same ground.
  • -Added previous and next game links to match pages, which previously had no way to step between games.
  • -Added breadcrumbs to match pages and Team HQ detail pages, replacing inconsistent back links.
  • -Global search now finds tournaments as well as teams and players, and supports arrow keys, Enter, and Escape.
  • -Search ignores Icelandic accents, so typing "islands" or "trudalestin" finds Íslandsmeistaramót and Trúðalestin. Previously those returned nothing unless you typed the accented characters exactly.
  • -Maps on match and Map Prep pages are sized to fit the page instead of stretching as tall as the window is wide.

Status Colours

  • -Status badges now use distinct colours for distinct states. Several pairs previously rendered in the same orange, so the colour carried no information and only the label told you anything.
  • -Player claims read as approved, pending, or rejected; match sync states as synced, waiting, syncing, or failed; and a player missing a PUBG account id is now flagged rather than looking the same as one that has it.
  • -The palette was checked against colourblind simulation, and every badge keeps its text label so the colour is never the only signal.

Interface Feedback

  • -Added loading states to the heaviest pages, which previously showed a blank screen while their statistics were calculated.
  • -Added proper error and not-found pages instead of falling through to a raw framework error page.
  • -Buttons that trigger slow actions now show progress and disable themselves, so a sync or a save can no longer be fired twice by an impatient second click.
  • -Added confirmation prompts to destructive admin actions that previously ran on a single click.

Accessibility

  • -Sortable table headers now announce their sort direction properly to screen readers instead of appending an arrow character to the column name.
  • -Match review tabs are now real tabs with arrow-key navigation.
  • -Stat card explanations are now reachable by keyboard; they were previously hover-only.
  • -The map planning workspaces advertised a keyboard control that did nothing. Pressing Enter now actually places a marker or drop.

Presentation Cleanup

  • -Removed internal identifiers and raw scoring values that were showing on public pages, including raw team and account IDs and internal ranking scores.
  • -Player pages now name the tournament in the scope line and link to the team by name instead of showing a database ID.
  • -Tournament status now reads as Upcoming, Live, or Completed instead of the internal status name.

Email Notifications

  • -Added email notification when a player claim is approved or rejected. Previously only admins were emailed, and the person who submitted the claim was never told the outcome.
  • -Added email notification to team members when Team HQ access is enabled for their team.

27/07/2026

Access Control Hardening

  • -Moved access checks out of shared page layouts and into every admin page and every private Team HQ data loader, so private data is guarded at the point it is read rather than one level up.
  • -Admin pages now render a clear access-denied panel rather than failing in an unhelpful way.

Sign-in Protection

  • -Added rate limiting to login and signup to prevent automated credential guessing and bulk account creation.
  • -Changed password hashing to run without blocking other requests. A burst of failed logins previously slowed down the whole site, including overlays mid-broadcast.
  • -Equalised sign-in response timing so a failed login no longer reveals whether an email address has an account.
  • -Added timing-safe comparison for admin credentials and API keys.

Security Headers

  • -Added a content security policy plus standard protective headers across the site.
  • -Verified that broadcast overlays still load correctly in OBS under the new policy.

Live Tournament Performance

  • -Added short-lived caching to tournament standings and player standings. These were fully recalculated on every request, and during a live event each viewer refreshes every 45 to 120 seconds while every overlay polls every 10 seconds.
  • -Standings refresh immediately when an admin syncs a match, rather than waiting for the cache to expire.
  • -Rebuilt player rankings loading as a single database query instead of six sequential round trips, cutting all-time rankings load time to about a third. Season and tournament rankings benefit too.

Database and Query Performance

  • -Added missing database indexes for team and player match statistics. These matter as seasons accumulate rather than at today's data volume.
  • -Trimmed unnecessary columns and repeated per-team queries out of Team HQ analysis and tournament roster validation.

Platform Reliability

  • -Wired up the automated test suite so scoring, ranking, and MVP logic are protected by tests that actually run.
  • -Added an hourly background cleanup of expired login sessions and stale rate-limit records.
  • -Merged two near-identical copies of the PUBG API client into one shared module, so retry and error-handling fixes only need to be made once.

11/05/2026

Player Kill Steal Stats

  • -Added kill steal tracking from PUBG telemetry, counting finishes where another team created the original knock.
  • -Surfaced kill steals in tournament player stats, match scoreboards, public player/team pages, rankings, private player dashboards, and Team HQ analysis views.
  • -Kept kill steals informational only; they do not affect match points, IPL rating, MVP scoring, or standings.

Sync Reliability

  • -Hardened historical re-syncs so existing synced stats are preserved when PUBG no longer serves an old match ID.
  • -Added a reusable maintenance script for sequentially re-syncing existing matches with stored PUBG match IDs.
  • -Documented the Vercel + Supabase transaction pooler setup and worker/local direct-connection expectations.

09/05/2026

Standings Movement

  • -Added rank movement indicators to tournament standings so teams show how many places they gained or lost after the latest synced game.
  • -Added the same movement signal to the production leaderboard overlay for live broadcast scoreboards.

Deep Telemetry Foundations

  • -Added sync-time persistence for player utility pickup, usage, and drop counters so future team analysis can compare carried utility against used utility.
  • -Fixed throwable usage parsing so smokes, frags, stuns, molotovs, and blue-zone grenades are counted from PUBG's throwable telemetry events.
  • -Added sampled player route storage from PUBG position telemetry so future analysis can inspect rotations and pathing without needing old PUBG telemetry assets.
  • -Expanded stored player telemetry with participant summary damage, damage taken, heals, boosts, revives, movement distance, vehicle destroys, per-type utility drops, and pickup source breakdowns.
  • -Kept the new telemetry summaries separate from core scoring stats so existing standings and player ratings remain unchanged.

Team HQ Analysis V1

  • -Added a private Team HQ Analysis page with scope filters for last 5, last 10, season, tournament, all synced matches, and map.
  • -Added scoped team summary cards, player contribution tables, utility usage summaries, rotation availability, and last 5 vs prior 5 improvement signals.
  • -Added telemetry coverage indicators so teams can see which selected matches support deeper utility and route analysis.
  • -Expanded the analysis page with a V2 coaching board, map performance splits, player utility efficiency, and match-by-match drilldown tables.
  • -Added private player drilldown pages from Team HQ Analysis with scoped player summaries, weapon damage distribution, utility usage, match history, and review links.

Project Support

  • -Added a public Support the Project page with a configurable PayPal donation link.
  • -Added subtle support entry points from the footer, account page, Team HQ locked state, and public Team HQ header button.
  • -Clarified that monthly project supporters can receive manually enabled Team HQ access with private analysis and map planning tools.
  • -Kept donations separate from premium access; Team HQ access remains manually reviewed and enabled.

07/05/2026

Tournament Drop Locations

  • -Added tournament-scoped drop location boards so registered teams can place one team-logo drop per map.
  • -Added a dedicated Drop Locations tournament tab with map selection, public viewing, and normalized map coordinates.
  • -Added admin and captain-only editing foundations for placing, moving, and clearing team drops.

Production Overlays

  • -Added a production access role so trusted stream operators can use broadcast tools without full admin permissions.
  • -Added a production overlay control panel for generating revocable tournament-specific OBS browser-source URLs.
  • -Added the first leaderboard overlay with team logos, ranks, kills, and points for live stream scoreboards.
  • -Added match result, MVP card, championship race, and drop location overlays for stream production.

01/05/2026

Admin Email Notifications

  • -Added email alerts for new player claims so admins can approve linked player requests faster.
  • -Player claim notifications are sent to signed-up users marked as admins, keeping recipients configurable from the admin user list.
  • -Kept provider credentials in environment variables and made notification failures non-blocking for users submitting claims.

30/04/2026

Tactical Public UI Refresh

  • -Updated the public site with a dark tactical analytics visual system for the main public pages.
  • -Restored the top navigation layout with cleaner icon-supported links and removed boxed navigation styling.
  • -Updated the IPL logo area with an Icelandic flag mark and tightened the header layout for desktop use.

Season and Championship Layout

  • -Reorganized the homepage so player performance highlights sit above the league and championship standings previews.
  • -Rebuilt the season page into a clearer two-column layout with tournaments on the left and switchable standings on the right.
  • -Split season tournaments into Upcoming and Past sections and removed the per-team tournament breakdown from the season page.

Tournament Browsing and Dates

  • -Updated the tournaments page to show Upcoming tournaments before Past tournaments.
  • -Standardized displayed dates across the app to DD/MM/YYYY and shortened displayed times to HH:MM.

Team Logos

  • -Moved imported team logos into the web app public assets and added reusable team logo rendering.
  • -Added team logos to public standings, season and championship tables, team pages, and match scoreboards where a matching logo is available.

Account Navigation

  • -Updated the signed-in username link to open the private player dashboard directly when the account has an approved linked player.

League Completion State

  • -Updated the homepage to show a League Winner state with team logo and final league stats when the primary league standings group is complete.
  • -Changed the league standings preview to Final League Standings with completed qualification messaging once all league tournaments are finished.
  • -Made the Current Season and Latest Tournament homepage cards clickable so users can jump directly into the relevant detail pages.

Admin Dashboard Refresh

  • -Updated the admin area to use the same dark tactical styling system as the public site.
  • -Replaced the admin landing page with an operations dashboard for pending player claims, active tournaments, sync queue status, and recent tournament activity.
  • -Added capture session health indicators that infer worker and polling activity from active capture state and latest poll timestamps.

29/04/2026

Championship View

  • -Added a season-level Championship page for combining scoring across tournaments in a Championship standings group.
  • -Added Championship directly to the public navigation and homepage so title standings are visible without drilling into Seasons.
  • -Added combined championship team standings, tournament breakdowns, player leaderboards, and player highlight cards.
  • -Added pre-game Championship standings that list rostered teams with zeroed stats before games start.
  • -Added Games columns to League and Championship standings previews and clarified the latest tournament header.
  • -Updated tournament type labels so Finals-type events are presented as Championship in the admin and public UI.

28/04/2026

Account Signup and Player Claims

  • -Added public signup using email and password, with usernames generated internally so users do not need to invent a separate site handle.
  • -Added player profile claiming from the account page with admin approval before an account is linked to a PUBG player.
  • -Added account identity foundations for linked players, current team memberships, and future premium entitlements.

Admin User Access

  • -Added signed-in AppUser admin access so admins can use their own app login instead of sharing one Basic Auth credential.
  • -Added an admin user management page for promoting or demoting admins and unlinking users from player profiles.
  • -Kept legacy Basic Auth available as an emergency fallback through the direct admin fallback route.

Private Player Dashboard

  • -Added a private `/account/player` dashboard for approved linked players with summary stats, recent matches, MVP counts, and deterministic insights.
  • -Added IPL rating, kills, and damage trend charts based on synced PlayerMatchStats.
  • -Added low-data and unlinked-player states so accounts without an approved player claim get a clear next step instead of an error.

Chart Improvements

  • -Replaced the custom SVG trend chart with Recharts for cleaner axes, hover tooltips, gradient fills, and responsive rendering.
  • -Updated Team HQ trend charts and private player dashboard charts to use the improved shared chart component.

27/04/2026

Tournament Capture Sessions

  • -Added explicit start and stop capture sessions so live match detection now runs separately from the tournament ACTIVE status.
  • -Switched automatic capture to a watermark-based recent-match flow and added fast watch for the next open game slot after a game finishes.
  • -Automatic assignment now kicks sync immediately and background retries continue through the worker loop without requiring an open browser.

Admin Match Ops Cleanup

  • -Simplified capture setup down to the source account, source label, shard, and normal background poll interval.
  • -Moved manual finder-only time filters into an advanced manual finder section instead of mixing them into the main capture controls.
  • -Set the manual match finder to default to the latest 6 source matches and reframed bulk assignment as Auto-fill open games with a clearer advanced lookback control.

16/04/2026

Season Standings Groups

  • -Added standings groups under a season so league play, championships, and scrims can live under the same umbrella season without sharing one points table.
  • -Added support for tournaments that do not count toward any standings group.
  • -Updated season standings, season rankings, and homepage summaries to resolve through the selected or primary standings group.

Public Team Drilldowns

  • -Extended the public team page with scoped player statistics for tournament, season, and standings-group views.
  • -Added tournament-scoped team links from tournament standings, match scoreboards, and player leaderboards.

Expanded Player Damage Stats

  • -Expanded synced player damage tracking to include SR, SMG, Utility, Shotgun, LMG, Pistol, and Other damage.
  • -Added ADR, kill participation, and knock conversion metrics to tournament and team-scope player tables.

Admin and Stability

  • -Added a public What's New page in the main navigation for release notes grouped by ship date.
  • -Improved season creation so admins land directly on the new season and can create tournaments inside it immediately.
  • -Protected historical synced matches so failed re-sync attempts preserve existing stats when PUBG no longer serves the old match ID.

12/04/2026

Tournament Operations

  • -Improved tournament roster registration so saved tournament rosters are reflected correctly after registration.
  • -Added inline player creation during tournament registration so late roster additions no longer require leaving the tournament admin flow.
  • -Kept admins in register mode after registering a team, making it faster to move through multiple teams in one session.

Map Prep Marker v2

  • -Added marker types for DROP, ROTATION, and DANGER.
  • -Added drag-to-reposition marker editing with persisted normalized coordinates.
  • -Added marker delete and marker type update controls inside Team HQ Map Prep.

Weapon Damage Breakdowns

  • -Added AR damage and DMR damage to synced player match stats.
  • -Added AR dmg and DMR dmg columns to the public tournament player leaderboard.
  • -Added the same weapon damage breakdowns to the Team HQ tournament player scoreboard.

Stability

  • -Resolved Team HQ build and lint blockers that were preventing deployment.

27/03/2026

Team HQ Foundation

  • -Added private Team HQ access with team-linked login, session handling, and team-based access guards.
  • -Added the Team HQ overview, tournament review, and match review foundations.
  • -Added map assets and match zone review support for synced matches.

Team HQ Notes

  • -Added private Team HQ notes with multi-scope support for general team notes and match notes.
  • -Added note create, edit, delete, and listing flows inside Team HQ.

Performance Trends

  • -Added a Team HQ trends page with KPI cards, IPL rating trend, placement trend, and kills trend charts.
  • -Added recent form, consistency, and strongest or weakest performance summaries based on synced match history.

Map Prep v1

  • -Added a Team HQ Map Prep workspace with map selection, map-scoped notes, and recent map context.
  • -Added persistent team-private map markers using normalized 0..1 coordinates for future tactical tooling.

23/03/2026

Manual Season Results

  • -Added manual chicken dinner support through team-level game win entry in manual tournament results.
  • -Updated season standings to combine synced game wins with manual game wins.
  • -Fixed manual-results defaults and stale draft-state issues in the admin form.

Manual Player Results

  • -Added manual player tournament results for historical/manual tournaments.
  • -Added kills-only manual player entry and derived season matches, wins, and average placement from team context.

Rankings

  • -Added tournament player leaderboard sorting across core stat columns.
  • -Added sortable public `/rankings` with IPL Rating as the default sort.

Operations Visibility

  • -Added a last source-account check timestamp to the tournament match finder.
  • -Added initial release notes tracking in the repository.

22/03/2026

Match Finder Improvements

  • -Updated the tournament match finder to show the latest raw source-account matches directly.
  • -Added clearer assigned and blacklisted match status in the finder UI.
  • -Hardened roster selection submission so saved tournament rosters reflect the actual include or exclude selection state.

Tournament Player Leaderboard

  • -Added clickable sorting to the tournament player leaderboard for player, team, IPL rating, combat stats, damage, and survival columns.

20/03/2026

Public Tournament Views

  • -Improved the homepage tournament and season overviews with expanded stats and cleaner presentation.
  • -Split the tournaments route into active, latest, and upcoming sections with visible dates.
  • -Added public upcoming-tournament roster views so registered teams and players are visible before matches begin.