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:
System instructions for personality tiers — each difficulty level sends a different systemInstruction to Gemini, producing dramatically different conversational voices from the same model
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
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
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
- css
- gemini-2.5-flash
- google-gemini-api
- html
- javascript


Log in or sign up for Devpost to join the conversation.