diff --git a/README.md b/README.md
index 1d6f565..0c7343e 100644
--- a/README.md
+++ b/README.md
@@ -170,8 +170,16 @@ So, without further ado, here's the current list:
# RSS
- - Miniflux
- - Miniflux-filter
+ - [Miniflux](rss/../apps/rss/miniflux.md)
+ - [Miniflux-filter](rss/../apps/rss/miniflux-filter.md)
+ - [FreshRSS](https://www.freshrss.org/) [external] - second best :-)
+
+
+## RSS Tools
+- [PolitePol](https://github.com/taroved/pol) [external] - Create RSS where there was none
+- [FetchRSS](https://fetchrss.com/) [external] - Create RSS for FB, Twitter, YT, and websites
+- [rss-bridge](https://github.com/RSS-Bridge/rss-bridge) [external] - The RSS feed for websites missing it
+- [rss2full](https://github.com/feedocean/rss2full) [external] - Transform summary feeds into full-text
# Search engines
diff --git a/apps/rss/miniflux-filter.md b/apps/rss/miniflux-filter.md
new file mode 100644
index 0000000..62801a2
--- /dev/null
+++ b/apps/rss/miniflux-filter.md
@@ -0,0 +1,45 @@
+# Miniflux-filter
+
+Filter for miniflux - "mark as read" all unwanter articles.
+I created that before miniflux added some basic filtering. Maybe still useful to someone.
+The difference from the built-in filtering is that this marks articles as read, whereas the built-in filtering filters articles out BEFORE adding them to the DB.
+
+
+
+
+- [Github repo](https://github.com/tborychowski/miniflux-filter)
+
+
+## docker-compose.yml
+```yml
+---
+version: '3'
+services:
+ miniflux-filter:
+ image: tborychowski/miniflux-filter
+ container_name: miniflux-filter
+ restart: unless-stopped
+ environment:
+ - TZ=Europe/Dublin
+ - HOST=https://rss.example.com
+ - API_KEY=
+ - CHECK_EVERY_S=300 # 300 seconds = 5 min
+ ports:
+ - "5011:3000"
+ volumes:
+ - ./filters.yml:/app/filters.yml
+ - ./logs:/app/logs # optional
+```
+
+## filters.yml
+This is a simple list of matchers: it loops through the unread articles and for every one of them - it loops through this list. If the article URL matches a filter `url` and the article title contains the string from `title` field - this article will be marked as read.
+
+```yml
+filters:
+ - url: 'feed.example.com' # match feed url
+ title: 'windows 10' # match title
+ - url: 'feed.example.com'
+ title: 'sponsored'
+ - url: 'feed.another.com'
+ title: 'spam'
+```
diff --git a/apps/rss/miniflux.md b/apps/rss/miniflux.md
new file mode 100644
index 0000000..363f086
--- /dev/null
+++ b/apps/rss/miniflux.md
@@ -0,0 +1,56 @@
+# Miniflux
+
+The best RSS reader that I've tested. Simple, extremely fast and minimalistic.
+
+
+
+- [Homepage](https://miniflux.app/)
+- [Github repo](https://github.com/miniflux/v2)
+- [Docs](https://miniflux.app/docs/index.html)
+
+
+## docker-compose.yml
+```yml
+version: '3'
+services:
+ miniflux:
+ image: miniflux/miniflux:nightly
+ ports:
+ - "5010:8080"
+ depends_on:
+ - db
+ environment:
+ - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+ - RUN_MIGRATIONS=1
+ - CREATE_ADMIN=1
+ - ADMIN_USERNAME=admin
+ - ADMIN_PASSWORD=test123
+ db:
+ image: postgres:latest
+ environment:
+ - POSTGRES_USER=miniflux
+ - POSTGRES_PASSWORD=secret
+ volumes:
+ - ./db:/var/lib/postgresql/data
+```
+
+
+## Tips & Tricks
+- [Rules](https://miniflux.app/docs/rules.html) can be set for every feed source:
+
+### Filter Rules - block rules
+exclude articles containing a word (case insensitive), e.g.
+```
+(?i)windows,(?i)miniflux
+```
+
+### Rewrite rules
+```
+add_dynamic_image,add_image_title,add_youtube_video
+```
+
+### Scraper rules
+This is just a css selector for the main article DOM element, e.g.:
+```css
+#phContent_divMetaBody>p, #phContent_divMetaBody>.content-image-wrapper
+```