samiul@portfolio:~/projects/news-router$ cat README.md

19 News Router

[selfhosted] [python] [updated 2026-07]

A self-hosted RSS reader that gives you one finished edition instead of an endless feed.

samiul@portfolio:~/projects/news-router$ cat problem.txt

News apps optimise for engagement: ads, ranking, infinite scroll. The requirement was a reader on my own hardware, over plain RSS, with a stopping point.

samiul@portfolio:~/projects/news-router$ cat build.log

A FastAPI service polls feeds, dedupes stories and routes them into configured topics. The SvelteKit reader presents the last twelve hours as a finished edition. Docker Compose, optional ntfy push in the morning and evening, multi-account.

samiul@portfolio:~/projects/news-router$ cat highlights.txt

  • RSS/Atom ingest with dedupe and parallel polling
  • Keyword routing into topics, not a black-box feed
  • 12-hour edition instead of infinite scroll
  • Docker Compose + optional ntfy push

samiul@portfolio:~/projects/news-router$ cat stack.toml

# news-router

api = "fastapi, sqlalchemy"

ui = "sveltekit"

ingest = "rss / atom, parallel poll, dedupe"

push = "ntfy morning + evening"

stack = ["Python", "FastAPI", "SvelteKit", "Docker"]

samiul@portfolio:~/projects/news-router$ git remote -v

interactive shell: try help, ls, open 04, phosphor amber

SH‑TERM  ▚  MODEL 2026