Arena

A Self-Running Competitive Layer for Mobile Esports

Arena runs tournaments on its own. Brackets generate themselves. Matches advance themselves. Winners get paid automatically. The only time a human steps in is when two players disagree on who won — and even that is the next thing MeDo will solve. 326 iterations later, the platform runs itself.


Why Arena Exists

Mobile esports has a reward problem.

Millions of players compete seriously every day. They grind ranks, build squads, sharpen skill. The ecosystem gives them nothing back. No prize infrastructure. No verified rankings. No proof of skill. You win, the lobby closes, and the moment disappears.

Arena exists to fix that, and to prove that an AI tool can generate the full backend of a real-time, state-driven, financially live competitive platform when you push it hard enough.


Why Existing Tournament Platforms Fail

Every competitive player has lived through these. They are why most community tournaments collapse before a champion is crowned.

Pain Point What Actually Happens
Ghost players Tournaments die mid-run because joiners never show up. No system removes them. The bracket rots.
Disputes settled by "bro trust me" No result verification. The louder player wins the argument, not the better one.
No tangible reward Winners get a screenshot at best. No spotlight. No receipt. No proof they ever won.
Coordination chaos Tournaments live across WhatsApp groups, Discord DMs, and screenshots passed between strangers. Nothing is on-platform.
No persistent community No way to find opponents, recruit teammates, or challenge rivals. Every tournament starts from zero.

Arena solves all five inside one platform.


The Solution: A Self-Running Competitive Engine

Arena handles the entire competitive lifecycle, from tournament creation to crowning a champion, without any of it leaving the platform. Every routine action — bracket generation, check-in enforcement, result confirmation, advancement, prize payout — happens automatically. The single point of human oversight is dispute resolution, where an admin steps in to settle disagreements with screenshot evidence.

Tournament & Bracket Engine

Click any game card, hit Create Tournament, set your player cap, entry fee, and prize pool. Players join with one click. The moment the lobby fills, Arena takes over: it builds the bracket, seeds every participant, calculates rounds, and assigns byes. From that point forward, the system runs itself.

Per-Match Check-In

Every match comes with a 5-minute timer. Both players must independently hit "I'm Ready" before anything unlocks. Miss it, get eliminated automatically. Ghost players can no longer kill a tournament.

In-Match Room Code Chat

The moment both players check in, a private chat opens between them inside Arena. Room codes and lobby coordination happen here, not on WhatsApp.

Result Reporting & Dispute Resolution

After the match, both players independently tap "I Won" or "I Lost".

  • Reports agree → result confirms instantly, winner advances. Fully automatic.
  • Reports disagree → match flagged as disputed. An admin enters a three-way chat with both players, reviews screenshot evidence, and overrides the result manually.

This is the only human-in-the-loop step in the entire platform, and it is deliberate. Disputes involve subjective evidence and a final call that needs human judgement. Every other transition in Arena runs without intervention.

Forfeits & No-Shows, Handled Automatically

Missed check-in, missed report, mid-tournament abandonment — the system handles all of it. Absent player eliminated. Present player advances. Bracket continues. Players who joined after the cap are queued as spectators and step in as replacements when a slot opens.

Arena Coins & Wallet

Every player has a wallet. Entry fees are deducted automatically on join. Prizes are credited instantly on win. Every transaction is fully visible. Stripe is fully integrated and one live key away from real money.

World Chat & Direct Messages

A global channel where players broadcast, organise squads, and call out opponents. Tap any player's avatar to send a friend request or jump straight to DMs.

Quick Match

From DMs, send a Quick Match challenge. Once accepted, a match card spawns instantly for both players and runs the full competitive flow: check-in, private chat, result reporting, automatic confirmation. Completed matches drop to Past Matches automatically.

Winner Spotlight

When a player wins a tournament, their gamertag, game, and prize are permanently displayed on that tournament's page. Proof. Receipt. Something to show.

Leaderboard

A live leaderboard ranks every player by total prize money earned across all tournaments, updated automatically after every confirmed result. Persistent ranking. Real competitive performance over time.

Admin Control Panel

The dispute resolution workspace. Every disputed match across the platform listed in one place. Click a dispute card → jump straight to the bracket → view both submitted results → start the three-way chat → review evidence → override. Bracket continues automatically from there.

Admin Dashboard

A full financial and operational overview at a glance: total commission revenue, total registered users, total tournaments created. Everything an operator needs to monitor Arena's health in one screen.

AI-Generated Profile Avatars

Every player gets a unique AI-generated avatar on registration. No uploads, no defaults. Every profile on Arena looks distinct from day one.


The Match Lifecycle (State Machine)

Lobby Fills → Bracket Generated → Round 1 Matches Created
    ↓
Match: Check-In Timer (5 min)
    ↓ both ready
Private Chat Opens → Players Compete
    ↓
Result Reporting → [Agree → Confirm Automatically]
                   [Disagree → Dispute → Admin Override]
    ↓
Winner Advances Automatically
    ↓
Next Round Triggered → Cycle Restarts
    ↓ final match
Champion Recorded → Prize Credited → Spotlight Displayed

Every arrow except the admin override is a database trigger, SQL function, or real-time subscription. All generated by MeDo. The admin step is the single deliberate human checkpoint, and it's already on the roadmap to be replaced by an AI dispute agent.


How I Built Arena With MeDo

Arena was built entirely through MeDo — not assisted by it, not scaffolded with it. Every React component, every PostgreSQL function, every Supabase real-time subscription was generated through a multi-turn conversation that spanned 326 iterations of increasing precision.

My Prompting Methodology

I treated MeDo like a senior engineer joining a project, not a code generator answering one-off questions. The pattern that worked:

  1. Bring a precise logical model, not a vague request. Vague prompts produced vague code. Precise prompts produced production-ready functions on the first try.
  2. Frame every message as one of three things: a feature spec written in strict logic, a test result, or a failure description that explained exactly what broke.
  3. Let MeDo carry the architectural context. Across sessions, MeDo held what had been built, what had broken, and what depended on what. The longer the conversation, the more coherent the system became.
  4. Iterate on the model, not the code. When something broke, I rewrote my mental model of the system, then re-prompted. The fix usually came in one shot.

A Hard Prompt That Worked

The bye-distribution logic was the hardest single piece of the bracket engine. My prompt was structured roughly as:

"Given N players, calculate the next power of 2 above N as the bracket size. The number of byes is bracket_size minus N. Byes must be assigned to the top-seeded players in Round 1 only. A bye means the player advances directly to Round 2 without playing. Round 2 must contain exactly bracket_size / 2 matches, populated by Round 1 winners and bye recipients. Round 1 must contain (N - byes) / 2 matches. Generate the SQL function that produces this bracket structure as a set of match rows, each tagged with round_number and slot_position."

MeDo generated a working function in one pass, including the edge case where N is already a power of 2 (zero byes). That's the level of precision that 326 iterations taught me to write at.

What Surprised Me About MeDo

The moment MeDo "got" the system was around iteration 180. I asked for a change to the dispute flow, and the response touched a database trigger, an RLS policy, a real-time subscription, and a React component — all consistent with each other, all aware of how the bracket engine fed into the wallet system. It wasn't generating files anymore. It was generating coherent multi-layer changes across a live architecture. That is the moment MeDo stopped being a code generator and became an engineering collaborator.

The takeaway: MeDo works best when you bring it a clear logical model. The deeper you understand the system, the more precisely MeDo builds it. Arena exists because I learned to write prompts that matched the precision of the system I wanted.


The Most Impressive Feature MeDo Generated: The Bracket Engine

The bracket engine is Arena's backbone and its most technically complex feature. It runs from the moment players join a lobby to the final champion being crowned, and every step is mathematically precise.

Dynamic Bracket Generation

The moment a lobby fills, Arena calculates the correct bracket for any number of players. 5 or 50, the engine determines:

  • Exact number of rounds
  • Correct bracket size
  • How many players receive byes
  • How byes are distributed to keep every round balanced

Get any of this wrong and it cascades through every round that follows. This alone is a major reason Arena reached 326 iterations.

Why This Was Hard

Every transition in the match lifecycle required MeDo to generate interconnected database triggers, SQL functions, and real-time frontend updates that all had to behave as one coherent system. One wrong piece broke everything downstream. The bracket engine is the strongest proof of how deeply MeDo can be pushed when given a precise architectural model.


APIs & Integrations

Supabase — Full Backend Infrastructure

  • PostgreSQL stores all tournament data, match states, bracket structures, wallets, and transactions.
  • Real-time subscriptions drive live bracket updates. When a match confirms, both players see the bracket change instantly without refreshing.
  • Auth handles registration and session management.
  • Row-level security ensures players only access and modify their own match data.
  • Database triggers fire automatically on state changes — advancing winners, activating timers, updating brackets — with zero manual admin intervention on routine flow.

Stripe — Production-Ready Payments

Currently operating in demo mode with Arena Coins, but the integration is fully built:

  • Entry fee collection at registration
  • Prize pool escrow during the tournament
  • Automatic payout to the winner's wallet on match confirmation
  • Full admin visibility into revenue, transactions, and commission

Switching from sandbox to live requires only an API key change. The payment architecture is production-ready.

AI Image Generation — Unique Avatars on Sign-Up

Every player receives an automatically generated avatar at registration. No uploads, no defaults. Every profile is visually distinct from day one.


How to Test Arena

Live interaction is recommended over screenshots. The platform's depth shows clearest when you click through it.

  1. Visit the live link and register an account.
  2. Browse games from the homepage and open any active tournament.
  3. Log in with a second account to experience the full match flow — check-in timer, in-match chat, result reporting, winner advancement.
  4. From World Chat, tap any player avatar, send a friend request, then send a Quick Match challenge from DMs.
  5. Check the Leaderboard to see player rankings by total prize earnings.
  6. Use the admin credentials below to access the Control Panel (dispute resolution) and Admin Dashboard (financial overview).

Test Credentials

Admin Login Email: admin@admin.com Password: Admin123

Normal User Login Email: merc@merc.com Password: Merc123


What's Next

  • AI Dispute Agent — Replaces the admin in the dispute flow. The model analyses submitted screenshot evidence, weighs both players' reports, and issues an automatic verdict. Closes the last human-in-the-loop gap on Arena.
  • Stripe goes live — Arena Coins become real money.
  • Stress testing for concurrent tournaments and hundreds of simultaneous users.
  • Mobile-native Android app.
  • Twitch API integration so the community can watch tournament matches live.

Why Arena Matters Beyond the Hackathon

Arena is the proof that AI-generated full-stack code can produce real-time, state-driven, financially live software — not demos, not toys. The bracket engine is a state machine with money flowing through it. The dispute system is a multi-party real-time chat with admin overrides. The wallet is Stripe-ready production payment infrastructure. All of it was generated by MeDo.

If MeDo can build Arena, MeDo can build anything.


Arena is live. Arena is functional. Arena was built entirely on MeDo across 326 iterations.

Built to make sure skilled players always have something to show for it.

Built With

Share this project:

Updates