A local-first verification workspace for viral claims. Build a traceable source ledger, record contradictions, inspect evidence coverage, and export a brief before sharing. The product does not label claims true or false and never pretends to have read a URL automatically.
Live demo · Method · Run locally
A viral post moves faster than careful sourcing. TrustTrace gives the person checking it a deliberate workspace: one exact claim, evidence cards with dates and publishers, a place for contradictions, and an exportable trail. The index measures how much of the ledger is documented, not whether the claim is true. This distinction is part of the product, not a disclaimer tucked away.
- One claim per ledger, with primary, independent, contradicting, contextual and unverified evidence types
- Transparent Rust/WebAssembly scoring core; documented JavaScript fallback if WASM cannot load
- Search/filter, source URL validation, publisher breadth, dated/direct/independent metadata
- Export Markdown evidence brief and versioned JSON backup; import with validation and duplicate-ID checks
- Sample case with synthetic, clearly illustrative source entries
- Browser-local storage; no account, paid API or third-party fact-checking promise
A source gets points according to its type, whether it is independent, dated and directly relevant. The aggregate includes publisher breadth and context, and subtracts a review penalty for contradictions. Bounds are 0-1000. The model is intentionally small and auditable in lib.rs; the JavaScript fallback in scoring.mjs mirrors it.
Important: numbers are workflow cues, not calibrated probabilities or a substitute for opening a source. A well documented false claim can have a high coverage index. Contradictions need investigation, not erasure. A repeated article that merely quotes one original source should not be marked independent.
npm ci
npm run dev # opens the unbundled dev.html
npm testFor the Rust engine, install a stable Rust toolchain and the wasm32-unknown-unknown target, then:
cargo test
cargo build --release --target wasm32-unknown-unknown
cp target/wasm32-unknown-unknown/release/trusttrace_core.wasm trusttrace_core.wasm
npm run buildThe bundled trusttrace_core.wasm is compiled from lib.rs; the loader falls back to JavaScript if it cannot be fetched or instantiated. npm run check runs the JavaScript tests and production build. No environment variables or external API keys are required.
lib.rs Small scoring engine and Rust tests
model.mjs Input validation, ledger calculations and Markdown report
scoring.mjs WASM loader and equivalent fallback
main.jsx React app and browser state
style.css Responsive visual system
model.test.mjs Node tests
dev.html Unbundled development entry
index.html Published, single-file production app
trusttrace_core.wasm Compiled WASM binary, copied to dist/ by build
The ledger stays in the browser's local storage. Export backups before clearing browser data. Anyone using the same browser profile can read it. GitHub Pages serves the static app and may receive ordinary web-server request metadata; the app does not send claim/evidence contents to a backend. Do not put sensitive personal information in public source URLs or exported briefs. This is a research aid, not professional fact-checking or an automated truth detector.
MIT. See LICENSE.
