Looking back, written a few days after the final in Frankfurt.
Bundesliga Hackathon: three days, 71 commits, one of the winning teams
Building a chatbot app for the Bundesliga with Hasso's Kickers at the first Bundesliga Hackathon by DFL, AWS and EintrachtTech.
On Friday the final took place at the EintrachtLab in Frankfurt’s Deutsche Bank Park. Hasso’s Kickers, that’s Sebastian, Robert and me, is one of six winning teams of the first Bundesliga Hackathon. The prize isn’t money. It’s a trip to an Eintracht Frankfurt home game.
Some context. The German Football League (DFL), AWS and EintrachtTech ran this for the first time. More than 330 people joined the virtual kick-off on February 24, 42 teams registered, 15 made the final. There were five challenges. We took the chatbot one: UX and UI for an AI chat inside the Bundesliga app.
I picked the challenge and set up both repos. Stack decision: Expo and React Native with expo-router, so one codebase runs on web, iOS and Android. A web prototype ran on the side from late February. The real build was March 18 to 20, 71 commits in three days.
What ended up in the app: tabs for matches, videos, the table and stats, plus the AI chat against an AWS backend, answers with markdown and media, a 20-question quiz mode that reads the questions out loud, and a bar with suggested prompts. My part besides the setup was the share service, which picks the Web Share API, the clipboard or the native share sheet depending on the platform, the bot message UI with icons and a loading animation, and merging everyone’s branches. Backend and chat logic came from the other two.
On the side I tried a German offline speech model for voice input and some gesture tracking. Neither made it into the product.
The demo on this page shows how the app works. It runs on sample data and the AWS backend is switched off, so the chat answers are samples. Tab bar at the bottom, and in the AI chat tab a bar with suggestions for common questions. A question goes through the AWS API Gateway to the chat backend, the answer comes back as a chat bubble with markdown and media, and the loading animation runs while the backend works. In quiz mode the app reads every question out loud. And if you want to share an answer, you get the right share menu for your device, with the clipboard as a fallback on desktop.
Experiment · nie in der finalen App · keine echte Aufnahme
0:00
Bundesliga
Vorschau · BeispieldatenLIVE 67'9. Spieltag
1:0
K. Osei 41'
News
Vorbericht
Topspiel am Samstagabend: Rheinhafen empfängt Bergwald
Tabelle
Talstadt baut die Tabellenführung aus
Statistik
Elf Tore in neun Spielen: Brandner trifft und trifft
Sonntag
Im Hackathon-Build war dieser Tab ein Platzhalter. Vorschau mit erfundenen Daten.
Spiele
Vorschau · BeispieldatenFreitag, 07.11.
Samstag, 08.11.
Sonntag, 09.11.
Im Hackathon-Build war dieser Tab ein Platzhalter. Vorschau mit erfundenen Daten.
Videos
Vorschau · BeispieldatenHighlights · vor 18 Std.
Highlights: Borussia Talstadt – SC Altmark
Tore · vor 20 Std.
Alle Tore des 9. Spieltags
Analyse · vor 1 Tag
Taktik-Analyse: Pressing im Mittelfeld
Clip · vor 2 Tagen
Parade der Woche
Im Hackathon-Build war dieser Tab ein Platzhalter. Vorschau mit erfundenen Daten. Keine echten Videos.
Tabelle
Vorschau · Beispieldaten| # | Verein | Sp | Diff | Pkt |
|---|---|---|---|---|
| 1 | Borussia Talstadt | 9 | +15 | 22 |
| 2 | FC Rheinhafen | 9 | +11 | 20 |
| 3 | Eintracht Lindenau | 9 | +7 | 19 |
| 4 | SV Nordheide | 9 | +4 | 17 |
| 5 | VfL Seeburg | 9 | +3 | 15 |
| 6 | 1. FC Bergwald | 9 | +2 | 14 |
| 7 | Union Ostkreuz | 9 | -1 | 13 |
| 8 | SC Altmark | 9 | 0 | 12 |
| 9 | TSV Mühlbach | 9 | -2 | 11 |
| 10 | FSV Weserland | 9 | -4 | 11 |
| 11 | Fortuna Hochfeld | 9 | -4 | 10 |
| 12 | SG Elbtal | 9 | -3 | 10 |
| 13 | Arminia Kieselbach | 9 | -5 | 9 |
| 14 | VfB Sonnenberg | 9 | -5 | 9 |
| 15 | Viktoria Auenland | 9 | -8 | 8 |
| 16 | Kickers Steinfurt | 9 | -7 | 7 |
| 17 | Hertha Moorbach | 9 | -10 | 6 |
| 18 | Rot-Weiß Felsheim | 9 | -13 | 5 |
Champions League Europa League Abstieg
Im Hackathon-Build war dieser Tab ein Platzhalter. Vorschau mit erfundenen Daten.
Statistiken
Vorschau · BeispieldatenTorjäger
Live: FC Rheinhafen – 1. FC Bergwald
58%Ballbesitz42%
11Torschüsse6
5Ecken2
79,4 kmLaufleistung77,8 km
Vorlagen
Im Hackathon-Build war dieser Tab ein Platzhalter. Vorschau mit erfundenen Daten.
Tools and skills: Expo and React Native with expo-router, TypeScript, one codebase for web, iOS and Android, AWS API Gateway as the interface to the chat backend, the Web Share API with fallbacks, text-to-speech, and Git with three people under time pressure.
The main thing I’m taking away: three people can build something you can actually show in three days if it’s clear early who does what, and what stays out.