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

Share this project:

Updates