Show HN: Artemis, a Calm Web Reader
artemis.jamesg.blogEarlier this year, I made a web reader that only showed a list of post titles, author domains, and links. The reader only updated once per day, so I wouldn't feel compelled to keep checking for new posts.
I have been using the tool, which I called Artemis, for several months. Every morning, I looked forward to my "morning paper" of blogs I love reading.
There are no notifications, read vs. unread states, counts of posts, etc. Only the last seven days of posts are available. The colour scheme is changeable. Dark mode is supported. All popular feed formats are supported.
There is no reading interface to read blog posts; rather, the links take you to the authors' websites. Many of my favourite bloggers put a lot of effort into the design of their blogs and like to change things up; I wanted an experience that embraced that.
The reader is now available for anyone to use (with invite code "hn").
I have been thinking of creating a similar app; however I wanted to do a "Sunday paper". This look nice and I like the minimalist design, but I would prefer to have solution that I can self-host.
The tool actually is open source, so you could self-host it if you wish. MIT license, in Python. The repository [1] is linked in the blog post the author wrote about the project [2].
[1]: https://github.com/capjamesg/web-reader
[2]: https://jamesg.blog/2024/11/30/designing-a-calm-web-reader/
The open source version is a bit different from the hosted one: the open source code involves running the polling script, then building a static site (which is how I run the site for several months as a single-user project).
I am planning to move the polling changes upstream soon and then figure out a plan for open sourcing the full project.
I've been thinking of it, too. And, I've created one a few years ago. It's been running 100% uptime and for free since then - lenns.io. I'd be happy if you give it a go and let me know what you think.
sfeed (https://codemadness.org/sfeed-simple-feed-parser.html) has basic infrastructure to do that
For those looking for something like this but that updates on your own schedule and handles more than just RSS, I built Digest - https://usedigest.com
This would be interesting as a project using the Miniflux API (https://github.com/miniflux/v2). That way it would already use my existing feeds and I don't have a separate "reading tool".
I created something similar a few years ago. It's been running fine for me and several other people. Its free, too. It's calm too, although it updates as often as 1-5 minutes.
I'd be happy if someone gives it a go and shares some feedback. I'd say it's quite similar to Artemis; however - you can set different priorities to the sources and the relevant topics.
Cheers - lenns.io
It would benefit from a screenshot of the actual UI. On mobile there is little that would make me want to register.
You know how we are with creating accounts just to have a glance...
The description looks solid to me, though.
Fair enough. I’ll setup a demo account, too.
That would be perfect.
A newspaper-like projects always gather interest of tinkerers. People love to do things like that for eink devices, export that to pdf to be displayed offline and so on
This could be a nice way to provide clean content, prefiltered.
I like the minimalist design. I built a similar daily feed for myself, using GitHub Actions to trigger a daily sync, FeedLand.com for managing subscriptions, and GitHub Pages for publishing. Artemis is much more user friendly.
https://github.com/robalexdev/feeds
https://alexsci.com/feeds/
Thank you so much!
This project actually started off as a GitHub Action to trigger a daily sync, with a Python script that polled pages and saved the results. A static site generator then built the site using the data from the polling process.
I love the design of your page!
I tried to import the OPML file exported by https://wordpress.com/read/subscriptions but it says "Failed to parse OPML."
Edit: just managed to find the support email. I'll send you the OPML file through it~
Apologies for the inconvenience. A fix has been deployed.
this is why HN is the best
Thanks a lot for the prompt support!
Thank you for the email. The OPML import is a bit of a newer feature so it hasn't had as much testing. I'll take a look to see what's going on and get back to you.
I love the idea of a simple, digest-style, mode. Might make some version of this for Instagram. There's nothing so important on Instagram that it can't wait for the next day.
Can you recommend a tool that could check an Instagram feed once a day for the current photos? I found a command line tool, but it tries to download the whole account, rather than just the daily updates.
https://instaloader.github.io/
That's exactly the tool I would use. There are options you can use to configure what posts are downloaded:
https://instaloader.github.io/cli-options.html#which-posts-t...
https://instaloader.github.io/basic-usage.html#filter-posts
Actually, I made a mistake. That tool I haven't got working yet because of the necessary authentication. I've been using this one without auth, but it downloads everything.
https://github.com/mikf/gallery-dl
Unable to add my blog[1] hosted on Cloudflare. Is it an issue with CF?
[1]https://rishikeshs.com
Hello there! Did you receive an error with your RSS feed (https://rishikeshs.com/index.xml) or the JSON feed (https://rishikeshs.com/index.json)?
I am able to successfully poll the RSS feed, but the JSON one is returning an error. Only JSON Feeds that conform to https://www.jsonfeed.org/version/1.1/ are parsable by the software.
This one: https://rishikeshs.com/index.xml
Is it an issue with Cloudflare blocking the bots?
This looks great! Congrats on shipping.
Have you considered open sourcing it? I would rather self-host something like this.
It is actually open source, though I'm not sure if it's linked directly on the site. (It is linked in his blog post.) The repository: https://github.com/capjamesg/web-reader
Ah, thanks, I missed it.
Looks like it's already open source: https://github.com/capjamesg/web-reader
Why does every show HN post attract beggars?
Isn't updating once a day a bit too rare for content heavy websites, like HN? I use online RSS reader just to keep up with all updates when I am not online. With updates once a day I'd probably be using desktop RSS reader app.
I believe the idea is to have a source that updates infrequently, so that one isn't compelled to refresh it all the time.
It's not unlike one service that I saw where you'd get email once per day in your inbox, at a specific time.
Unfortunately a one day delay is too late to participate in a HN discussion.
https://artemis.jamesg.blog/app
Really like this.
Technical question: how are you dealing with feeds blocked by cloudflare protection or captchas?
Good question. I haven't found this to be an issue yet, perhaps because of the infrequency with which resources are accessed.
With that said, I can't guarantee this is not an issue. There are a few feeds that return errors that I need to investigate.
[dead]
Message the authors about this. Most website owners don't know their cms is also creating a rss/atom feed. Sometimes it took awhile, but I had moderate success with it.
thanks. I pay for miniflux through pikapods that I can now get rid of, thanks to your free and alternative offering.
Awesome!
For reference, and not implying it's better or worse than your work OP, I've pleasantly used Fraidycat (https://fraidyc.at/) in the past. It's a webextension, so completely local, and also incorporates the idea of having a "calmer" experience: no infinite list of links to check, different update rates, ...
I love your philosophy page, OP ! (https://jamesg.blog/2024/11/30/designing-a-calm-web-reader/)
Thank you! I think how something is made, and the decisions that got it to where it is, is just as important as the thing itself.
One of the delightful things about the web is we can all bring our own ideas and designs to problems.
I haven't written about this yet, but one thing on my mind is the importance of good import/export features. With good import/export features, we can all move around and try different softwares to see which ones we like!
Indeed, import/export is one of the most important design point centering control back to the user, and even better is abstracted storage of data: if I had a single OPML file accessible from everywhere (with auth, of course) and all tools took the universally accessible path, I could change feeds in one tool and automatically see the result in another without fussing out import/export buttons and procedures.
What's a good place to discover high-quality RSS feeds these days?
I'm curating a collection here https://minifeed.net/blogs/
Aw dang, looks like I can't subscribe to it in my feed reader. Still, this is a great collection. Thanks for sharing
Do you mean to subscribe to the whole collection, one RSS feed for all the blogs in my list? I mean, I guess I can build that feature, but it's gonna be quite a firehose.
Not sure what parent meant, but the right way should be an opml file with the feeds, which the feed reader then can import. But maybe you are offering that already?
Here, I quickly put together an OPML generator: https://minifeed.net/blogs/opml.xml
Whoa, you did not have to do that! Thank you so much :)
Ah, sorry, that makes perfect sense. Not yet, but I plan to implement this soon.
My impression was that they wanted to be notified of new blogs via RSS, not the content of the blogs.
But I could be wrong
One tip: Every Substack has a feed, which is a nice alternative to having everything dropped in your email in-box. You just append "/feed" to the end of a newsletter URL, e.g. https://simonw.substack.com/feed.
I've been doing adjacent work for my search engine[1], and found substack to annoyingly be one of the sites that employ bot mitigation for its RSS endpoints. If you fetch at a very low rate it works fine, but for these types of bulk retrieval.
Substack is also a bit of a pain to integrate with because they have zero useful contact information and direct all inquiries to a chatbot that is beyond useless, makes it so you have to guess how they want you to interact with their servers since there is nobody to answer questions.
[1] Preview of my take of the idea: https://mastodon.social/@marginalia/113670235590972416
I wonder if Substack would at some point remove or at least cripple this feature. Right now it seems the full-content RSS is served.
I think the answer to this question _should_ be blogrolls, as in, you discover new feeds from the feeds you already like. We lost that when social media absorbed the social graph, but blogs and feeds are in vogue again.
I built a site around programmatic blogrolls (sites that publish an OPML file of their recommendations using a specific format). I collected a bunch of initial subscription lists[1], which are curated lists, "planets", and web rings. The I spider out from there. The aggregate list is too diverse, and definitely has some low quality content, but connections between blogs are useful for discovery [2].
[1] https://github.com/robalexdev/rss-blogroll-network/blob/main...
[2] https://alexsci.com/rss-blogroll-network/discover/feed-ff6cc...
I added one of the random RSS feeds from https://indieblog.page/rss. I’ve discovered cool blogs this way that I now subscribe to directly.
That's a very cool idea!
Awesome job!
I am working on a site, which is very pre-beta at this point, that works to help solve this problem using bluesky's "starter pack" model. Basically sharing curated lists of good follows. Give it a look at https://feed.computer if that seems interesting!
Heh, that was my question too once I signed up.
I think OP’s project is a nice place to potentially have some default feeds. Both for purposes but also because it’s nice to see some interesting content once you sign up. Maybe even just major news items.
i made a directory of indie creators from across the web here, which i'm not sure what to do with: https://fanzine.world/
I believe you can RSS most of them. certainly all the substacks.
Create a reader like Artemis and wait for people to upload their own bookmarks?
I'm just picking the rss for the links I like on hn
I think this is a really interesting area. I wrote a command line took for web reading with some similar motivations. In my case, you queue up the articles to read the next day.
https://muxup.com/pwr
Nice!
P.S. I love the colour choices and the colour stripe interactions on your website. So cool!
HN hug of death - “Internal Server Error”
[flagged]