Collect stories from different sources (RSS, Hacker News, Lobsters or Reddit, custom), so you can stop scrolling through those sites all day and look at each story once. Available as desktop app for Electron, side-panel extensions for Firefox and Chrome, and Capacitor applications for Android and iOS.
Latest releases include:
- Windows Electron app (Squirrel installer with automatic updates, plus a ZIP)
- Linux Electron app (
.deband a portable ZIP) - macOS Electron app (
.dmgand ZIP for Apple Silicon and Intel; ad-hoc signed, so the first launch needs Control-click → Open) - Firefox extension
- Chrome extension
Android and iOS builds share the version number but are not published yet; see Development to build them.
- Collect and merge stories from different sources
- Mark stories as read or skip them
- Search local stories and online on the different sources
- Sync state via couchdb
- Filter stories based on keywords
- Dark and Light theme
- Reader mode, with saved article text for offline reading, read aloud with the system voices or the bundled offline voice, and find in page
- Per-source cache timing and cache-first launch
- Keyboard navigation and per-platform story buttons
- Add-ons: collectors, presenters, trays and actions, installed from a URL, folder or ZIP; the AI "What? Wait, who, why?" add-on comes bundled and can be removed
- Firefox extensions in the embedded browsers: uBlock Origin and Violentmonkey are bundled on Electron and Android, and any signed Firefox extension can be installed
npm ci
npm run checknpm run check lints and type-checks the workspace, validates source structure,
dead code, and package boundaries, and creates development builds for the
browser extensions, Electron, and mobile targets.
# Browser extensions
npm run build:extensions
# Electron desktop app
npm run start:electron
npm run test:electron
npm run make:electron
# Capacitor mobile apps
npm run run:mobile:android
npm run run:mobile:ios
npm run test:mobileBrowser build outputs are written below apps/firefox-extension/dist and
apps/chrome-extension/dist, separated into dev and release directories.
Load the relevant channel directory as a temporary Firefox add-on or an
unpacked Chrome extension.
- Development: installation, local workflows, testing, and packaging
- Architecture: platform design, package structure, and boundaries
- Code map: composition roots, feature ownership, generated code, and where to start common changes
- Collectors: source loading, built-in collectors, and Geny Match selector configuration
- Add-ons: the manifest, the script API, collectors, capabilities, and how add-ons are installed and run
- Built-app visual comparison: deterministic screenshots, historical baselines, and computed-style JSON
- Releasing: versioning, cutting a tagged release, and CI publishing
- Extension compatibility: what the embedded browsers run, installing Firefox extensions on Electron and Android, and the API limits
- Android reading media: background playback with notification controls
- Design system and design tokens
- Roadmap
