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. What it does APEX Versus 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 Why this was harder than it sounds 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). The stack Frontend : plain HTML/JS, no framework — kept it simple since this was a solo build Backend : Vercel serverless functions AI : Gemini API for generating verdicts DB/Auth : Firebase (Firestore + Auth) Payments : Razorpay for the paid tier A real security lesson 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. What's next 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