Posted in

My morning news routine used to be five apps showing the same story — until I…

The topic My morning news routine used to be five apps showing the same story — until I… is currently the subject of lively discussion — readers and analysts are keeping a close eye on developments.

This is taking place in a dynamic environment: companies’ decisions and competitors’ reactions can quickly change the picture.

That’s when I decided to self-host MuckScraper, an open-source app that pulled from my own chosen sources, clustered duplicate coverage, and summarized via a local LLM on my own hardware. It kind of worked out of the box, but not for my life, at least not yet.

Self-hosting FreshRSS gives you speed, privacy, and customization in one package

The common thread in this routine was the same news, dressed up with a different headline each time. for example, a story on Google News about the Galaxy Watch Ultra 2 — Mashable published it as “New leak reportedly reveals nearly full spec sheet for Samsung Galaxy Watch Ultra 2,” whereas GSMArena pushed it as “Samsung teases the next Galaxy Watch and its AI-powered ‘Health Companion.'” The conclusion was the same, but the different headlines made me click on both, since they looked like separate pieces.

I realized my mornings had become less about catching up on tech news and more about figuring out which headlines were actually new. And at that point, adding a new app to my already crowded stack didn’t feel like a good move. Even switching to an aggregator wouldn’t fix it. Most still surface individual articles without truly merging duplicate reporting. I did try a few AI-powered services for the same, but they all relied on cloud APIs and barely any free tier. So I started looking for something that I could host and manage the feeds myself.

A couple of weeks ago, while going through Reddit’s r/selfhosted, I came across MuckScraper. The title itself grabbed my attention. It was “MuckScraper: open source self-hosted news aggregator with bias ratings, story clustering, and local AI summarization.” Open-source, self-hosted, and local AI — these three words from that title made me decide to try it on my home server. It wasn’t about promising more news, but about offering an easier way to consume the news I already follow.

The README on the GitHub repo looked simple enough to deploy and start using in a few minutes. The tech stack was something I was already familiar with. It already uses a few of my favorites, like Python for the backend, PostgreSQL for the database, Ollama for local LLM inference, Meilisearch for search and sort, and Docker for deployment. I literally had all the dependencies with me and felt like it was a Docker Compose away.

I was a little skeptical about the local LLM part — it needed to run 24/7, which ruled out my RTX 4070 Ti workstation. And I was running an old repurposed Dell laptop as my home server with no GPU. That’s when I decided to run a small local LLM, qwen2.5:1.5b, with CPU-only inference. Yes, I know I risked my whole server by running a local model on it, and I did face a severe issue, but more on that later. For context: a Dell Latitude 7480, Core i5-6300U, roughly 11.6GB of RAM, a 256GB SSD — already running more than 20 containers before I added a 1.5B local model into the mix.”

I deployed it and kept it running for a few hours, and when I opened the dashboard, it was unlike anything I expected. Out of the box, MuckScraper technically worked. But it clearly assumed a US-centric audience interested in Congress, the White House, and US politics. I was neither a US citizen nor a political person. It felt like I’d done all this for nothing. At the same time, my other services hosted on the server began struggling to run. When I checked the server stats, memory was at 100% (11GB/11GB), with swap completely exhausted. Upon further checking, I found that Ollama alone was consuming 4.4GB. I immediately set a reduced context length and a lower keep-alive duration.

The fix brought everything back under control, but the MuckScraper was still useless for me. I went through almost all the files, checking each section and function like RSS feeds, sidebar categories, topics, and manual fetching, and started replacing them with the things I liked. It took me another afternoon. But once I’d swapped in my interests, such as self-hosting, homelab, local AI, consumer tech, and operating systems, and my own RSS feeds, such as XDA, Hacker News, a few subreddits, and GitHub blogs, it finally started to feel like something mine instead of a generic US politics paper.

Once everything was configured, I left it running for another day, so the dashboard could fill up with something I liked. But MuckScraper still wasn’t ready for me. The backend was full of errors, and a few feeds on the dashboard weren’t behaving. Once I went through it, a few were news API bugs, and a few were intentional MuckScraper default configs. GNews was rejecting hyphenated search terms, and Reddit and GitHub were in the default blocklist. By the end, after two to three days of configuration, which I initially assumed was a five-minute job, it was working perfectly, and it had become something I could open every morning for a quick glance into everything.

After almost two weeks of running it, my years-old routine had finally come to an end. Instead of cycling through five apps, I now open only one dashboard. All the stories were now clustered, with AI summaries on demand. I didn’t need to open each article to go through the content and the meat. It still linked back to the original articles, so if I wanted more details or wanted to jump into the thread, I could open it from the same dashboard.

Homelab stories, local AI developments, consumer tech updates, and self-hosting news. It was a custom newsroom designed around my interests only. The point isn’t that these stories are exclusive — it’s that they’re relevant to my interests rather than whatever happens to dominate mainstream tech news.

Honestly, the app still needs a lot of work to become a permanent part of my stack, but overall, it’s been a smooth journey so far. My current setup still has a lot of noise, like Quordle or Wordle answer roundups getting clustered, generic deals posts surfacing, and a few irrelevant articles slipping into the feed. And the bias rating system was good for a politics news dashboard, but mostly meaningless for a tech one. But since it is an open-source app, I plan to contribute back to the project directly or fork it into something closer to what I need in my free hours.

As a publisher and journalist myself, I didn’t want to replace reading the actual articles, but the repetitive work of sorting through duplicate headlines every morning was getting a little tedious. So instead of ditching news apps, I built something to do the sorting for me and opened articles when I wanted to. I still read original reporting when a story interests me, but now I start from a single personalized dashboard with a feed that actually reflects what I care about each morning, instead of five different apps saying the same thing in five different ways.