Inspiration

Most people never train their argumentation skills — because there's no one to practice with. Debate clubs are rare, and generic chatbots are bad debate partners: they lecture, hedge, and give long explanations instead of sharp counter-arguments.

I wanted to build an AI opponent that feels like a real sparring partner — one that adapts its personality, stays on topic, and hits hard when you deserve it.

What it does

Pick a topic. Choose your AI opponent's personality across 7 difficulty levels. Set a time limit. Debate live.

  • Level 1-2 (Beginner) — polite and measured, offers gentle hints
  • Level 3-4 (Competitive) — neutral, direct, challenges logic plainly
  • Level 5-6 (Aggressive) — confident, starts with "Weak." or "Really?", attacks weakest points
  • Level 7 (BEAST MODE 🔥) — brutal, sarcastic, merciless

The AI stays strictly on topic and responds in 2-3 sharp sentences. When time runs out, Gemini generates a full performance review: score 1-10, strongest point, weakest point, feedback, argument-by-argument breakdown, and a verdict on who actually won.

How I built it

Built entirely around Google Gemini 2.5 Flash:

  1. System instructions for personality tiers — each difficulty level sends a different systemInstruction to Gemini, producing dramatically different conversational voices from the same model

  2. Structured JSON review generation — after the debate, Gemini returns the performance review as structured JSON (score, strongest_point, weakest_point, feedback, verdict, argument_breakdown), which the UI renders as styled cards

  3. Multi-turn conversation with context — full debate history is passed back to Gemini on each turn so the AI can reference and counter earlier arguments

  4. Speed (Gemini 2.5 Flash) — Flash responds in ~2 seconds, keeping the debate feeling real-time

Tech stack:

  • HTML5, CSS3 (glassmorphism, custom properties, animations)
  • Vanilla JavaScript (no frameworks)
  • Google Gemini 2.5 Flash API
  • Bebas Neue + DM Sans typography
  • Fully client-side, GitHub Pages hosting

Challenges I ran into

Prompt engineering the 7 personality tiers to feel truly distinct was the hardest part. First iteration had all levels sounding similar — just "stricter". Had to rewrite system instructions per tier with specific vocabulary, opener patterns, and tone rules to get the BEAST MODE 🔥 to actually feel brutal vs. Level 1 feeling genuinely supportive.

Structured JSON output from Gemini required careful prompt design so the UI could reliably parse the review every time.

Accomplishments that I'm proud of

  • Shipped a complete product — not a prototype — in one weekend
  • 7 genuinely distinct AI personalities from a single model via prompt engineering
  • Premium UI with glassmorphism, animations, and proper typography
  • Full review breakdown, not just a score

What I learned

  • Prompt engineering for personality control using system instructions
  • Getting structured output (JSON) from LLMs reliably
  • Multi-turn conversation context management
  • Shipping a polished product fast when every hour matters

What's next

  • Voice input and TTS responses (ElevenLabs integration)
  • More debate formats (Lincoln-Douglas, parliamentary)
  • Save debate history and track improvement over time
  • Multiplayer mode — your AI avatar debates a friend's AI avatar

Built With

Share this project:

Updates