Inspiration
Forwarded messages spread through family WhatsApp groups faster than anyone can check them, and screenshots and official-looking circulars spread the same way. Fact-checkers give a verdict, but people rarely see where a message came from or how it changed on the way. Organizations have the same problem when an "official" circular lands in a staff channel. We wanted a tool that shows the history of a message before you forward it.
What it does
You paste a forwarded message, upload a screenshot of a post, or upload a PDF or Word circular. Rootline searches the web, finds earlier versions, and draws a "likely lineage" as roots growing through soil. The oldest version sits deepest. Each version shows its year, source, the exact words found, and a plain "what changed" line.
- Does this post actually exist? For screenshots. It reports "No evidence this post exists". It never says "fake".
- Is this official? For circulars. It reports "No official record found. Verify directly with the organization before acting."
- Reply card: a short, kind message you can send back to the group chat.
- Watchlist: teams save a claim and re-run it later to catch new versions.
- General news statements: these get a neutral list of reputable sources and no tree.
How we built it
Rootline routes work across three Nemotron models on Nebius Token Factory:
- Nemotron 3.5 Lightning (Nano tier): high-volume parallel jobs such as checking whether a page really contains a version of the message and comparing pairs. About 22 calls per trace.
- Nemotron 3.5 Super VL (Super tier): describing and reviewing changes, writing summaries and reply cards, and reading screenshots.
- Nemotron 3 Ultra 550B: one heavy reasoning call that refines the lineage tree.
A typical trace makes about 30 calls and costs about $0.007 at list prices. The same work all on Ultra would cost roughly 7 to 9 times more (our estimate from the run's own call log, shown in the app's "How this was built" panel).
Tavily search and extract run on every trace to find earlier versions, check whether a post exists, look for official records, and find reputable reports. The app is Next.js, TypeScript and Tailwind on Vercel, with Supabase for share links and the Watchlist. Every model output is validated with Zod, and code-level checks reject anything the model cannot back up with text on the source page.
Challenges
- Billing country: Token Factory could not accept a Nigerian-issued card. We developed against NVIDIA's hosted Nemotron API, then switched to Nebius with environment variables only, through an account provided by a teammate abroad. We re-ran all the demos on Nebius.
- Honesty versus wow: real web data is messy. When we hand-checked the change labels they were only about half to three-quarters correct, so by default we show only the strong ones. If too few versions exist, we show "Limited family found" instead of padding the tree.
- True news is not a hoax: a general statement about current events was first treated like a chain message. We added a classifier so those get neutral sources and no lineage tree.
Accomplishments
- It works end to end on real web data. Our Nebius verification passes 22 of 22 checks, and every excerpt shown is checked word for word against its source page.
- Over 100 automated tests.
- Clear, honest outcomes: "Limited family found", "No evidence this post exists", "No official record found".
What we learned
Small models are fast and cheap but sometimes paraphrase instead of quoting, so verification belongs in code. Routing the right job to the right model size is what keeps cost low.
What's next
- Voice notes and video. The code exists but is untested, so it is hidden until a speech endpoint is configured.
- Pidgin, Yoruba, Igbo and Hausa.
- Team accounts for newsrooms and NGOs.
- Nebius Serverless Endpoints for hosting.
Lineage is inferred from public sources. The earliest version found is not necessarily the origin. Rootline traces what is said, not whether media is authentic. Rootline was built entirely during the submission period.
Built With
- nebius-token-factory
- nemotron-3-ultra
- nemotron-3.5-lightning
- nemotron-3.5-super-vl
- next.js
- nvidia-nemotron
- postgresql
- react
- supabase
- tailwind-css
- tavily
- tesseract.js
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.