DEV Community

Cover image for "\"You Played Like Prime Okocha\": The Open-Source AI That Gets My Football Crew Off the Couch"
bukeeastrey
bukeeastrey

Posted on

"\"You Played Like Prime Okocha\": The Open-Source AI That Gets My Football Crew Off the Couch"

Hacktoberfest: Maintainer Spotlight

 ## "Ball this weekend?" 💬 … seen by 14

Every football crew has this group chat.

Someone asks on Wednesday, "Ball this weekend?" A few thumbs up. Somebody says "I dey." Friday comes, nobody has fixed a time, half the people forgot, and the other half are waiting to see who else is coming. By Saturday afternoon we're all still indoors, scrolling, telling ourselves we'll play next week.

And when we do play, nothing is remembered. Who scored? Who carried the team? Who keeps claiming he's the best player on the pitch with zero evidence? The argument continues on WhatsApp for days and nobody can settle it.

That's my team. We love the game, but we spend too much time inside because scheduling a match is hard and there's no follow-up after it.

So I built Star Boy for them. One love. ⚽

What Star Boy does

Star Boy turns your local pitch into a little league that lives inside Telegram, the app my crew already has open.

Before the game: it gets you out of the room

  • Every pitch (ours is <!-- ADD: your pitch name -->) has its own page with everyone who plays there.
  • Tap ⚽ New game in the bot → pick the pitch, day and time with buttons → tick who to invite. Everyone gets an invite with I'm in ✅ / Can't make it ❌.
  • Star Boy sends a matchday poster you can drop on your WhatsApp Status.
  • Then it nags you, kindly: the night before ("Tomorrow: football at 5 pm. You dey come? 🔥"), two hours before, and one nudge for anyone who hasn't answered. This is the part that actually gets people out of their rooms.

After the game: it asks how it went

  • When the match ends, Star Boy messages everyone: "How was your game today? ⚽"
  • You either tap your stats (goals, assists, blocks and tackles, or saves if you were in goal, plus your Man of the Match vote) or send a voice note, the way we already talk: "We win 5–3 o, I score two and give Emeka one assist."
  • Teammates confirm or dispute your claim with one tap. No confirmation, no stats. (Yes, we built anti-cap technology. 🧢)
  • Then the best part: "You played like…" Two goals and an assist? You played like prime Jay-Jay Okocha. Six blocks? Taribo West energy. A quiet game? "Preseason form 😅. Next week na your week."

Every week: it keeps the tab

  • Leaderboards per pitch: Golden Boot, Playmaker, Most Consistent (appearances), The Wall, Most MOTM, Most Wins.
  • A player card for everyone, with form guide, streaks and the legends you've "played like".
  • ⚖️ Settle it: pick two players, and Star Boy gives a verdict based only on confirmed numbers. "Bayo wins this one: 5 goals to Tunde's 3, and 1.67 goals per game. Tunde, pass the ball." Arguments that used to run for days now end in one message.
  • Photos from the match go straight to the bot and land in the game's gallery.

That's what I mean when I say Star Boy keeps a tab on who we are on the pitch: our stats, our improvement, our bragging rights. It's a reason to come back next week.

Demo

🔗 Live: starboy-o9g6.onrender.com · 🤖 Bot: @starboy_soccerbot

We took it outside


The football game we had today 10th October was one of the best times I've had in a long time, we have a class team - "Eximia Football Academy", we have been postponing our matches but later it left the group chat and we played at De Angelo by 8am... We were like 12 players playing 4-aside. I should not be telling this story because i missed like 5 one-on-one with the keeper (in my defense - we use small football posts :). Well, I really enjoyed using "Starboy" to create fun and I hope it becomes a lifestyle for us, playing football regularly.

Why open source matters here

It costs ₦0 to run, so it can stay free for street footballers. Star Boy runs on open-weight models through free tiers: Gemma 4 for the thinking and Whisper for the listening. There's no per-message bill that would force me to charge my friends or show them ads.

No lock-in: the same app runs on my 2014 laptop. Star Boy has a single switch, AI_MODE:

  • cloud: Gemma 4 (26B) through Google AI Studio's free API and Whisper large-v3 through Groq's free tier. This is what my crew uses: fast, and the laptop can be off.
  • local: Gemma 4 E2B via Ollama + faster-whisper, running entirely on my 2014 Intel i5 laptop with 8 GB RAM and no GPU. No audio leaves the device. It's slower (30–60 s per report instead of about 5 s), but after a match, nobody needs an instant answer.

Flip one setting and the exact same app moves from a free cloud API to my own machine. That's only possible because the models are open. If a provider changes its terms tomorrow, Star Boy keeps working.

Honesty note: in cloud mode, voice notes are sent to Groq for transcription. Star Boy deletes its own copy right after. If that matters to your crew, run local mode.

Open models can learn our football. Players speak Pidgin, mix in Igbo, and say things like "I bang am twice." With open models I can tune prompts, swap models, and eventually fine-tune on how Nigerian players actually talk. A closed API would only let me hope.

How it works

Job Open-source / open-weight piece
Turning voice notes into stats Whisper (large-v3 in the cloud, faster-whisper locally) → Gemma 4
"You played like…", Settle-it verdicts, match summaries Gemma 4
Bot, reminders, game wizard Telegram Bot API + FastAPI
Leaderboards, stats, photos MongoDB Atlas (aggregation pipelines + GridFS)
Posters and player cards Pillow
Web app React + Vite, also opens inside Telegram as a Mini App

Making a small AI trustworthy for a very argumentative audience

A football crew will dispute everything, so the AI can never invent a number. The rule I built Star Boy around: code decides the facts, Gemma only tells the story.

  • Voice notes: Gemma extracts goals, assists and the result, then code checks it. Any number of 2 or more must actually appear in what you said, the score and the result must agree, and every name must match a real player from that game. If anything is unclear, Star Boy shows "I wasn't sure about…" and you fix it with one tap before submitting.
  • "You played like…": code picks the legend from your stats (Ronaldo, Yekini or Osimhen for a hat-trick; Kroos, Xavi or Mikel Obi for a playmaker; Enyeama or Buffon for a clean sheet). Gemma just writes the one-line banter, and any number it mentions is checked.
  • Settle it: code computes the comparison and picks the winner. Gemma announces and explains it. A verdict that hedges, names the wrong player, or gets a number wrong is rejected and retried.
  • Teammates confirm everything before it counts. The AI proposes, the crew decides.

What went wrong (and what I changed)

  • Free hosting moved under my feet. I planned to host Gemma and Whisper on Hugging Face Spaces, then found that free Docker Spaces now require billing. So I split the app: Star Boy itself runs on Render's free tier, and the AI moved behind a switch, either free hosted open models or my own laptop.
  • Not everyone wants to send a voice note. After testing with friends, I added "Tap my stats": five quick button questions. Voice for people who like to talk, buttons for people who don't. The AI still does the parts only it can do.
  • The website was secondary; Telegram was the point. My crew doesn't want another app. So everything (sign-up, setting up games, reporting, leaderboards, settling arguments) now works from Telegram buttons.
  • The first verdicts were too polite. Gemma called a 5-goals-vs-3 comparison "a draw." In football, that's a crime. Now code picks the winner.

What's next

  • Basketball (the data model is already sport-agnostic).
  • Crew group mode: Star Boy posting games, results and weekly leaderboards straight into the team's group chat.
  • Season awards and a "Star Boy of the Month."
  • Better Pidgin and accent handling by fine-tuning open speech models on Nigerian football talk.

How I built it

I built Star Boy over one week with Claude Code as my pair programmer. I wrote the product brief and made the calls (Telegram-first, buttons and voice, code-decides-facts, the redesign when the first version looked generic), tested it on real phones with my crew, and Claude Code wrote the code milestone by milestone.

Code

GitHub: github.com/bukeeastrey/starboy

Built with Gemma 4 (Apache 2.0), Whisper, faster-whisper, Ollama, FastAPI, React, MongoDB Atlas and the Telegram Bot API. Hero photo: pickup football in Amagunze, Nigeria, by Kenechukwu Emmanuel on Pexels.


For my football team. One love. ⚽💛dev.to/challenges/hacktoberfest-week1-2026-10-05)*
Any contributions or questions - I will love to entertain them. Thank you.

Top comments (2)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.