Most news apps decide two things for you: what you see, and in what order. When I started building Hushread, an RSS and news reader, I decided it would decide neither. Ranking is a choice, and I chose not to make it.
That choice creates its own problems. A newest-first feed of 200 sources is noisy, repetitive and endless. This post is about what I built instead of an algorithm to fix that, and the parts any developer building a feed, an inbox or a dashboard can reuse.
What you see: only what you chose
The feed is built from the sources you follow and nothing else. A source can be:
- an RSS or Atom feed, or a site with no feed at all (Hushread checks the page and turns new posts into items),
- a subreddit, with the post's text rather than a bare link,
- a YouTube channel or a public Facebook page,
- a topic ("chip exports", your football club) that pulls new coverage from any outlet,
- or one of 2,500+ curated sources.
Nothing is injected from outside that list, and there are no ads or ad tracking.
In what order: newest first, always
The feed is every article from your sources, newest first. Nothing is ranked, boosted or reordered. AI is used in a few places (summaries, linking articles about the same event, judging tone for rules), but never to choose or reorder what is in the feed.
A chronological feed only works if it is finishable, so the reader helps you get to the end: articles are marked read as you scroll past them, read articles are hidden the next time the feed loads, and the feed ends at "All caught up!".
The real fix for noise: group things
The biggest source of noise in a chronological feed isn't order, it's repetition. When thirty outlets cover one event, you get thirty cards. So Hushread groups:
Articles into stories. When several articles tell the same story, you see one card with an "Also mentioned in" strip listing the other outlets. Syndicated copies and follow-up rewrites fold under the newest version. When 8 or more publishers cover an event, a "See whole story" tile opens the full story: a summary of where things stand, then every outlet's report, day by day, each linking to the original.

One story, 66 sources: the summary so far, then every outlet's report in time order.
Sources into folders. Folders group sources, tags group articles, and a source can sit in more than one folder. Any folder can filter the feed or be the screen the app opens on, so "everything" stops being the only view.

Folders and sources in the menu, each with its own unread count, next to the feed.
Surging stories into Trending, on a separate screen. Trending ranks stories by how many different publishers are covering them over the last 48 hours, not by clicks, and it never touches the feed itself.
Rules you write, not rules learned about you
Instead of a model guessing what to hide, you write the rule: mute, mark read, or notify, by keyword or phrase, by source or folder, and optionally by an article's tone. "Mute anything with crypto" or "mark negative articles as read" does what it says, and you can pause or delete it any time.
What I'd take from this for any feed
- Repetition is a bigger problem than order. Collapse duplicates before you reach for ranking.
- Keep every original one tap away when you group. A group that hides its sources isn't trusted.
- Make the end of the feed reachable. "All caught up" is a feature.
- Put ranked views on their own screen, so the main view stays predictable.
You can try it in the browser with no sign-up: https://app.hushread.com/demo?utm_source=devto
Top comments (0)