Inspiration
Polarized online discourse hides nuance and traps people in echo chambers. We wanted a space where both sides are visible, arguments are structured, and AI helps surface common ground.
What it does
Users create topics and add pro/con arguments with sources. Claude analyzes arguments to produce summaries, check sources, identify consensus, and detect direct rebuttals — which are shown as linked lines so users can follow the debate.
How we built it
Backend: FastAPI + SQLite (Postgres-ready). Claude (Sonnet/Haiku) for synthesis and claim extraction; Tavily for evidence lookup. Matches persisted so links survive refresh and only re-evaluate on edit. Frontend: Next.js + React + Tailwind + Radix. SVG overlay draws rebuttal links; responsive dark UI.
Challenges we ran into
Parsing Claude reliably (fixed with strict JSON prompts and fenced-code stripping). Aligning SVG lines with dynamic DOM (useRef/useEffect + resize recompute). Persisting matches without blocking UX (async save + cache invalidation on edits). Backwards-compatible DB changes for older SQLite files.
Accomplishments that we're proud of
Clear visual mapping of debate dynamics (AI-detected rebuttal links). Persistent caching of AI results, reducing cost/latency. Flexible topic creation (allow single-side starts). Full Claude-powered pipeline: synthesis, matching, and fact-check orchestration.
What we learned
Good prompt design and structured outputs are essential for stable AI features. Caching + selective invalidation is crucial to make AI features practical and affordable. SQLite is great for rapid iteration; migrations matter. Visual design materially improves comprehension of complex debates.
What's next for Debately
Hover tooltips showing match reasoning. Debate templates and seeded arguments. Moderator curation tools and unlink/confirm controls. Exportable summaries/embeds and real-time collaborative editing.
Built With
- claudeai
- fastapi
- nextjs
- python
- react
- sqlite
- tavily
- typescript
Log in or sign up for Devpost to join the conversation.