DEV Community

Ridwan Yoga Suryantara
Ridwan Yoga Suryantara

Posted on

Building Fuenzer Sports: An AI Tournament Prediction Side Hustle Powered by Open-Weight Models

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

Fuenzer Sports is an interactive, AI-driven sports analytics simulation platform designed as a scalable side hustle with a clear path to profitability. It bridges the gap between an intuitive search engine and a high-performance tournament management simulation.

Instead of browsing rigid spreadsheets or reading lengthy articles, users can ask natural language questions such as:

"What are Indonesia's chances of reaching the knockout stage if their star midfielder is injured?"

Our platform orchestrates open-weight LLMs with a vectorized mathematical simulation engine to dynamically adjust team strengths, execute 10,000+ Monte Carlo iterations in milliseconds, and stream real-time statistical probabilities alongside deep tactical commentary.

💼 Who Would Pay For This? (The Side Hustle Thesis)

Traditional sports analytics platforms are either closed off for enterprise sports clubs or rely on legacy static dashboards. Meanwhile, general conversational chatbots regularly hallucinate scorelines and lack real mathematical predictive engines.

Fuenzer Sports addresses two high-value paying customer segments:

  1. B2B Real-Time Odds APIs (Sportsbook & Betting Operators):
  2. Problem: Live in-game disruptions (red cards, key injuries, tactical substitutions) drastically shift tournament advancement probabilities. Recalculating futures odds manually is slow.
  3. Monetization: We license our low-latency simulation API to sportsbooks to recalibrate live advancement probabilities and adjust futures betting lines within seconds.

  4. B2C Subscriptions (Hardcore Fans, Fantasy & Esports Organizers):

  5. Problem: Fantasy managers and esports tournament creators want deep what-if modeling on custom rosters and tournament formats without managing complex spreadsheet formulas.

  6. Monetization: A monthly subscription tiers feature custom tournament generation, private league draft simulations, and personalized coaching summaries.

Demo

Experience the live interactive simulation:
Live Demo: https://sports.fuenzer.web.id

Key User Experience:

  • Prompt-to-Workspace Flow: Type any tournament scenario in plain English.
  • Animated Standings UI: Standings automatically re-order dynamically using fluid layout physics.
  • Human-in-the-Loop (HITL): If a user mentions an ambiguous or unknown player, the autonomous agent politely pauses and displays an interactive dropdown to assign the player before running the math.
  • High-Res Workspace Export: One-click snapshot generation to export long vertical standings or bracket views.

Code

The entire codebase is open-source under the Apache-2.0 License:
Link Repo: https://github.com/Yogs4R/fuenzer-sports

How I Built It

Fuenzer Sports is engineered with a decoupled, high-performance architecture:

[React 18 + Vite Frontend]
↕  REST API (JSON)
[FastAPI Server on Render] ───► [Vectorized NumPy Monte Carlo (10,000x)]
↕  Tool Calling
[Google Gemma / Serverless Fallback]
Enter fullscreen mode Exit fullscreen mode

1. Backend & AI Orchestration

  • Runtime & Framework: Built on Python 3.10 and FastAPI, deployed as a containerized web service on Render.
  • AI Agent Router: Utilizes an autonomous tool-calling architecture following standard OpenAI-compatible tool specifications. The model decides whether to route into the Monte Carlo simulation engine, request user clarification, or handle tactical Q&A.
  • Open-Weight Models: Powered by Google Gemma (Gemma 4 12B IT) for function calling and qualitative tactical match analysis, with fallback routing through serverless inference.
  • High-Speed Monte Carlo Simulation: Match outcomes are computed using dynamic Poisson distribution sampling coupled with vectorized matrix operations in NumPy, resolving complex 48-team, 12-group FIFA tiebreaker structures in under 5 milliseconds.

2. Frontend & Interaction

  • Stack: Built using React 18, Vite, TypeScript, and Tailwind CSS.
  • State & Animations: Handled via Zustand (with offline-friendly persistent storage) and Framer Motion for smooth standings layout transitions.

3. Developer Tooling & Workflow

  • GitHub Copilot: Extensively utilized Copilot for AI pair-programming, specifically when vectorizing the Poisson distribution matrix calculations in NumPy and refining the responsive Tailwind layout.
  • Automated CI/CD: Complete security and code quality pipelines powered by GitHub Actions, featuring automated Gitleaks secret detection, Trivy container vulnerability scanning, and Dependabot dependency audits.

Why Does Open Innovation Matter?

For an AI-powered side hustle, unit economics make or break the business.

If every simulation run and commentary prompt relied on closed-source, proprietary APIs (such as GPT-6, Opus 5.5, Kimi K3), our API inference costs would scale linearly with user traffic. In a scenario with thousands of simulation queries, token costs would quickly wipe out subscription margins.

By architecting around open-weight models (Google Gemma) and open-source infrastructure:

  1. Marginal Token Cost Approaching Zero: We can host open models locally or on dedicated GPU hardware, ensuring predictable hosting costs regardless of query spikes.
  2. Freedom from Vendor Lock-in: Sticking to strict open tool-calling standards allows us to swap underlying inference runtimes (from local vLLM/Ollama to serverless providers) without changing a single line of business logic.
  3. Data Privacy & Customizability: We can fine-tune team-strength modifiers and tactical prompt weights without sending proprietary sports heuristics to third-party closed providers.

Open innovation is what turns Fuenzer Sports from an expensive prototype into a commercially viable, sustainable side hustle.

My First User

To validate the platform, I shared Fuenzer Sports with a local fantasy football league admin and sports enthusiast to test hypothetical World Cup scenarios:

"Being able to just ask what happens if our key striker gets a yellow card and seeing the entire group table re-order itself with exact mathematical odds within a few seconds is incredible. This completely replaces the messy spreadsheets we usually argue over during matchdays."

Feedback from this session led directly to adding the Human-in-the-Loop team selector, ensuring that if a user spells a player's name slightly differently, the engine asks for a quick confirmation rather than failing silently.

Prize Categories

We are entering Fuenzer Sports into the following partner categories:

  • Best Use of Render: The FastAPI backend is deployed and running live as a production web service on Render, providing reliable low-latency execution and seamless container deployments.
  • Best Use of Gemma: Google Gemma acts as the core conversational agent, interpreting user scenarios, executing tool calls to the Monte Carlo engine, and generating rich post-simulation tactical commentary.
  • Best Use of GitHub Copilot: GitHub Copilot was used as the primary AI pair-programmer during development to implement complex vectorized NumPy algorithms and refine frontend state transitions.

Landing Page
Playground Group Standings
Playground Knockout Bracket

Top comments (0)