Inspiration

I was inspired (more in a negative sense) by just how bad information warfare - disinformation, misinformation, propaganda is getting. And I believe it will only get worse as AI continues to root itself into the grounds of society and the cost of producing convincing disinfo approaches zero, making info warfare more attractive to state or private actors with a vested interest in destabilizing, misleading the populace. In the Philippines, where my family is from, information warfare has defined its modern era. Propaganda, fake news and the many other insidious tools of malicious actors which so easily bypass the rational mind and wrangle emotions - I was getting sick of it. And so many others too, which is why I didn't want to make just a fact-checker that tells you what to think. I wanted to create a tool that helps people think for themselves by revealing the hidden mechanics of media manipulation.

What it does

Prism, much like what a glass prism does to white light, takes any innocuous news article and instantly breaks it down through five specialized AIs that analyze the following: source credibility, facts vs interpretation, the cui bono (who benefits from this news?), missing context, and rhetorical manipulation tactics. A sixth AI synthesizes these findings into a clear verdict on trustworthiness. It's like having a team of skeptical researchers who read the fine print while you're scrolling.

How I built it

Built with Next.js (mostly because every model is overfit on it lel) and the Vercel AI SDK using Anthropic's Claude Sonnet 4 model for summarization, and Cerebras for super fast, near instant inference, even with reasoning models! Five agents run in parallel using Promise.all() for sub-5-second analysis. The news article is fetched using Firecrawl which can parse websites in LLM-friendly Markdown format. For fact-checking agents, I used Exa AI which is my go-to search engine. I also spent a lot of time making the frontend look rainbow prism-themed but not too eye-sorey or minimalist. Much of the project, especially backend logic, was hastily vibecoded (not my proudest work) using Claude Sonnet 4 and GPT-5 through GitHub Copilot but the truly important parts were done by my hand <3

Challenges I ran into

The main challenge I ran into was Vercel's AI SDK for some reason having broken Cerebras support for structured outputs and tool calls, so I had to proompt engineer tool schemas and structured output specifications in XML format (I noticed that JSON is super fragile with syntax whereas the Chad XML is dripping with semantics and clear grammar). Also, this is the first time I had to focus on UX and the type of people that I would like to use this application, so I had to make UI layout sensible and I had to distill techno jargon into actual English that the lay person would understand. To this end I also added a "Simple" mode which tells the AI to use less vocabulary, which would accommodate less media literate people who would want this kind of software.

Accomplishments that I'm proud of

I'm really proud of how productive I was during this event because usually I procrastinate a lot and leave things half-finished or just prototypes, but I guess this being my very first hackathon ever forces my mind to focus and ship something truly great. I'm also proud of being able to brainstorm an idea that, to my knowledge, hasn't been experimented with or talked about that much.

What I learned

I learned just how much of an endeavour fighting against information warfare truly is. This little project is a step in the direction against manipulation but nowhere near having a fighting chance against those who have the money and expertise for mass psychological manipulation.

What's next for Prism

I see a world where people aren’t forced to choose between blind trust and total cynicism when they read the news. Prism is just a first step toward that. The next thing I want to build is a proper agent orchestrator that can direct agents to generate multiple distinct but relevant perspectives on an article, then mediate a conversation between them to surface points of agreement and disagreement. Claude is especially good at this kind of mediation, so it feels like the natural next move.

I was also thinking of experimenting with a more journalist-facing version - Prism as a “Cursor for journalism?” Not a replacement for editorial judgment, but a copilot that fits into the reporter's workflow: pulling high-quality sources, cross-checking claims, flagging rhetorical framing, and surfacing missing context in real time. The same agent architecture could adapt from “help me read this” to “help me write responsibly,” and that feels like an exciting direction.

Eventually, I want Prism to meet people where they already are: in the browser or their feeds, quietly adding context, highlighting what’s missing, and showing who stands to benefit. Ultimately the goal isn’t to decide what’s true for the user, but to make it easier for them to think clearly in a noisy and polarized world.

Built With

  • anthropic
  • cerebras
  • next.js
  • react
Share this project:

Updates

Submission history