Most RSS readers are built like email. New items pile up. The unread count climbs. You feel pressure to clear it — or guilt when you can’t. Six months later you have an inbox of 4,000 articles you’ll never read.

Jorvik Daily News is built like a newspaper instead. Each morning’s edition is what your feeds published today. The ones from yesterday rotated off the front page. The ones from last week are gone. There is no backlog, because newspapers don’t backlog.

It’s an opinionated reader, and the opinion is this: read what catches your eye, and let the rest go.

Today’s paper, not today’s inbox

The app publishes one edition a day. Articles dated within the local calendar day flow into the paper; items older than midnight don’t appear, however unread they are.

Through the day, feeds re-fetch on each clock-hour boundary — 09:00, 10:00, 11:00 — and new same-day items accumulate into the running edition. The fetch timer re-arms after wake-from-sleep so updates don’t miss during long computer sleeps.

The front page leads with a single dominant story (image-preferring, recency-weighted), and a three-column masonry grid of secondary stories flows below. Sections beyond the front page get their own pages, navigable with commandleft and commandright or with the floating page indicator at the bottom of the viewport.

The front page of an edition: a dominant lead story, a masonry grid of secondary stories below, section pages signalled in the page indicator.

Sections that learn

Every feed belongs to a section: News, Tech, Culture, Business, Sport — or any custom section you create. Each section becomes a page in the edition.

Behind the scenes, an in-app classifier learns from the moves you make. Right-click any article, choose Move to…, pick a section, and two things happen: that article is pinned to that section permanently, and the classifier trains on the move. After three sections each accumulate three or more training documents, the classifier starts predicting sections for new articles automatically. Until then, articles fall back to their feed’s declared section.

The classifier is heuristic, not magical — a naive Bayes implementation with Laplace smoothing, English stopword filtering, and a length filter on tokens. It’s wrong sometimes. When it is, you correct it once and it learns. The model is yours; nothing leaves your Mac.

A section page showing the masonry layout flowing across multiple feeds.

A reader, not a redirect

Click a headline and the paper makes way for a clean reading view — not a modal, not a popup, just the article. Mozilla’s Readability extracts the main content from the source page; a serif stylesheet renders it at a fixed 680 pixel column width, dark-mode aware.

No ads. No trackers. No pop-ups. JavaScript is disabled in the reader pane, so nothing on the page can run — not even the keychain prompts some sites push for “WebCrypto Master Key” access. The reader uses ephemeral WebKit sessions, so no cookies, local storage, or site data persist across sessions.

If Readability can’t parse the page (paywalled sites, JavaScript-rendered SPAs, strange CMSes), the reader falls back to the feed’s summary plus an Open in Browser button. You always have a way through to the original article.

The distraction-free reader: serif type, fixed column width, dark-mode aware, no clutter.

Feeds without anxiety

Feed management is its own pane. You can:

Each feed shows a health pill next to its name — green if its most recent fetch succeeded, amber if it’s currently failing but succeeded within the last 30 days, red if it’s been failing for longer or has never succeeded. The pill makes a 300-feed collection actually manageable: at a glance you can see which sources have gone dark.

The Manage Feeds pane: feeds organised in sections with health pills, search bar, and OPML buttons.

Quietly good plumbing

Things you don’t notice unless they’re absent:

What it doesn’t do

Keyboard shortcuts

ShortcutAction
commandNAdd a feed
commandRRefresh now
shiftcommandFManage feeds
shiftcommandOImport OPML
shiftcommandEExport OPML
command1Front page
commandleft / commandrightPrevious / next page in the edition
escBack to the paper from the reader

Auto-update

Updates are handled by Sparkle. The app checks for new versions automatically once a day in the background and surfaces them as a non-modal alert. You can also trigger a check from Jorvik Daily News → Check for Updates… at any time.

Requirements

macOS 14 (Sonoma) or later. Universal binary (Apple Silicon and Intel).

Installation

The recommended path is the installer — it bypasses macOS’s download quarantine and App Translocation, so the first launch is clean.

  1. Download JorvikDailyNews.pkg and double-click to install
  2. Launch Jorvik Daily News from your Applications folder
  3. Add a feed (commandN) or import an OPML file (shiftcommandO) to begin

If you prefer the .zip: download JorvikDailyNews.zip, unzip, and drag Jorvik Daily News.app to Applications. Subsequent updates flow through Sparkle either way.

Building from source

Jorvik Daily News builds via the shared Jorvik release.mk. With the jorvik-release sibling repo cloned alongside it and GNU Make 4 installed:

  1. Clone the repo: git clone https://github.com/PerpetualBeta/JorvikDailyNews.git
  2. Run gmake release
  3. The signed, notarised, stapled .pkg and .zip land in .build/