Project · Live
Jiddu
Truth is a pathless land. Jiddu is three tools in one for reading any text critically — a fallacy detector, a fact-check pipeline, and a neutrality assessment. Drop a URL, paste text, or upload a PDF and get a structured read on how the piece argues, what it claims, and how it frames its sources.

What it does
- Fallacy detector. Highlights every passage that contains a logical fallacy, explains each in a Word-style margin comment, and assigns the whole piece a fallacy score from 0 to 100. Streams results progressively while the LLM is still writing. 28-fallacy catalog with a per-fallacy modal and a guide page at
/fallacies. - Fact-check. Pulls every verifiable claim (numbers, dates, quotes, causal and categorical assertions) out of the same text using a Claimify-style 4-stage pipeline. Each claim can then be sent through Perplexity Sonar Reasoning Pro for a verdict —
supported/contradicted/mixed/unverified— with citations classified into a 6-tier source-quality taxonomy. - Neutrality assessment. Flags the framing, attribution and source-selection patterns that make a text partisan even when it doesn't commit any explicit fallacy and doesn't lie about facts. Eight issue types: loaded language, asymmetric attribution, false equivalence, selective omission, source asymmetry, both-sidesing, steering, genetic framing. Deliberately does not classify partisan direction — surfaces patterns the reader can audit.
Methodology
The fact-check and neutrality pipelines are grounded in two recent papers:
- Claimify (Metropolitansky & Larson, Microsoft Research 2025) for the 4-stage claim extraction.
- Distilling Expert Judgment at Scale (Goldfarb, Hall, Fisher, Salam, Wilde — Forum AI / Stanford 2025) for the verdict assessment, the 6-tier source-quality taxonomy, and the neutrality framework.
Jiddu is not affiliated with either group.
Stack
- Next.js 16 (App Router, Turbopack) + React 19 + TypeScript + Tailwind 4.
- Prisma 7 with
@prisma/adapter-better-sqlite3— SQLite file persisted in a Docker volume. - Multi-model via OpenRouter: GPT-5.4 mini as default, MiniMax M2.7 as a one-click alternative, Sonar Reasoning Pro for fact-check verification. Client-side fallback retries across the model chain if no SSE events have been emitted yet.
- Streaming via server-side
ReadableStreamemitting SSE;partial-jsonfor incremental finding extraction so comments appear as the model writes them. - Trilingual UI (EN / PT-BR / ES) with browser-language detection on first visit and localStorage persistence — the LLM is also instructed to write in the chosen language.
Things worth noting
- Verdict cache with per-type TTL. Claims are hashed (lang-prefixed sha256 of the normalized statement) and persisted. Numeric claims expire after 30 days, quotes and causal claims after 90, dates and categorical claims after 365. Re-verification is free for cached claims.
- SSRF-protected URL ingestion. Every fetch hop is DNS-resolved and rejected if it lands on RFC1918, loopback, link-local, CGNAT, multicast, or reserved IPv4/IPv6 ranges (covers the cloud metadata
169.254.169.254). Body size capped at 5 MB. - Print-optimized companion routes. Every viewer (
/a/[id],/f/[id],/n/[id]) has a/printsibling that auto-triggers the browser print dialog so the user can save as PDF. - Admin panel with a feedback queue ("report wrong verdict"), metrics (verdict distribution, per-pipeline volume, cache state), runtime-tunable rate limits and cost caps, and a one-click "mark as reviewed" toggle that removes the yellow "not yet human-reviewed" banner from public viewers.
Status
Live at jiddu.app. Source is open under AGPL-3.0 at rafaehlers/jiddu. Try the demos in EN, PT, or ES without spending a token — /a/demo-en, /f/demo-pt, /n/demo-es.