ThangQT

JUL 2026

project

← all projects

Threadline

A compact Hacker News and Lobsters reader with local discussions and adjustable feed ranking

§ notes

Threadline is a compact reader for community news. It blends Hacker News and Lobsters into one front page, with an Active feed ranked by source weights, recency, and comment counts, plus a Recent mode that is simply newest first. In October 2026 I rewrote it in Go: a single binary serves the bundled HTML, CSS, and logo, with no frontend build step and no JavaScript required.

Threadline front page showing the Active feed with Hacker News and Lobsters stories mixed together
The Active feed: one ranked front page across both sources, filterable by source and by Lobsters tag.

The server keeps discussions local. Comments are fetched, normalized into threaded trees, and rendered with collapse controls and a link back to the original conversation. HN discussions come through a fallback chain of providers (raw HTML, then Firebase, then Algolia), so a slow or blocked provider never empties the page. The feed itself is cached in memory with request coalescing and failure backoff, and the server rate-limits itself: HN fetches at least 30 seconds apart, Lobsters capped at 120 requests an hour. Logging in, voting, and posting still happen on the source sites.

A Threadline discussion page mirroring a Hacker News thread with nested replies
A mirrored discussion: threaded replies, collapsible, each with a link back to the original comment.

Ranking is tunable on the Settings page: a Hacker News weight, a Lobsters weight, an age half-life, and a comment weight. Preferences are saved in the browser, so the feed bends toward what you care about without an account.

Threadline settings page with ranking controls for source weights, age half-life, and comment weight
Algorithm tuning: tune the feed's temperament without touching a config file.

It ships as a Nix package with a NixOS service module, and crawlers are asked to stay away.

How it started

The first version shipped in July 2026. This is another side project, and I figured I did not want to host and maintain a running server for it. The functionality could mostly be built as a static site anyway, with a few small edge functions for feed aggregation and the Lobsters proxy, so I kept it static-first.

If you have explored my projects, you might have come across Readn, which is a fork of Yarr. It already has built-in discussion fetching for Lobsters and Hacker News, so why build this? RSS is good, and it intentionally removes a lot of noise: points, comment counts, ranking, and the urge to keep checking the same front page. But sometimes I still want that front-page feeling. I want to see which links are active, whether new discussion has appeared, and what is happening across both sites without opening each one separately.

The first Threadline front page in list layout
The first build's default list layout: compact, source-aware, and tuned for scanning headlines quickly.

The problem with a normal RSS reader is that once I read or archive an item, it is gone from the current flow. That is usually a feature, but it also means I lose the habit of checking whether a link picked up an interesting discussion later. Threadline is my attempt to keep the useful parts of the HN/Lobsters front pages while making the browsing experience quieter and more personalized.

The first Threadline front page in sepia grid layout
A newspaper-style grid layout with sepia theme for a slower, more editorial browsing mode.

Another thing I wanted was to read the discussion while checking the original article. That became the read-here mode: on larger screens, the article opens beside the comments, so I can move between the source and the conversation without losing my place. A lot of sites block embedded viewing, but it is still useful often enough to keep.

The first build's inline article reader beside discussion comments
The old read-here view kept the article and discussion side by side. The Go rewrite traded it for a zero-JavaScript page.