My Football
A fully static football tracker for favourite European teams — fixtures, results, standings, and top scorers, built with Next.js static export and football-data.org
I follow a handful of European clubs across the Premier League, Serie A, La Liga, and the Champions League, and I wanted a single quiet page with their fixtures, results, standings, and top scorers — no adverts, no app, no account.

There is no server behind it. A scheduled GitHub Actions workflow pulls data from football-data.org twice a day, commits the JSON into the repository, and redeploys the static site. The browser only ever reads those committed files, so the API token never leaves the build environment and the site costs nothing to run. Which teams to track is a one-line change in a config file.
Two small touches I use constantly: each match carries a badge showing which US streaming service holds the rights to that competition, and a My Schedule page filters the upcoming fixtures down to the services I actually subscribe to — the matches I can really watch.
The repository has the full setup, including the scheduling details that only reveal themselves in production — like GitHub quietly dropping cron jobs scheduled in the congested hour around midnight UTC.