News credibility platform
Truth Accord
A news feed that scores what it publishes. It resolves every story to a source, a byline, and an owner, so a reader can see whether five outlets agreeing actually means five independent confirmations.
- Year
- 2026
- Our role
- Frontend, backend, DevOps
- Stack
- Next.js, React, TypeScript, PostgreSQL, Render
- Live site
- truthaccords.com
- Outlets tracked
- 85
- Bylines resolved
- 325
- Ownership mapped
- 55 outlets
The problem
Corroboration is the usual test a reader applies to a story: if several outlets report the same thing, it is probably true. That test quietly fails when the outlets are not independent. Two mastheads with one parent company repeating one wire report is a single claim wearing three hats, and nothing on a normal news feed tells you that.
The product had to make provenance visible without asking the reader to do research. Everything else follows from that: if the platform cannot say who published a claim, who wrote it, and who owns them, it has no basis for scoring anything.
How we built it
Three entities sit underneath every article: the source, the author, and the owner. Sources are outlets with a tracked article history. Authors are bylines resolved from the articles themselves, carried with their outlet, beats, and a confidence value, because byline strings are messy and a guess should be labelled as one. Owners map an outlet to its parent organisation, country, funding, and founding year.
That third layer is the one that makes the product work. The owners view states the thesis outright: domains sharing an owner are not independent corroboration. Once ownership is a first-class record rather than trivia, the feed can weigh agreement between two outlets differently depending on whether they answer to the same company.
Confidence is stored and displayed rather than hidden. Ownership records carry a percentage, authors carry their own, and articles carry a score alongside a plain label such as Disputed or Mixed. The platform is explicit about how sure it is, which is the only honest way to publish a judgement about someone else's reporting.
Where it landed
The feed sorts by Hot, New, Top, Rising, and Debated. That last one only exists because the data model supports it: Debated is a view of stories where the scoring disagrees, which on most aggregators would be invisible.
Readers can register, hold a profile, and contribute to scoring, so the judgement is community and platform driven rather than editorial. The public surface stays fast because it is a Next.js application rendered on the server, with the analysis work kept off the request path.
Have something similar in mind? The first call is free.
Start a project