Sinter is an AI-powered browser extension designed to analyze news articles, surface counter-perspectives, and provide contextual summaries directly inside your browsing experience.
Most AI news tools simply give you a compressed summary of an article. None of them ask: Summary of whose version?
Sinter challenges framing and exposes alternate viewpoints by moving away from hallucination-prone LLM generation and moving towards a Retrieval-Augmented Generation (RAG) architecture.
Instead of relying purely on an LLM to guess what the other side might say, Sinter uses a Retrieve → Ground → Synthesize pipeline:
- Retrieve: The extension extracts the core claims of the article you are reading and constructs targeted search queries. It uses the Serper API to pull live, indexed articles from reputable sources in real-time.
- Ground: Retrieved articles go through an extraction layer. The AI model is strictly constrained: it cannot make a counter-argument that it cannot directly attribute to a retrieved source.
- Synthesize: Groq (Llama 3) organizes these verified perspectives into a structured, readable format with ultra-low latency.
- Evidence-Grounded Citations: Every counter-argument includes a direct quote and citation from the source article.
- Narrative Heuristics: Evaluates political framing on a dynamic spectrum based on language markers and claim asymmetry.
- Steel-Man vs. Straw-Man Voting: A crowdsourced arbitration system (backed by Supabase) where readers vote on whether an argument is a fair representation (Steel-man) or a misrepresentation (Straw-man).
- Vintage Newspaper UI: A beautiful, deliberate reading experience featuring classic typography and a "Journal of Balanced Perspectives" aesthetic.
- Frontend: React, Vite, Tailwind CSS, Chrome Extension APIs
- Backend: Node.js, Express
- AI & Search: Groq API (Llama-3.3-70b), Serper API (Google Search)
- Database: Supabase (PostgreSQL)
-
Clone the repository:
git clone https://github.com/UTKI20/Sinter.git cd Sinter -
Setup the Backend:
cd backend npm installCreate a
.envfile in thebackendfolder:GROQ_API_KEY=your_groq_api_key SERPER_API_KEY=your_serper_api_key DATABASE_URL=your_supabase_postgresql_url
Run the backend:
npm run dev
-
Setup the Frontend:
cd ../frontend npm install npm run build -
Load the Extension:
- Open Chrome and navigate to
chrome://extensions/ - Enable Developer mode in the top right corner.
- Click Load unpacked and select the
Sinter/frontend/distfolder.
- Open Chrome and navigate to
The biggest engineering lesson from this project is that production-grade AI systems cannot rely on generation alone. The moment you move from Generate to Retrieve → Ground → Synthesize, reliability stops being a prompt engineering problem and starts being a systems problem.
Sinter is an ongoing experiment in media intelligence, search retrieval, and argument quality evaluation.