Available now
What PLAYGRND can do
One place for matches, stats, profiles, competition operations, and safe AI. This list comes directly from features actually shipped in the changelog.
Complete Liga Bez Briga archive
Liga Bez Briga joined PLAYGRND with all 612 Best Play matches in complete 1:1 source parity: 270 cageball matches in the 3v3 format and 342 futsal matches in the 4+1 format. Leagues, seasons, teams, players, results, and source identifiers remain connected in one permanent public record.
Readable connected identities
Best Play identities are connected to existing profiles only when the sources confirm the same person, while contradictory records remain separate. All external IDs are preserved, and player profiles plus team-season pages use readable name-based URLs instead of technical identifiers.
Competition and venue management
An organization manager can now add a league with its format, venue, and default court, add venues and courts, and edit or remove existing courts from the same administration area. League order is adjusted directly beside each row, while competition rank separates first and second divisions without manual priority numbers.
Superadmin organization directory
The superadmin gained a dedicated directory for every organization, with direct access to edit any organization, league, or venue. Global organization order remains a superadmin decision, while league order inside each organization follows its manager’s selection.
Unified team-season profiles
League and tournament seasons for a team now share the same profile system, readable paths, and clearer hierarchy. A league shows position, matches, and points, while a cup immediately shows its achieved stage and trophies distinguish winners, finalists, and semifinalists.
Format-aware competition browsing
Competitions, matches, and profiles now consistently show formats such as 3v3, 4+1, or 5+1 with a fallback logo when an image is missing. The ALL filter reliably restores the complete directory, while the home overview groups formats and links directly to the selected competition.
Larger player photo viewer
Selecting a player profile photo now opens a larger version in a focused desktop and mobile modal without leaving the profile.
Private match-sheet templates
Organizations can securely keep their own private match-sheet template in the PLAYGRND asset system. Authorized administrators can view and download it from organization administration, while the document remains private.
Team form in league standings now clearly separates wins, draws, and losses without using…
Team form in league standings now clearly separates wins, draws, and losses without using green for a result that is not a win. Liga Firmi rules also correctly state that the clock stops.
Features and community ideas
PLAYGRND now highlights a catalog of every shipped feature, generated directly from the changelog, plus a public community ideas ranking. Every completed profile can publish an idea with an initial vote and cast at most one private vote per suggestion, while the author, aggregate vote count, and status remain public.
Match sharing
Every match can now be shared on WhatsApp or as a PLAYGRND Instagram Story. The Story PNG is generated on demand from the current result, scorers, venue, and logos, includes a QR link to the match, and offers native share, download, and copy-link fallbacks. WhatsApp and other link previews use a separate current OpenGraph card.
FC Greben is shown under its former name Boje i Lakovi in the first 2019/2020 Teški Amate…
FC Greben is shown under its former name Boje i Lakovi in the first 2019/2020 Teški Amaterizam season, which it won. Its Serie A seasons remain FC Greben, while CB Arka is a separate team.
Organization profiles and stats
Organization profiles gained separate tabs for competitions, statistics, locations, and information, with figures calculated only from their own leagues and tournaments. The global Stats page now presents activity, competition archive, community, and match rhythm.
Claims and verified identity
Profile claims and verified identity are now separate. Existing approved claims remain verified, new users request a separate check, and the superadmin records the decision and method in a dedicated identity queue. Identity documents are not uploaded or stored in this version.
Trusted Sun City record
The League Republic API became the primary Sun City source. All 9 available endpoints were archived, and 33 league seasons were reconciled for teams, appearances, goals, cards, standings, and results.
Cup and supercup archive
Cups and supercups are now first-class tournaments: 9 editions are grouped under 4 stable tournaments with a season dropdown, 372 matches, brackets, scorers, trophies, and honors. Historical team names and logos remain tied to the correct edition.
Trophies and official honors
Trophy cabinets now include official Sun City honors: 28 best players, 33 best goalkeepers, and 35 top scorers, including tied winners. The 2019/2020 records are marked as an unreliable reconstruction and do not alter match statistics.
AI Chat on three channels
PLAYGRND AI now works on web, WhatsApp, and Telegram: it finds players from a name alone, builds an ideal six from a team’s latest season, ranks known goalkeepers and honored players, and safely compares seasons, competitions, and teams. It understands typos, while every tool uses a bounded JSON plan, fixed read-only query, permission checks, and cost controls.
AI history and sharing
Signed-in users can reopen their saved web and messaging answers from the AI page. Repeated identical questions are grouped with a repeat count, and a saved result can immediately start a new question or be shared on WhatsApp.
Secure QR sign-in
A profile can generate a one-time QR code for secure sign-in on another device. The superadmin WhatsApp inbox reconstructs new conversations, tracks delivery status, and supports manual replies inside Meta’s 24-hour window.
AI match-sheet processing
AI match-sheet processing can identify a match and prepare a result from a photo, while an authorized organizer explicitly confirms the final score after review. Every change includes conflict checks and an audit trail.
All-competition directory
Leagues and tournaments now share the competition directory, filters, search, match cards, and season selectors; profile histories and trophies are clearly separated by competition type.
The competition directory and organization profiles now show leagues and tournaments with…
The competition directory and organization profiles now show leagues and tournaments with the newest played season or edition first, while obsolete competitions move to the bottom.
Competition rules
Leagues and tournaments gained a final Rules tab with player format, referees, ball, match duration and clock mode, plus tracking for appearances, goals, goalkeepers, and goal minutes. League promotions and relegations appear only when officially entered.
League pages gained an all-time team title ranking and separate season awards for the bes…
League pages gained an all-time team title ranking and separate season awards for the best player, best goalkeeper, and top scorer. Historical award teams are reconnected to their profile and logo.
Rich match cards
Match cards now present final scores, shootouts, regular-time scores, winners, finals, and administrative results more clearly, with team logos and competition links.
Team and player match histories gained filters and progressive loading of older matches w…
Team and player match histories gained filters and progressive loading of older matches without loading the entire archive up front.
Player stats by competition
Player profiles group appearances and goals by competition and then by season, with a clear separation between league and tournament records.
Organizations, competitions, teams, and players can carry a city, with competitions inher…
Organizations, competitions, teams, and players can carry a city, with competitions inheriting the organization location. Public profiles and entities show management roles compactly without confusing a public role with PLAYGRND admin permissions.
Known goalkeepers now carry a GK label in match lineups, while AI match sheets and admini…
Known goalkeepers now carry a GK label in match lineups, while AI match sheets and administration are visible only to users with the required competition permissions.
Recent activity now follows match kickoff and event minute, so historical backfills no lo…
Recent activity now follows match kickoff and event minute, so historical backfills no longer appear as new activity.
A profile view is counted on a real visit to the player, while switching between Competit…
A profile view is counted on a real visit to the player, while switching between Competitions, Matches, and Trophies no longer increases the count.
When the AI provider or available budget is unavailable, web and WhatsApp return a clear…
When the AI provider or available budget is unavailable, web and WhatsApp return a clear user-facing message without disrupting the rest of the app.
Historical cups are protected from routine sync overwrites, while unreliable league round…
Historical cups are protected from routine sync overwrites, while unreliable league round numbers stay hidden until each league season passes validation.
Public profiles, player rankings, league and tournament pages, and the competition direct…
Public profiles, player rankings, league and tournament pages, and the competition directory gained a more compact desktop and mobile experience with correct Croatian count forms.
League Republic’s England subdivision flag is now read and displayed correctly as England…
League Republic’s England subdivision flag is now read and displayed correctly as England, with the parser also fixed for standard player country flags.
Global AI questions with an excluded nationality, such as players who are not Croatian ac…
Global AI questions with an excluded nationality, such as players who are not Croatian across all competitions, are now supported without requiring a league or team.
New desktop and mobile navigation shell, redesigned home, and clearer public profiles.
New desktop and mobile navigation shell, redesigned home, and clearer public profiles.
Scoped organization, league, venue, court, and team editing with R2 images and audit.
Scoped organization, league, venue, court, and team editing with R2 images and audit.
Player view counts, Redis aggregation, and Most viewed ranking.
Player view counts, Redis aggregation, and Most viewed ranking.
First WhatsApp AI match-sheet pilot and public PLAYGRND pitch for organizers and investors.
First WhatsApp AI match-sheet pilot and public PLAYGRND pitch for organizers and investors.
WhatsApp passwordless login, profile completion, and existing-player claims.
WhatsApp passwordless login, profile completion, and existing-player claims.
Superadmin and scoped roles, claim queue, session management, and audit log.
Superadmin and scoped roles, claim queue, session management, and audit log.
Fast async WhatsApp webhook with Redis deduplication and no raw hot-path storage.
Fast async WhatsApp webhook with Redis deduplication and no raw hot-path storage.
Profile hub and foundations of the private organizer console.
Profile hub and foundations of the private organizer console.
Hetzner becomes the stable production origin while HP remains the local worker and contro…
Hetzner becomes the stable production origin while HP remains the local worker and control plane.
Scrape and ingest flow is separated from production with verifiable archives and a privat…
Scrape and ingest flow is separated from production with verifiable archives and a private Go API.
Deploy, Redis, health, and operational guardrails were hardened.
Deploy, Redis, health, and operational guardrails were hardened.
Initial Hetzner release model established with separate API and web versions.
Initial Hetzner release model established with separate API and web versions.
Systemd, Caddy, PostgreSQL, Redis, and GitHub Actions form a reproducible production path.
Systemd, Caddy, PostgreSQL, Redis, and GitHub Actions form a reproducible production path.
Unified SSR search across players, teams, leagues, and venues.
Unified SSR search across players, teams, leagues, and venues.
Team tabs and team pages within a concrete league season.
Team tabs and team pages within a concrete league season.
Matches, venues, players, identities, and historical seasons gain public SSR pages.
Matches, venues, players, identities, and historical seasons gain public SSR pages.
Offline-first ingest, parity checks, stable users, and safe duplicate merging.
Offline-first ingest, parity checks, stable users, and safe duplicate merging.
Player statistics and team logos aligned with source data.
Player statistics and team logos aligned with source data.
Separate dev/prod environments, R2 buckets, and safer deploy/sync flow.
Separate dev/prod environments, R2 buckets, and safer deploy/sync flow.
Season URLs, standings, scorers, and controlled data refresh.
Season URLs, standings, scorers, and controlled data refresh.
Idempotent Sun City ingest, deterministic JSON, and historical capture tooling.
Idempotent Sun City ingest, deterministic JSON, and historical capture tooling.
macOS blue/green local setup, sockets, Redis, and backup automation.
macOS blue/green local setup, sockets, Redis, and backup automation.
Organizations, leagues, teams, venues, courts, cups, and matches gain a stable model.
Organizations, leagues, teams, venues, courts, cups, and matches gain a stable model.
R2 assets, presigned uploads, backups, CLI, and first public listing pages.
R2 assets, presigned uploads, backups, CLI, and first public listing pages.
Repository, Go API, health, observability, and first deploy lifecycle.
Repository, Go API, health, observability, and first deploy lifecycle.