Skip to content

Repository files navigation

The Socratic Arena

Where Ideas Clash. Intelligence Prevails.

A real-time, AI-judged competitive debate platform where users engage in structured 1v1 intellectual battles, scored by Google's Gemini AI across Logic, Facts, and Relevance β€” with Elo rankings, audience voting, and a community-driven topic ecosystem.

Live Website

MIT License Node.js React 19 Gemini AI Supabase Socket.IO TailwindCSS Vercel Render PRs Welcome


πŸ”΄ Live Demo

Live Demo

Production URL socratic-arena.vercel.app
Frontend Host Vercel
Backend Host Render
Database Supabase (PostgreSQL)

πŸ“Έ Preview

Arena OS & Reasoning Profile Explore & Discovery Hub
Arena OS coaching and reasoning profile Explore trending debate topics
Targeted coaching, competitive identity, classrooms, simulations, and trust workflows Trending arenas, topic discovery, saved interests, and live lobby entry

⚑ Quick Start

# 1. Clone
git clone https://github.com/Ayush-Kumar0207/The_Socratic_Arena.git
cd The_Socratic_Arena

# 2. Setup Backend
cd backend
npm install
cp .env.example .env    # Fill in your keys (see Environment Variables below)
node server.js

# 3. Setup Frontend (new terminal)
cd frontend
npm install
npm run dev

Open http://localhost:5173 β€” you're in the arena.

Free Lifetime Speech-To-Text

Socratic Arena can run high-accuracy speech-to-text without paid APIs by using the local faster-whisper service in stt_service/.

cd stt_service
.\start.ps1

The frontend tries this order automatically:

  1. Local free STT at http://127.0.0.1:5055
  2. Backend proxy at /api/stt/transcribe
  3. Browser SpeechRecognition fallback

This means users do not need Deepgram, Google STT, or OpenAI transcription credits. The only cost is the compute of whichever machine runs the open-source model.


πŸ“– Table of Contents


🧠 About The Project

The Socratic Arena transforms online discourse from chaotic arguments into structured, meaningful intellectual combat. Inspired by the Socratic method, every debate follows a deliberate format:

  • Two players are assigned roles β€” Critic (challenges the thesis) and Defender (upholds it)
  • A 5-minute timed round forces concise, high-quality arguments
  • Gemini 2.5 Flash acts as an impartial AI Judge, scoring each debater on Logic, Facts, and Relevance
  • The community votes during a 24-hour deliberation window, and an Elo rating system ranks debaters globally

Unlike social media flame wars, The Socratic Arena rewards thinking β€” not shouting.


✨ Features

🧠 Arena OS β€” Competitive Reasoning Network

  • Blind multi-judge panel β€” independent logic, evidence, and communication judges with median aggregation, agreement, confidence, uncertainty, factual-claim flags, and versioned audit records.
  • Longitudinal Reasoning Profile β€” tracks 11 skills and prescribes a focused daily drill after every performance.
  • Instant AI Sparring β€” an AI opponent is always available from matchmaking, with a deterministic local fallback during model outages.
  • Seasons, Format Ratings, Tournaments & Clubs β€” persistent competitive identity beyond a single global Elo.
  • Education Workspace β€” classrooms, join codes, assignments, custom rubrics, randomized positions, AI-use policies, and integrity reporting.
  • Professional Simulations β€” sales, negotiation, design review, investor, and policy challenge rooms.
  • Trust & Safety β€” result appeals, judge-version tracking, moderation reports, fairness checks, and portable credential storage.

Full product and API guide: docs/ARENA_OS.md.

🎯 Core Debate Engine

  • Real-time 1v1 debates via WebSocket with server-authoritative turn management.
  • Dynamic Stance Mapping β€” Automatically parses debate topics (e.g., "Veg vs Non-Veg") to generate tailored, context-aware mission objectives for each role.
  • Mission Briefing Ribbon β€” A glassmorphic, top-pinned UI component with slideDown animations that keeps your specific debate objective always in focus.
  • Critic vs. Defender roles β€” Internally mapped to dynamic stances to ensure database compatibility while providing clear, human-readable instructions.
  • 5-minute countdown timer per debater with automatic match resolution.
  • Typewriter message effect for a live, immersive feel.
  • Private Arena codes β€” Invite a specific opponent with a shareable code (e.g., 1AB6-X9K2).

βš”οΈ Real-Time Challenge System

  • Direct Invitations β€” Send live P2P "Debate Challenges" to online users straight from their profile.
  • Interactive Notification Bell β€” Accept or decline incoming challenges in real time.
  • Auto-Lobby Routing β€” Seamlessly transports both players into a private arena upon challenge acceptance.

πŸ“± Progressive Web App (PWA)

  • Installable Desktop/Mobile App β€” Add to homescreen for a standalone, immersive experience.
  • In-App 'Update Available' UI β€” Background service worker integration cleanly prompts for new updates via the Notification Bell.
  • Offline Resilience β€” Employs custom toasts to gracefully warn users of lost network connections.

πŸ“± Mobile-First Design

  • Fully Responsive UI β€” The entire complex interface, from the Live Arena typewriter to radar charts, is intricately optimized for mobile dimensions.
  • Touch Navigation β€” Streamlined bottom sheets and modal dialogs designed for touch interactions.
  • Abandoned Match Handling β€” Live Arenas instantly detects and cleans up abandoned matches, ensuring precise stat tracking.

πŸŽ™οΈ Pragmatic Affective Engine (v2)

  • Acoustic-Semantic Lock β€” High-fidelity audio analysis that distinguishes between dictation and commands with precise temporal and semantic gates.
  • Affective Punctuation β€” Automatically appends ?, !, or ... based on vocal energy peaks (RMS), interrogation patterns, and pauses (Delta-T).
  • Tone-Aware Visual Auras β€” Messages are rendered with vibrant, pulsing glows (Rose for Urgent, Indigo for Inquisitive) synced in real-time across all clients.
  • Text-Voice Parity β€” A lightweight semantic scanner ensures that manually typed messages (e.g., "This is ridiculous!!!") receive the same visual "Aura" and metadata as voice messages.
  • Hardware-Level Fidelity β€” Explicit autoGainControl management to preserve natural vocal intensity for emotion detection.

πŸ€– AI-Powered Intelligence

  • Gemini 2.5 Flash evaluates every debate on three axes: Logic, Facts, and Relevance (1–10 scale).
  • AI Topic Categorization β€” New topics are automatically classified into 12 domains using Gemini-powered domain analysis.
  • AI Bouncer β€” Validates and deduplicates new topics using semantic similarity analysis.
  • AI-powered semantic search β€” Find debates by conceptual meaning rather than just keyword matches.

πŸ“Š Competitive Ranking

  • Elo rating system with dynamic K-factor (50 for new players, 30 standard, 15 for elite)
  • 5 rank tiers: Novice β†’ Thinker β†’ Scholar β†’ Philosopher β†’ Oracle
  • Performance bonus: +5 Elo for winning with 90%+ audience support
  • Cognitive Profile radar chart tracking average Logic, Facts, and Relevance scores

πŸ—³οΈ Community & Audience

  • 24-hour deliberation window for audience voting after each debate
  • Composite scoring: 70% AI Judge + 30% Audience Sentiment
  • Live spectating β€” watch active debates in real time
  • Follow debaters and see their live status on your Dashboard network widget

🌐 Discovery Ecosystem

  • Discovery Hub in My Arena β€” topics grouped across 12 AI-detected categories (Technology, Philosophy, Sports, etc.)
  • Trending Arenas in Explore β€” sorted by popularity with personalized tiebreakers
  • Broad Topics Library β€” 56 curated debate prompts spanning science, politics, ethics, and more
  • Dynamic topic creation from search bar or Create Arena dialog with AI category correction

πŸ“„ Post-Match Analytics

  • Match Review page with detailed AI scores, radar comparison charts, and bar graphs
  • Debate transcript replay with timed playback recreating the original pace
  • Popular topics sidebar for discovery after reviewing a match

πŸ— Tech Stack

Layer Technology Purpose
Frontend React 19, Vite 7, TailwindCSS 4 Component-driven SPA with HMR
UI Components Lucide React, Recharts Icons, radar/bar charts
Realtime Socket.IO Client/Server Bidirectional WebSocket communication
Backend Node.js, Express 4 REST API + Socket.IO server
AI Engine Google Gemini 2.5 Flash Debate evaluation, topic classification, semantic analysis
AI Framework LangChain + Google GenAI Structured AI chains, embeddings, semantic search
Database Supabase (PostgreSQL) Auth, profiles, matches, topics, votes, real-time subscriptions
Auth Supabase Auth OAuth / email authentication
Export Tools html2canvas UI snapshots and visual state capture
Routing React Router DOM v7 Client-side navigation with protected routes

πŸ› Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        CLIENT (React SPA)                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚Dashboard β”‚ β”‚  Lobby   β”‚ β”‚  Arena   β”‚ β”‚  Explore / MyArena   β”‚ β”‚
β”‚  β”‚(Profile) β”‚ β”‚(Match)   β”‚ β”‚(Debate)  β”‚ β”‚  (Discovery Hub)     β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚       β”‚             β”‚            β”‚                   β”‚             β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                          β”‚ Socket.IO  β”‚ Supabase Client            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚            β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
                    β”‚    SERVER (Node.js)       β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
                    β”‚  β”‚ Socket.IO Handlers β”‚   β”‚
                    β”‚  β”‚ β€’ Matchmaking      β”‚   β”‚
                    β”‚  β”‚ β€’ Turn Management  β”‚   β”‚
                    β”‚  β”‚ β€’ Private Arenas   β”‚   β”‚
                    β”‚  β”‚ β€’ Topic Proposals  β”‚   β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
                    β”‚           β”‚               β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
                    β”‚  β”‚  Gemini AI Engine  β”‚   β”‚
                    β”‚  β”‚ β€’ Debate Scoring   β”‚   β”‚
                    β”‚  β”‚ β€’ Category Detect  β”‚   β”‚
                    β”‚  β”‚ β€’ Semantic Search  β”‚   β”‚
                    β”‚  β”‚ β€’ Topic Validation β”‚   β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
                    β”‚           β”‚               β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
                    β”‚  β”‚ Elo Rating Engine  β”‚   β”‚
                    β”‚  β”‚ β€’ K-Factor Calc    β”‚   β”‚
                    β”‚  β”‚ β€’ Win Resolution   β”‚   β”‚
                    β”‚  β”‚ β€’ Performance Bonusβ”‚   β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   SUPABASE (PostgreSQL)    β”‚
                    β”‚  profiles β”‚ matches        β”‚
                    β”‚  topics   β”‚ votes          β”‚
                    β”‚  topic_follows β”‚ private_arenas β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‚ Project Structure

The_Socratic_Arena/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ server.js              # Main entry β€” Express + Socket.IO + AI Engine (1700 LOC)
β”‚   β”œβ”€β”€ auto_seed.js           # Auto-seeds broad topics on startup
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ .env                   # Environment variables
β”‚   β”œβ”€β”€ controllers/           # REST API controllers
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   └── apiRoutes.js       # HTTP API endpoints
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   └── supabaseClient.js  # Supabase admin client
β”‚   β”œβ”€β”€ services/              # Business logic services
β”‚   └── migrations/            # Database migration scripts
β”‚
β”œβ”€β”€ frontend/
β”‚   └── src/
β”‚       β”œβ”€β”€ App.jsx             # Root β€” routing, auth, Create/Join Arena dialogs
β”‚       β”œβ”€β”€ main.jsx            # React DOM entry point
β”‚       β”œβ”€β”€ components/
β”‚       β”‚   β”œβ”€β”€ Login.jsx       # Auth page (Supabase OAuth)
β”‚       β”‚   β”œβ”€β”€ Dashboard.jsx   # Player profile, Elo, radar chart, network
β”‚       β”‚   β”œβ”€β”€ Explore.jsx     # Browse topics, live matches, leaderboard, search
β”‚       β”‚   β”œβ”€β”€ MyArena.jsx     # Discovery Hub, trending debates, saved arenas
β”‚       β”‚   β”œβ”€β”€ Lobby.jsx       # Matchmaking + private arena code system
β”‚       β”‚   β”œβ”€β”€ DebateArena.jsx # Live 1v1 debate with typewriter & turn timer
β”‚       β”‚   β”œβ”€β”€ MatchReview.jsx # Post-match analytics, voting, replay, charts
β”‚       β”‚   β”œβ”€β”€ TopicMatches.jsx # All matches for a specific topic
β”‚       β”‚   β”œβ”€β”€ Navbar.jsx      # Navigation bar
β”‚       β”‚   β”œβ”€β”€ ProfileModal.jsx # User profile popup with follow system
β”‚       β”‚   └── FileUploader.jsx # File upload utility
β”‚       β”œβ”€β”€ lib/
β”‚       β”‚   β”œβ”€β”€ supabaseClient.js # Supabase browser client
β”‚       β”‚   └── domainUtils.js    # 12-domain topic classification + keyword engine
β”‚       β”œβ”€β”€ hooks/              # Custom React hooks
β”‚       └── services/           # API service layer
β”‚
└── schema.sql                  # Database schema (5 tables + RPC function)

βš™οΈ Environment Variables

Create a .env file in the backend/ directory:

# Server
PORT=5000

# Supabase β€” Get from https://supabase.com/dashboard
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-role-key

# Google Gemini AI β€” Get from https://aistudio.google.com
GEMINI_API_KEY=your-gemini-api-key

# Feature Flags
ENABLE_ADVANCED_AI=true    # Toggle AI evaluation (set false to reduce API costs)

Create a .env or update the Supabase config in frontend/src/lib/supabaseClient.js with your project's public anon key and URL.


πŸš€ Deployment

Local Development

# Terminal 1: Backend
cd backend && npm install && node server.js
# βœ… Server running on http://localhost:5000

# Terminal 2: Frontend
cd frontend && npm install && npm run dev
# βœ… App running on http://localhost:5173

Production β€” Frontend (Vercel)

  1. Push the repo to GitHub
  2. Import the project on Vercel
  3. Set the Root Directory to frontend
  4. Build Command: npm run build
  5. Output Directory: dist
  6. Add environment variables for Supabase (public anon key + URL)
  7. Deploy β†’ live at your-project.vercel.app

Production β€” Backend (Render)

  1. Create a new Web Service on Render
  2. Set the Root Directory to backend
  3. Build Command: npm install
  4. Start Command: node server.js
  5. Add all environment variables from .env (Supabase, Gemini, etc.)
  6. Update the frontend's Socket.IO URL to point to your Render URL

Database Setup

  1. Create a new project on Supabase
  2. Run schema.sql in the Supabase SQL Editor to create tables
  3. Apply backend/migrations/001_create_private_arenas.sql through backend/migrations/006_final_integrity.sql in numeric order (existing deployments can apply only unapplied migrations)
  4. Review the included Row Level Security policies for your organization’s privacy requirements
  5. Copy your project URL and service key into backend/.env

Observability

The backend exposes Prometheus metrics at GET /metrics, a liveness probe at GET /health, and a dependency-readiness probe at GET /ready. Readiness verifies Supabase plus both Redis-backed realtime coordination and global rate limiting when Redis is configured. A scheduled GitHub Actions smoke test calls the deployed Vercel frontend and Render readiness endpoint daily without spending Gemini quota.

# Terminal 1: backend metrics source
cd backend
$env:ALERT_WEBHOOK_SECRET="local-alert-secret"
npm run dev

# Terminal 2: Prometheus + Grafana + Alertmanager
docker compose -f observability/docker-compose.yml up -d --pull never

Open Grafana at http://localhost:3001 with admin / admin, then load the Socratic Arena Robustness Overview dashboard. For automatic Discord/Slack-style alerts, set ALERT_WEBHOOK_URL before starting Docker Compose; the independent alert relay still works if the backend crashes.

Robustness Proof

The latest local evidence run combined the built-in backend robustness runner with the sibling socratic-swarm-tester repo. It reached 84 peak Socket.IO clients, 2 active matches, 7,220 received realtime messages, 13 emitted turns, 7 simulated drops, and 0 rage quits/reconnects.

Grafana and Prometheus robustness evidence

Alertmanager evidence alert

Full runbook: observability/README.md.

Robustness proof, screenshots, and raw results: docs/robustness/README.md.


πŸ—Ί Roadmap

  • Real-time 1v1 debate engine with server-authoritative turns
  • AI Judge scoring (Logic, Facts, Relevance) via Gemini 2.5 Flash
  • Elo ranking system with 5 rank tiers
  • Private Arena codes for invite-only debates
  • 24-hour audience deliberation and voting
  • Discovery Hub with AI-powered topic categorization (12 domains)
  • Semantic search via LangChain
  • Match replay with timed playback
  • Cognitive Profile radar charts
  • Social network (follow users, see live status)
  • Real-time P2P Challenge System with interactive notifications
  • Progressive Web App (PWA) integration and offline support
  • Fully responsive mobile-first UI optimization
  • Abandoned Match UI cleanup and precise stat tracking
  • AI Judge Lifeline β€” Summon the AI to fact-check mid-debate (Objection System)
  • Pragmatic Affective Engine v2 β€” Tone detection, auto-punctuation, and visual auras
  • Dynamic Stance Mapping β€” tailored objectives for comparitive topics
  • AI Highlights β€” Automatically generate and extract key turning points from debates
  • PDF & Text Export β€” Download professional-grade debate transcripts
  • Tournament brackets with match-verified elimination rounds
  • Team debates (2v2) with the blind three-judge panel
  • Mobile-native app (React Native)
  • Public API for third-party integrations

🀝 Contributing

Contributions make the open-source community thrive. Any contribution is greatly appreciated.

Public-beta users can also report a bug or share product feedback. Please report security issues privately through GitHub Security Advisories, not a public issue.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and component patterns
  • Add meaningful comments for complex logic
  • Test Socket.IO events with multiple browser tabs
  • Keep the backend server-authoritative β€” never trust the client

❓ FAQ

How does the AI Judge evaluate debates?

Gemini 2.5 Flash analyzes the full transcript and scores each debater on Logic (argument structure), Facts (accuracy of claims), and Relevance (staying on topic), each on a 1–10 scale. The composite winner is determined by 70% AI score + 30% audience vote.

How are the Critic and Defender roles assigned?

The platform uses Dynamic Stance Mapping. When a topic is searched or created (e.g., "AI vs. Humans"), the system automatically parses the prompt and generates tailored, context-aware mission objectives for each role (Stance A and Stance B). Roles are then assigned based on who joins first, or randomly in paired matches.

How does the Voice Affective Engine work?

The Socratic Arena uses a high-fidelity Acoustic-Semantic Lock. It distinguishes between dictation and commands, automatically appends punctuation based on vocal peaks (Interrogation patterns/RMS), and renders your messages with vibrant, pulsing Visual Auras (Indigo for Inquisitive, Rose for Urgent) synced in real-time across all clients.

What happens if someone disconnects mid-debate?

The system detects disconnection via Socket.IO, waits 30 seconds for reconnection, then automatically marks the match as "abandoned." The remaining player receives an Elo advantage, and the match transcript is preserved for review.

How does the Elo system work and what are the ranks?

We use a dynamic K-factor: K=50 for newcomers (< 10 matches), K=30 for established, and K=15 for elite (> 1800 Elo). As you climb, you progress through 5 tiers: Novice β†’ Thinker β†’ Scholar β†’ Philosopher β†’ Oracle. Oracle status is reserved for the absolute elite of intellectual combat.

What is the significance of the 24-hour deliberation period?

Every debate remains "In Deliberation" for 24 hours to allow the community to watch and vote. This ensures the 30% audience weight is statistically significant, countering any potential AI bias and rewarding debaters who resonate with human reason.

Can I create my own debate topics?

Yes! Use the search bar on the Explore page or the "Create Arena" button. New topics are validated by our AI Bouncer (to prevent duplicates/spam) and automatically categorized using Gemini-powered domain analysis before being published to the Discovery Hub.

Can I install The Socratic Arena as an app?

Yes! The platform is a fully compliant Progressive Web App (PWA). Simply click "Install" in your browser's address bar or add it to your home screen on mobile. You'll receive real-time update notifications and benefit from offline resilience.


πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.


πŸ‘¨β€πŸ’» Authors

Ayush Kumar β€” @Ayush-Kumar0207
Ravi Prashant β€” @cypher00grd


Ayush Kumar
Ayush Kumar

Full Stack & Core Development

Ravi Prashant
Ravi Prashant

Full Stack & Core Development

Built with passion for structured discourse and the belief that better debates make better thinkers.


If this project sharpened your thinking, consider giving it a ⭐
Every star fuels better debates.

About

Open-source competitive reasoning network for live debates, AI-assisted judging, coaching, tournaments, classrooms, and verifiable reasoning profiles.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages