1
0
Fork 0
owenryan.us/source/_projects/informinator.md

54 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2024-02-06 04:13:57 +00:00
---
layout: project
title: "Informinator"
description: News aggregator built with React and TypeScript
year: current
permalink: /projects/informinator
thumbnail_url: /assets/images/informinator.webp
project_url: https://informinator.owenryan.us/
source_url: https://code.owenryan.us/owenryan/informinator
SEO_tags: [News, FOSS, React, RSS, TypeScript]
---
**Note: Informinator will be open-sourced in the near future when the site leaves the testing stage**
Informinator is a web-based news aggregator that acts as a central place to catch up on current events.
## Origins
During the spring 2023 semester, two separate classes I was taking had weekly news quizzes that checked that you had
been following current events. I decided that the best way to study for these quizzes was to create a news aggregator
to simplify the process of looking at several news outlets per day.
The original version of Informinator was hacked together in a weekend 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.
## 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-holding your own instance of Informinator.
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 hidden behind the carousel.
- Informinator's RSS parsing code only supports feeds from [RSSHub](https://docs.rsshub.app/en/).
- RSSHub's New York Times English feed is currently unusable due
to [a parsing error](https://github.com/DIYgod/RSSHub/issues/12371).
- All articles are cached in Python when an in-memory database such as Redis would greatly improve performance.
## Roadmap
Informinator's public roadmap can be found [here](https://informinator.owenryan.us/roadmap).