53 lines
2.6 KiB
Markdown
53 lines
2.6 KiB
Markdown
---
|
|
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).
|