Feeds Fun
About this project
News reader with tags & AI. Self-hosted, if it is your way.
- Reader automatically assigns tags to news.
- You create rules to score news by tags.
- Filter and sort news how you want ⇒ read only what you need.
Site: feeds.fun with curated collections of feeds that are tagged for free.
Blog: blog.feeds.fun
Roadmap: long-term plans
Screenshots
Features
- Multi-/single-user.
- Feeds management.
- Automatic tag assignment for every news entry.
- Rules to score news by tags.
- Filter news: exclude news by tags, show only news with tags.
- Sort news by score, date, etc.
- Track news you've read already.
- A lot of other features are comming.
Motivation
I've subscribed to a lot of news feeds and want to read only the most interesting & important from them.
I did not find an open-source solution that suited my needs => decided to create my own.
Official site
The last stable version is always available at https://feeds.fun/
It is free and should be stable: no database resets, minimal downtime, etc.
Just do not forget to set up your OpenAI or Gemini API key to access the full power of tags generation.
Fastest way to try locally
Check instructions in the docs/examples/single-user directory.
Self-hosted version
Instructions for docker-based installation:
Also:
- Backend is accessible as ffun package on PyPI.
- Frontend is accessible as feeds-fun package on NPM.
- Use the same versions for front and back.
Alternatively, you can install from tags in this repo.
Configuration
All configs can be redefined via environment variables or .env
file in the working directory.
You can print actual backend config values with:
ffun print-configs
The output is not as pretty and ready for copying as it should be, but I'll improve it later.
All actual frontend configs can be found here.
Format of environment variables:
- For backend:
FFUN_<component>_<option>
orFFUN_<component>_<option>__<suboption>
. - For frontend:
VITE_FFUN_<component>_<option>
orVITE_FFUN_<component>_<option>__<suboption>
— must be set on build time!
For example:
FFUN_AUTH_MODE="supertokens"
FFUN_LIBRARIAN_OPENAI_GENERAL_PROCESSOR__ENABLED="True"
Configure Tag Processors
Feeds Fun uses different tag processors to detect tags for news entries. Some of them are simple, like set domain as tag
, some of them are more complex, like use LLM to detect all possible tags
.
Processors are configured via a separate configuration file.
You can find an example of configuration [in the code](./ffun/ffun/librarian/fixtures/tag_p