Inspiration
News moves quickly, but verifying what we see online is often slow and difficult. This becomes more challenging when information is shared across different Indian languages and when AI-generated answers can confidently state things without sufficient evidence.
I wanted to build something that makes two tasks simple: discover what is happening and check whether a claim is actually supported by evidence.
That led to NewzWale — "Only Facts News."
What it does
NewzWale combines a live Indian news discovery platform with an evidence-grounded fact-checking system.
The news side aggregates current headlines across categories and Indian languages and links users to the original publisher rather than rewriting or republishing the article.
The core feature is the Fact Check Explorer. A user can enter a headline, claim, or article URL. NewzWale retrieves evidence from two independent paths:
- Published fact-checks through the Google Fact Check Tools API.
- Live web evidence through web search and page retrieval.
These sources are processed together before the system produces a verdict.
The fact-checker supports six outcomes:
- True
- False
- Partly true
- Misleading
- Needs context
- Unverified
The important design decision is that the AI model does not get the final say. The model reasons over the retrieved evidence and proposes a verdict, while a deterministic verification gate applies the final rules. Definite True/False verdicts require independent corroboration; otherwise the system can downgrade the result to a more cautious verdict such as Unverified.
Every result exposes the evidence used so users can inspect the basis for the conclusion.
How I built it
NewzWale is built with Astro and deployed as a Cloudflare Worker.
The architecture uses:
- Astro SSR for the web application
- Cloudflare Workers for edge deployment
- Cloudflare KV for caching
- Cloudflare Workers AI for evidence-grounded reasoning
- Tailwind CSS for the design system
- NewsData.io and RSS feeds for news ingestion
- Google Fact Check Tools API for published fact-check retrieval
- Tavily for live web evidence retrieval
- Vitest for automated testing
The fact-check pipeline is deliberately separated into retrieval, evidence processing, model reasoning, and deterministic verdict assessment. This makes it possible to test the individual stages instead of treating the entire AI response as a black box.
The application also includes features such as multilingual headline browsing, saved articles, fact-check history, topic customization, dark mode, search, an installable PWA, and accessibility checks.
Challenges
The hardest part was not calling an AI model. It was deciding when the system should trust an answer and when it should refuse to make a definitive claim.
A naive implementation could simply ask an LLM whether a statement is true. That creates a serious problem: the model may produce a convincing answer even when it has insufficient evidence.
I therefore designed the pipeline so that evidence is retrieved first and the model reasons only over that retrieved evidence. A separate deterministic gate then controls which verdicts are actually allowed to reach the user.
Another challenge was handling unreliable upstream data. News APIs can fail or become rate-limited, so the news ingestion layer includes RSS fallbacks and caching.
I also built automated tests around the fact-checking logic, security headers, database schema, and accessibility rather than relying only on manual testing.
What I learned
The biggest lesson was that building an AI product is often more about controlling what the model is allowed to do than simply choosing a better model.
Grounding, evidence retrieval, deterministic rules, conservative fallbacks, caching, and testing are all important when the product is making claims about the real world.
I also learned that multilingual products require more than translating an English interface. Search, ranking, tokenization, evidence retrieval, and data availability can behave differently across languages.
What's next
The next stage for NewzWale is to improve evidence coverage, expand the multilingual experience, provision the remaining production data infrastructure, and add image/screenshot claim verification.
The long-term goal is to make NewzWale a practical verification layer for Indian digital news — helping users move from "I saw this online" to "Here is the evidence behind this claim."
Built With
- aggregation
- api
- astro
- check
- checking
- cloudflare
- css
- d1
- fact
- generative
- javascript
- kv
- news
- newsdata.io
- rss
- tailwind
- tavily
- tools
- typescript
- vitest
- workers
Log in or sign up for Devpost to join the conversation.