My Web Ring, mwr for short, is a local-first RSS reader that also supports non-feed webpages and youtube channels.
MWR is not a typical RSS reader: launching
mwr (or accessing it via http) will open your browser to an unread pseudo-random page.
Screencast.From.2025-04-25.15-19-02.mp4
Tired of doomscrolling on websites like Hacker News, I wondered if there could be a better way. I came to 3 realizations:
- Most content I actually care to read is already on blogs that provide feeds.
- I hate RSS readers.
- I do most of my exploratory reading during downtime/procrastination.
MWR works for me because it surfaces content pseudo-randomly that I actually care about. It has completely replaced doomscrolling for me.
I hate how RSS readers tend to make me feel behind: It's too easy for me to see the unread count and feel like I need to keep up. With MWR there is no pressure to read everything, and the page selection algorithm still favors newer content (more on that below).
What page you get from MWR when you ask for one is determined by a simple algorithm:
- All sources (feeds or websites) start at weight 10: you can change weight on a source by source basis.
- Newer content is weighted higher than older content.
- Non-feed websites become "unread" each time you launch MWR, also start at weight 10, and have a "newness" score of 5 days.
Binaries are available from the releases page.
You may need to install sqlite3.
MWR includes a simple HTTP server so that you can use it without the terminal (in other words: on your
phone.) Running mwr server will start it on port 8090. Accessing the server simply returns redirects to
pages. I may expand this in the future.
❯ mwr --help
Usage: mwr [COMMAND]
Commands:
run Select a page and start the CLI interface (default)
open Select a page from a specific source
pull Fetch new pages (normally runs in the background on launch)
list List all sources
add Add a new source
mark-read Mark source as read
delete Delete a source
backup Backup sources and pages to stdout
restore Restore sources and pages from stdin
server Start the HTTP server
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print versionYoutube channels have secret RSS feeds:
https://www.youtube.com/feeds/videos.xml?channel_id=<channel_id>
You can find the channel ID by clicking "more" in the channel description, share channel, copy channel ID.