Informinator
Informinator was a web-based news aggratgator built with React and TypeScript.
Features
- Fetches data through RSS/Atom feeds (compatible with most existing news sites)
Origins
Two of my spring 2023 high school classes had weekly news quizzes to encourage students to keep up with current events. Teachers would often throw in curveball questions that referenced a specific article only shown in one primary newspaper, so we had to consistently check multiple news outlets to pass the quizzes. Since most primary news outlets still have RSS/Atom feeds, I took the opportunity to simplify my studying by building a multiplatform web app to quickly get the headlines from most major media outlets.
The initial version of Informinator was hacked together in a weekend using
and worked much differently than the current version. It was written entirely in Python using Aiohttp as the webserver and jinja as the template engine. The server did everything from Parse RSS to render HTML, which led to 5+ second load times as every RSS feed had to be fetched before HTML was returned. It also only pulled feeds from RSSHub, and thus only featured stories from BBC News, Al jazeera, The Associated Press, and Op-eds from The Guardian.
Over the summer of 2023, the entire site was rewritten as a single-page React application, which reduced hosting complexity and made the site more responsive.
Privacy
Informinator aims to be a privacy-friendly solution for news aggregation. Some information is inadvertently collected to prevent spam, but it can be entirely avoided by self-hosting.
The official Informinator instance collects the following information
- IP address when you load the page - This is logged by the webserver and used to identify Denial-Of-Service (DOS) and similar attacks.
- IP address and RSS feed URL when using the official informinator proxy to load articles - Again used for detecting abuse.
Current issues
The first version of Informinator was hacked together over a weekend, so some design choices are suboptimal. Some of these include:
- All articles are loaded on page-load, even though most are hidd
- en behind the carousel.
- Informinator’s RSS parsing code only supports feeds from RSSHub.
- RSSHub’s New York Times English feed is currently unusable due to a parsing error.
- All articles are cached in Python when an in-memory database such as Redis would greatly improve performance.
Open Source
If you