A real-time debate platform with live transcription and AI-powered judging. Create audio-only debate rooms, engage in structured debates, and receive live feedback from multiple AI judges.
- Audio-Only Debate Rooms: Clean, distraction-free voice debates
- Real-Time Transcription: Live speech-to-text using Deepgram
- Multi-Agent AI Judging: Three specialized AI judges evaluate arguments
- Live Feedback: Real-time scoring and suggestions during debates
- Debate Discovery: Browse and join available debates by topic/category
- Logic Judge: Evaluates reasoning, identifies fallacies, analyzes argument structure
- Persuasion Judge: Assesses rhetorical effectiveness, style, and convincingness
- Flow Judge: Competitive debate analysis with clash and impact evaluation
- 30-Second Evaluation Cycles: Continuous assessment with live score updates
- Final Results: Comprehensive victory analysis and detailed breakdown
- WebRTC Audio: High-quality, low-latency voice communication
- WebSocket Real-Time: Live updates for debates and participants
- Responsive Design: Works on desktop and mobile devices
- No Registration Required: Jump straight into debates
- Node.js 16+
- npm or yarn
- API keys for external services
- Clone the repository
git clone <repository-url>
cd debate-platform- Install dependencies
npm install- Configure API keys
Copy
server.example.jstoserver.jsand add your API keys:
const VIDEOSDK_API_KEY = "your-videosdk-api-key";
const VIDEOSDK_SECRET = "your-videosdk-secret";
const DEEPGRAM_API_KEY = "your-deepgram-api-key";
const CLAUDE_API_KEY = "your-claude-api-key"; // OptionalOr use environment variables:
export VIDEOSDK_API_KEY=your-videosdk-api-key
export VIDEOSDK_SECRET=your-videosdk-secret
export DEEPGRAM_API_KEY=your-deepgram-api-key
export CLAUDE_API_KEY=your-claude-api-key- Start the server
npm start- Open in browser
Visit
http://localhost:3003
- Sign up at VideoSDK.live
- Get your API Key and Secret from the dashboard
- Add to your configuration
- Sign up at Deepgram.com
- Get your API key from the console
- Add to your configuration
- Get access to Anthropic's Claude API
- Add your API key to configuration
- Without this, simulated AI responses will be used
debate-platform/
โโโ public/ # Frontend files
โ โโโ index.html # Main HTML file
โ โโโ app.js # Main application logic
โ โโโ transcription.js # Deepgram transcription service
โ โโโ judge-system.js # Multi-agent AI judge system
โโโ server.js # Main server (with your API keys)
โโโ server.example.js # Example server (safe for GitHub)
โโโ package.json # Dependencies
โโโ README.md # This file
- Enter your name and debate topic
- Choose a category and your position (Pro/Con)
- Click "Create Debate Room"
- Share the room with others or wait for someone to join
- Browse available debates on the main page
- Click "Join Debate" on any open room
- Enter your name and you'll be placed in the opposing position
- Start debating once both participants are connected
- Start Transcription: Click the transcription button to enable live speech-to-text
- AI Evaluation: The system evaluates arguments every 30 seconds
- Live Scores: See real-time scores for Logic, Persuasion, and Flow
- Live Feedback: Get suggestions and identify strengths/weaknesses
- Final Results: View comprehensive results when the debate ends
- Vanilla JavaScript: No framework dependencies
- WebRTC: VideoSDK for audio communication
- WebSocket: Real-time updates and notifications
- Responsive CSS: Mobile-friendly design
- Express.js: Web server and API endpoints
- WebSocket: Real-time communication
- In-Memory Storage: Simple debate management (upgrade to database for production)
- Deepgram: WebSocket-based live transcription
- Claude API: Multi-agent debate evaluation
- Simulated Responses: Fallback when API keys not configured
# Install dependencies
npm install
# Start with nodemon for auto-restart
npm run dev# Test Deepgram key
curl http://localhost:3003/api/deepgram-key
# Test AI evaluation
curl -X POST http://localhost:3003/api/claude-evaluate \
-H "Content-Type: application/json" \
-d '{"prompt":"AI will help humanity","judgeType":"logic"}'Set these in your deployment environment:
PORT=3003
VIDEOSDK_API_KEY=your-key
VIDEOSDK_SECRET=your-secret
DEEPGRAM_API_KEY=your-key
CLAUDE_API_KEY=your-key
For production, replace the in-memory activeDebates array with a proper database:
- SQLite: Simple file-based database
- PostgreSQL: Full-featured database
- MongoDB: Document-based storage
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes:
git commit -m "Add feature" - Push to branch:
git push origin feature-name - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- VideoSDK: WebRTC infrastructure
- Deepgram: Real-time speech recognition
- Anthropic Claude: AI-powered debate evaluation
- Express.js: Web framework
- WebSocket: Real-time communication
For questions or issues:
- Check existing GitHub Issues
- Create a new issue with detailed description
- Include browser console logs if applicable
Happy Debating! ๐ฏ