Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reading

The reader is served as static HTML, with no JavaScript. Every page works identically on a Kindle's built-in browser and on a desktop.

Views

ViewPathContents
All stories/Every subscribed feed merged, newest first.
Feeds/feedsOne feed per row; tap a feed to see just its stream.
Groups/groupsOne group per row; tap a group to see its feeds merged.
Article/item/{id}The extracted article for one entry.
Read later/read-laterEvery bookmarked article, newest bookmark first.

Every listing row shows the title, the source host, and a bookmark icon. Tapping the title opens the article; tapping the icon toggles the bookmark.

Listings paginate at twenty entries per page. Previous and Next links appear at the bottom when there is more than one page.

Bookmarks

The bookmark icon next to every article toggles the "read later" state. Toggling it does not change the page: the row's icon flips from outlined to filled (or vice versa) and the browser scrolls back to that row.

/read-later lists every bookmarked article. A bookmark keeps its title and URL alongside the article id, so a saved article stays visible even after its source feed rolls the entry off. Tapping a bookmarked article whose body has been purged re-extracts it on demand.

Bookmarked articles are exempt from the purge job. Removing the bookmark makes the article eligible for purge on the next sweep.

Images

Every image in a rendered article is downscaled to fit within 1200×1600 pixels, flattened to a solid background, and re-encoded as JPEG at ≤150 KiB. Results are cached; the same image renders from local disk on subsequent views.

Images the transcoder cannot fetch or decode are replaced with the image's alt text.

Non-HTML articles

When a feed entry points to a PDF, an image, a video, or another binary file, the article page renders a short notice and a link to the original URL. The Kindle's built-in viewer opens the link natively.

Detection uses the response's Content-Type header, falling back to the URL's path extension (.pdf, etc.).

When extraction fails

Some sites refuse HTML to server-side requests, either through paywall gates, JavaScript challenges, or IP-based bot detection. When the extractor cannot fetch the article, the article page renders a short notice and a link to the original. Tapping the link opens the article in the Kindle's browser, which fetches from the device's IP and often succeeds where the server-side extractor does not.

Failed extractions are not cached; a later tap retries from scratch.

Density and theme

Two links in the top nav toggle layout preferences:

  • Density — default or compact (more rows per screen).
  • Theme — light or dark.

Both are sticky per browser via a cookie. The initial state for a new visitor comes from view.compact_default and view.dark_default in the configuration file.

For a one-shot override without touching the cookie, append a query parameter:

/?compact=1     # compact for this request
/?compact=0     # comfortable for this request
/?theme=dark    # dark for this request
/?theme=light   # light for this request