I just open-sourced a macOS desktop widget for the FIFA World Cup 2026. Here's what it does and how it's built.
What it does
🔴 Live scores — updated every 3 seconds via the ESPN public API (no API key needed)
📅 Full schedule — all 104 games grouped by day, with venues and round labels
📻 20+ radio streams — ARD, ZDF, BBC, NPR and more, played via mpv
🗣 German TTS commentary — macOS say announces goals, kick-offs and final whistles
📊 Play-by-play — ESPN event feed with goal / card / substitution highlights
📺 Live ticker panel — slide-out side panel with real-time scores for all live games
⏳ Countdown — days · hours · minutes until the tournament kicks off (June 11, 2026)
🖥 Responsive — adapts width for 1440p · 1080p · 2560p · 4K displays
Architecture
The widget has three parts:
1. wm2026.jsx — An Übersicht widget (JSX/React-like syntax). Runs a shell command every 3 seconds to fetch ESPN data and writes it to ~/.wm2026/ .
2. wm2026_server.py — A Flask backend on 127.0.0.1:9876 .…