Introduction to Stanzo
Stanzo is a real-time debate fact-checking platform that captures live audio, identifies factual claims, and verifies them against primary sources—all while the debate is happening. Every claim gets rated as true, false, mixed, or unverifiable, with citations linking back to authoritative sources.Get started
Quickstart
Set up your account and run your first debate session in under 5 minutes
Architecture
Understand how Stanzo processes audio through transcription, extraction, and fact-checking
API Reference
Explore Convex mutations and queries for debates, claims, and transcripts
Source Code
View the complete Next.js 16 and Convex implementation on GitHub
Core capabilities
Live transcription with speaker diarization
Stanzo uses Deepgram’s nova-3 model to transcribe debate audio in real-time. The transcription engine identifies which speaker (A or B) said what, so claims are automatically attributed to the correct person.Multi-turn claim extraction
Gemini 2.5 Flash analyzes transcript segments to identify factual claims like statistics, dates, and causal statements. The extraction engine maintains conversation history for the entire debate, so it:- Doesn’t re-extract claims from previous turns
- Uses context to resolve pronouns and references
- Extracts factual cores from opinion-mixed statements
Fact-checking with primary sources
Perplexity Sonar verifies each claim by searching the web and consulting authoritative sources. The fact-checker returns:- Status:
true,false,mixed, orunverifiable - Verdict: Brief explanation (~30 words)
- Correction: If the claim is false or partially false, what’s actually true
- Sources: Array of citation URLs (e.g., bls.gov, fbi.gov)
Real-time reactive UI
Convex powers instant updates via reactive subscriptions. When a claim’s status changes frompending → checking → true, the UI updates automatically without polling.
How it works
Stanzo processes debates through a three-stage pipeline: 1. RecordStart a debate and Stanzo captures every word from both speakers using Deepgram’s live transcription API. Audio streams directly from your browser microphone to Deepgram’s WebSocket endpoint. 2. Extract
When a speaker pauses (1.5 second silence), unprocessed transcript chunks trigger a Gemini extraction session. Claims are identified using the full conversation history and saved to Convex with a
pending status.
3. VerifyEach new claim triggers an async fact-check action. Perplexity Sonar searches for evidence, rates the claim, and returns citations. The claim updates to its final verdict and appears in the sidebar.
The entire pipeline runs asynchronously. Transcription, extraction, and fact-checking happen in parallel, so you get results as fast as possible.
Tech stack
Stanzo is built with modern web technologies optimized for real-time performance:| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS 4 |
| Backend | Convex (serverless database + actions) |
| Transcription | Deepgram nova-3 with speaker diarization |
| Claim Extraction | Google Gemini 2.5 Flash |
| Fact-Checking | Perplexity Sonar |
| Auth | GitHub OAuth via Convex Auth |
| Error Handling | Effect library (retries, timeouts) |
Next steps
Run your first debate
Follow the quickstart guide to authenticate, create a debate, and see claims verified in real-time