Honesty over the illusion of live data
The free match-data tier has no minute-by-minute scores. Instead of faking it, the app tells users exactly where official answers live — and uses web search to get as close to real time as it honestly can.
An AI-powered World Cup companion for first-time fans — six Granite-powered features that explain the match, the rules, the referee, and the matchday experience, without ever making a newcomer feel like they should already know.
IBM Granite / watsonx.ai · Hybrid AI Pipeline · Live Match Data · Responsible AI · Live Product
01′Kick-off
The demo walks through the full experience — setting your context, generating a match guide, asking what just happened, and building a matchday checklist.
Want to dig into the details? The full source is on GitHub.
09′The Fan
The 2026 World Cup comes to North America for the first time — 48 teams, 3 host countries, and enormous audiences of casual viewers who will watch because their country is hosting or their friends are watching. They are not soccer fans. Yet.
For them, the barrier is real: offside and VAR feel impossible to follow in real time, referee decisions cause frustration, and asking "wait, why was that not a goal?" out loud feels embarrassing. Every design decision started from that emotional reality.
23′Match Plan
Built for the IBM June Challenge, this project was as much about how to work with AI tools as what to ship. I did not write it line by line — I directed three AI collaborators through distinct stages while owning every product decision.
Explored the problem space, identified first-time-fan pain points, and pressure-tested feature concepts before any code existed.
IBM's coding assistant wrote the site architecture, front-end structure, UI, feature logic, and the initial API integration framework.
Reviewed the codebase, fixed bugs, connected the live APIs, refined the UX, and performed a security audit before deployment.
My constant role across all three stages: product owner and quality gate — defining what mattered, rejecting what drifted, and deciding when "working" was actually "right".
45′Half-time Analysis
A single LLM answering live-match questions has a fatal flaw: it will confidently invent scores and events. Kickoff Buddy splits the job in two, the way a broadcast does — a scout gathers verified facts, and a commentator explains them.
Plus their context: knowledge level, selected match, venue — and confirmed events from football-data.org injected as ground truth.
GPT-4o with live web search gathers verified, current 2026-tournament facts with sources — form, what just happened, the live state.
IBM Granite writes the final beginner-friendly answer, grounded in the verified facts it is given. Granite is the single on-screen voice for all six features.
Plain English, no jargon, honest about anything that cannot be confirmed.
Graceful fallback: if the fact-checker is unavailable, Granite still answers from confirmed football-data.org events and its own knowledge — the feature degrades, it never dies.
Honesty rule: every prompt instructs the AI to say so plainly when something cannot be confirmed — never to fabricate live scores or official rulings.
57′Key Decisions
The free match-data tier has no minute-by-minute scores. Instead of faking it, the app tells users exactly where official answers live — and uses web search to get as close to real time as it honestly can.
Early single-model tests produced confident hallucinations about live matches. Splitting fact-gathering from explanation fixed accuracy without sacrificing Granite's warm, consistent voice.
Offside became a draggable pitch diagram with a play-the-pass animation; momentum became a tap-to-stack control meter with a live tactical board. Rules stick when you can move the players yourself.
When watsonx's free-tier rate limit hits, users see "Buddy is catching up" with an automatic retry — a deliberate voice choice that keeps an infrastructure hiccup from feeling like a broken product.
Hardest debugging moment: intermittent 429 errors looked like an app bug but were IBM watsonx's per-minute concurrency limit. Diagnosing it meant isolating the layer — app, proxy, or provider — and led to the retry logic and the de-throttled local dev proxy.
74′Defensive Play
A deployed app with paid AI endpoints is an abuse target. Claude Code's security audit and my review hardened the public surface before launch:
/api/*; nothing sensitive ever ships to the browser or the public repo.83′Squad Notes
This project is my clearest statement of how I like to build with AI: three specialized tools, each doing what it does best, with me as the constant product owner.
90′Full Time
Kickoff Buddy shipped as a deployed, rate-limited, security-hardened product before the IBM June Challenge deadline — live during the actual World Cup it was designed for, answering real questions from real first-time fans.
What makes it meaningful to me: it treats a newcomer's confusion as a design problem, not a knowledge problem. The AI never says "as everyone knows" — it says "great question, here's what happened." That single stance shaped the pipeline, the prompts, the failure states, and the tone.