rgb-b
← back home

live-scores

node   express   react   vite   in progress

The least annoying way to check the score. One page for golf majors and European football tables — no ads, no login, no cookie banner, no betting odds shoved in your face. Just the score.

how it works

This is the sibling to bracket, the World Cup/Wimbledon/AFL knockout display I'd already built. Bracket is very good at one shape of tournament: two sides, one winner, round after round. But a golf leaderboard or a football league table isn't a bracket at all — it's a ranked list that reshuffles all day, with a completely different sense of what "currently happening" even means. Rather than bend bracket's tree layout into something it was never built for, it made more sense to build a proper sibling site that starts from the leaderboard shape instead, while keeping the same house rules: no accounts, no tracking, nothing saved anywhere except your own browser.

Under the hood it reuses the same trick as bracket: each sport gets its own small translator that turns whatever odd shape that sport's live-data source hands back into one common format the rest of the site understands. Currently wired up: the four golf majors (the Open, the Masters, the PGA Championship, the US Open) and five European leagues (Premier League, La Liga, Serie A, Bundesliga, Ligue 1) — plus, through the same feed bracket already has, whatever knockout tournament bracket is currently tracking.

built with

Same stack as bracket: a small always-on Node/Express server holds a short-lived cache of the latest scores so the page stays fast, and a React front end renders it. It's finished and running in production mode already — the only thing left is wiring it up as a proper always-on service with its own address, the same way bracket is, rather than something I have to start by hand.

source → — not live yet, hang tight