I Built an AI That Settles "Who Would Win" Arguments — Here's How A developer built APEX Versus, a website that uses AI to settle 'who would win' debates by scoring any two entities across seven power dimensions. The project uses Gemini for structured scoring and Firestore for caching, and the developer fixed security holes that allowed unauthenticated content injection. Every group chat has that debate that never resolves: Messi or Ronaldo, Naruto or Goku, India or China. Someone always says "there's no real answer" and the thread dies. I got annoyed enough by this that I built a site that actually gives an answer. APEX Versus https://apexversus.com lets you type any two people, characters, companies, or countries and get an AI verdict across 7 power dimensions — power, influence, wealth, intelligence, legacy, popularity, and potential. It picks a winner, gives an Apex Score for each side, and explains the reasoning instead of just flipping a coin. Try it right now, no signup needed for your first few: https://apexversus.com https://apexversus.com The obvious approach — "just ask an LLM who'd win" — falls apart fast. Ask the same matchup twice and you get wildly different reasoning, sometimes a different winner entirely. I ended up structuring every prompt around the same fixed rubric the 7 dimensions , forcing the model to score each one explicitly before it's allowed to declare a winner. That single change took the results from "random vibes" to something that felt consistent and defensible. Caching was the other half of the battle. Every unique matchup gets computed once via Gemini and cached in Firestore — reads stay public so anonymous visitors get instant results, but writes are locked down server-side more on why below . Early on, the Firestore rules for the cache collection were wide open — anyone could PATCH a battle's cached verdict directly via the public REST API, no auth required. On a site whose whole product is declaring "winners" about real people and companies, that's a content-injection hole waiting to be exploited. Locked it down so writes only happen through the Admin SDK server-side, reads stay public. Same story for daily-battle content and user credit balances, which I found could be self-granted client-side before the fix. Worth a reminder that "nobody's going to bother" is not a security model, even for a small solo project. Referral system, push notifications for daily battles, and expanding the SEO-friendly comparison pages. Built and run solo, so feedback — what's broken, what's missing, what matchup you tried that gave a bad answer — is genuinely useful and I read all of it. Try it: https://apexversus.com https://apexversus.com