The Wider Lens logoThe Wider Lens

Methodology

The Wider Lens is a deterministic aggregation pipeline. There is no LLM in the loop, no editorial curation, and no personalization. Here is exactly what happens on every refresh.

1.Collection

Server-side collectors fetch public RSS/Atom feeds, the arXiv API, the GitHub REST API, and the Hugging Face Hub API. Every request has a timeout (10–20s). Sources are fetched withPromise.allSettled — if one feed is down, slow, or returns malformed data, it is logged and skipped; the page renders with the rest.

2.Normalization

Every item becomes a common Article record: title, short description, URL, source, author, publication date, and image when the feed provides one. Missing fields are handled gracefully — an item is never dropped just because it lacks an image or author.

3.Relevance filtering

General tech feeds (e.g. TechCrunch) cover more than AI. Items must match AI keywords — model names, techniques, companies, or research terms — to survive. Obvious junk (job posts, sponsored content) is removed.

4.Categorization

A maintainable keyword-rule system assigns each story to one category: Models, Open Source, Research, Tools, Agents, Robotics, Coding, Image & Video, Business, or AI Hardware. Rules are scored (longer phrases weigh more) and the highest-scoring category wins; ties resolve by a fixed priority order. Companies are detected with an alias list (e.g. “DeepMind”, “Gemini” → Google).

5.Deduplication & clustering

Titles are normalized (lowercased, punctuation and stopwords removed) and compared with Jaccard token similarity. Near-identical items (≥ 0.88) from the same source are dropped. Items about the same event (≥ 0.38 similarity, or ≥ 0.25 with a shared company) are clustered, not deleted: the cluster shows one primary story and a “View N sources” expander listing every outlet covering it. When an official company announcement exists in the cluster, it becomes the primary.

6.Importance ranking (0–100)

The score is a transparent heuristic:

  • Source authority: official 40 · research 30 · journalism 25 · models 20 · GitHub/Hugging Face/tools 15
  • Freshness: <24h +25 · <72h +15 · <7d +5
  • Corroboration: +8 per additional independent source in the cluster (max +24)
  • Event signals: model-release keywords +10 · official launch announcement +8 · benchmark/breakthrough +5

“Today in AI” shows the top-ranked stories published in the last 24 hours; the trending list shows the top-ranked stories overall.

7.Refresh frequency

  • News feeds: every 15 minutes
  • GitHub: every 30 minutes
  • Hugging Face models & arXiv: every 60 minutes
  • Learn pages: static, rebuilt on deploy

Implemented with Next.js data-cache revalidation (fetch(..., { next: { revalidate } })), so upstream APIs are never hit once per visitor.

8.Limitations

  • We link to original reporting; The Wider Lens hosts only headlines and excerpts.
  • Automated clustering can occasionally group loosely related stories — use the source list to verify.
  • Model metadata reflects what the Hugging Face API reports; open-weight status is shown only when the license reliably indicates it.
  • GitHub “interesting repos” come from curated topic searches, not a global trending calculation.