Show HN: Artemis, a Calm Web Reader

artemis.jamesg.blog

298 points by zerojames 2 days ago

Earlier 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").

aurea 2 days ago

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.

  • exprez135 2 days ago

    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/

    • zerojames 2 days ago

      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.

  • stanislavb 2 days ago

    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.

digest a day ago

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

dewey 2 days ago

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".

stanislavb 2 days ago

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

  • szszrk 2 days ago

    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.

    • stanislavb a day ago

      Fair enough. I’ll setup a demo account, too.

      • szszrk a day ago

        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.

8organicbits a day ago

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/

  • zerojames a day ago

    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!

kenrick95 2 days ago

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~

  • zerojames 2 days ago

    Apologies for the inconvenience. A fix has been deployed.

    • kenrick95 2 days ago

      Thanks a lot for the prompt support!

  • zerojames 2 days ago

    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.

xnx 2 days ago

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.

rishikeshs a day ago

Unable to add my blog[1] hosted on Cloudflare. Is it an issue with CF?

[1]https://rishikeshs.com

imiric 2 days ago

This looks great! Congrats on shipping.

Have you considered open sourcing it? I would rather self-host something like this.

butz 2 days ago

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.

  • jfim 2 days ago

    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.

    • thunky a day ago

      Unfortunately a one day delay is too late to participate in a HN discussion.

butz 2 days ago

Technical question: how are you dealing with feeds blocked by cloudflare protection or captchas?

  • zerojames 2 days ago

    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.

  • moehm 2 days ago

    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.

borg16 2 days ago

thanks. I pay for miniflux through pikapods that I can now get rid of, thanks to your free and alternative offering.

rakoo 2 days ago

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/)

  • zerojames 2 days ago

    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!

    • rakoo 2 days ago

      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.

mmahemoff 2 days ago

What's a good place to discover high-quality RSS feeds these days?

  • freetonik 2 days ago

    I'm curating a collection here https://minifeed.net/blogs/

    • dqv 2 days ago

      Aw dang, looks like I can't subscribe to it in my feed reader. Still, this is a great collection. Thanks for sharing

      • freetonik 2 days ago

        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.

        • onli 2 days ago

          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?

        • drdec a day ago

          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

  • CharlesW 2 days ago

    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.

    • marginalia_nu 2 days ago

      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

    • freetonik 2 days ago

      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.

  • 8organicbits a day ago

    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...

  • aharris6 2 days ago

    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!

  • hombre_fatal 2 days ago

    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.

  • quinto_quarto 2 days ago

    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.

  • rixed 2 days ago

    Create a reader like Artemis and wait for people to upload their own bookmarks?

  • charles_f 2 days ago

    I'm just picking the rss for the links I like on hn

asb 2 days ago

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

  • zerojames 2 days ago

    Nice!

    P.S. I love the colour choices and the colour stripe interactions on your website. So cool!

nahimn 2 days ago

HN hug of death - “Internal Server Error”