Inspiration
News coverage today is often divided, with each outlet emphasizing different details and interpretations of the same story. This often makes it hard to tell the difference between facts and subjective analysis, and subtle bias in coverage can shape people's perspectives without them even realizing it. In line with the vision of increasing transparency and access to the truth, I wanted to build something that could make that subtle bias easier to see. The Angle uses AI to compare coverage from across the political spectrum and present those perspectives side by side, allowing readers to quickly understand the different sides of a story and see through biases to uncover the truth.
What It Does
The Angle allows you to search a topic, story, or event and compares how multiple news sources report on that topic. It categorizes outlets based on their political leaning (left, center, or right), while also summarizing how each one frames the story, clearly separating agreed upon facts from disputed interpretations. Users can also paste an article to receive a comprehensive bias rating and factuality score, along with extracted shared facts, disputed points, and potential indicators of bias.
How It Was Built
The project was built with React, JavaScript, Node.js, HTML, and CSS. Axios retrieves articles from NewsAPI, while Gemini is used to categorize articles, summarize the different narratives and extract agreed upon facts, detect bias and score articles on factuality. The React frontend presents the results in a structured and readable format.
Challenges
The biggest challenge for this project was getting consistent structured output from Gemini. I had to design detailed logic to parse structured data from often incomplete or inconsistent responses, which could then be integrated cleanly in the frontend. Another major challenge was managing multiple API requests efficiently and staying within rate limits. To address this, I had to structure API requests carefully to manage latency and keep the pipeline stable.

Log in or sign up for Devpost to join the conversation.