What the site does

A catalogue of the Euro League site's feature areas, each with an honest status and a link to the detail.

2026-11-07

This page is the catalogue of what the Euro League site can do today, area by area, with an honest status and a link to the detail. It describes what this repository ships: the content, video and basketball domains and the integrations around them. For how the site is built, see How this site is built.

For every page and the address it lives at, see the Site map.

How to read the statuses

A capability is Available when it is built, tested and shipping in this repository. It is In development when code exists but is not yet switched on or finished. It is Planned when the design or content model anticipates it but the code is not yet in place, and Not built when only a configuration slot exists. We keep these distinctions honest — a Planned row means "not yet", not "coming soon".

Several integrations are switched on by environment: the code ships, and it comes on in an environment when that environment's key or address is set (see Integrations). The whole basketball domain can also be switched off in an environment with BASKETBALL_ROUTES=false — staging runs that way until basketball is switched on there.

Capability areas at a glance

Area What it delivers Status Detail
Content & publishing Articles, home pages, content pages, news listings with season, format and team filters, rich editorial blocks Available Content types & pages
Editorial workflow Authoring in Contentful → publish → automatic refresh of the affected pages, including the Cloudflare edge Available Editorial workflow
Competition sections One site for EuroLeague, EuroCup, NextGen and Corporate: per-competition home, news, video and data pages, a competition switcher, competition themes Available Competition sections
Basketball data pages Teams, players, coaches, games, standings and stats per competition, from the Competition Engine Available (coaches lists temporary) Sport
Game Centre & live scores One page per game, before, during and after it, with live updates; live scores on the schedule and the home page Available Sport
Header widgets Standings, leaders, live games and game facts in the home hero and article headers Available Sport
Video Video landing, competition video homes, detail, category pages, collections and playlists; Mux, Brightcove and YouTube playback Available (anonymous) The video section
Gated / authenticated video Membership-tier video behind sign-in (sign-in exists; video entitlements do not) Planned (v2) The video section
Live streaming (ELTV) EuroLeague TV: the Game Centre links out to it; an embedded player is built but not mounted In development The video section
Clips (WSC Sports) Stories / Moments clip rows in editorial blocks and on team and player pages Available (switched on by environment) Integrations
Add to calendar (ECAL) Fans subscribe to a competition's or a team's schedule from the Games page Available (switched on by environment) Sport
Sign-in (EuroLeague ID) Cortex single sign-on in the site header Available (switched on by environment) Integrations
Code of Conduct report The In-Arena Code of Conduct incident report at /en/code-of-conduct, for signed-in fans In development (email delivery not set up) @v4/code-of-conduct
Analytics & consent Google Tag Manager, OneTrust cookie consent with Consent Mode v2, the tracking plan's events Available (switched on by environment) @v4/analytics
Motion Entrances, live-score and table motion to ELB's motion spec, with reduced motion respected Available (spec in pilot) Sport · Motion
Internationalisation Locale-prefixed addresses, translatable UI copy; the site runs one locale, en-US Available Internationalisation
Right-to-left (RTL) Full RTL language support Planned (foundations in place) Internationalisation
Integrations Contentful, Stadion video platform, Competition Engine, WSC, ECAL, ELTV, GTM/OneTrust, Cortex SSO, Scoreplay, Figma Available (most switched on by environment) Integrations
Performance & scale Static shells with cached data, targeted invalidation, edge caching and purge, shared Redis cache Available Performance & scale
Site search Free-text search across the site Not built (a configuration slot only) Integrations
Gamification Polls, quizzes and interactive fan engagement Not built —

How to read "does feature X exist?"

  • Retail / shop, hospitality packages, in-app content, ad slots, gamification — none of these is part of this site. packages/model/domains.json still names them (it is shared with the template), but no content type, component or route of theirs is here.
  • Search, ads, error monitoring and a realtime provider exist only as slots in the configuration schema (Algolia, Google Publisher Tag, Sentry, Ably, Pulselive). Nothing in the site reads them, so setting them would switch nothing on. They are Not built.
  • Live game data is real — it comes from the Competition Engine, which the site polls while a game can be live. See Sport.
  • A "bolt-on" is a domain composed on top of the always-present content: here video and basketball (Euro League's own; the template has no basketball). See Domains & bolt-ons for how composition works.

The building blocks underneath

Every capability above is built from a shared foundation, documented for developers:

Foundation What it is Detail
Design system Typed, themeable UI components rebuilt from Ghost 2.0 and ELB's own Figma files Component system · UI catalogue
Content model The Contentful content types, defined as code Content model
Theming ELB's colours, fonts and competition themes from one token package (tokens-euro-league) Theme the site · @v4/tokens-euro-league
Composition The site's domains, wired from one config file; template code taken in as pull requests Domains & bolt-ons · Take template updates