Skip to content

UTKI20/Sinter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sinter

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.

How it Works

Instead of relying purely on an LLM to guess what the other side might say, Sinter uses a Retrieve → Ground → Synthesize pipeline:

  1. 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.
  2. 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.
  3. Synthesize: Groq (Llama 3) organizes these verified perspectives into a structured, readable format with ultra-low latency.

Key Features

  • 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.

Tech Stack

  • 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)

Installation for Development

  1. Clone the repository:

    git clone https://github.com/UTKI20/Sinter.git
    cd Sinter
  2. Setup the Backend:

    cd backend
    npm install

    Create a .env file in the backend folder:

    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
  3. Setup the Frontend:

    cd ../frontend
    npm install
    npm run build
  4. 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/dist folder.

Architecture Philosophy

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.

Releases

No releases published

Packages

 
 
 

Contributors