links is a local-first desktop app for building a personal reading stream from sources you care about.
The project has two core goals:
- Learn what links you actually want to read.
- Show you a curated list of links instead of an overwhelming firehose.
To do that, the app tracks sources, fetches posts, captures feedback, and uses an LLM to improve both post selection and source recommendations over time.
You maintain a list of sources:
- RSS feeds
- Blogs without RSS (scraped from configured blog pages)
When you press Fetch, the app:
- Pulls new entries from configured RSS feeds.
- Crawls configured blog pages and extracts likely post links.
- Deduplicates links and adds new candidates to the New queue.
You review links and mark them with:
- Thumbs up (liked)
- Thumbs down (disliked)
This feedback is persisted and used as preference signals for the LLM and source scoring logic.
The app also works on discovering new sources you may like.
For source suggestions, the LLM is informed by:
- Historical post feedback (likes/dislikes)
- Prior suggested sources and their outcomes (accepted/rejected/deleted)
The LLM then proposes new sources that can produce future reading candidates (currently strongest support is RSS suggestions, with blog source tracking and blog crawling in place).
The current architecture is aligned around a feedback loop:
- Ingest from sources.
- Capture explicit preference signals.
- Use those signals to improve filtering and recommendations.
- Repeat.
This is designed to converge toward:
- Better prediction of what you want to read.
- A smaller, higher-quality list of links in the New tab.
The intended end state is:
- An LLM that improves continuously from your feedback.
- A calm, curated reading experience rather than an ever-growing backlog.
See RUNBOOK.md for setup, run, test, packaging, and release steps.