🏠 back to Observable

author profile images as icons for RSS feeds?

Currently RSS feeds use the Observable logo / favicon as their icon. (Based on a feed reader looking up the icon from observablehq.com.)

From what I can tell skimming around the web, if an atom:icon element is included in feeds, many (most?) feed readers will show that icon for the feed. Author profile images would be generally more useful icons than the Observable logo for author feeds.

(I haven’t tested though, and am not an expert on feed xml and feed reader compatibility.)

3 Likes

For context, my RSS reader currently looks like:

Having separate per-author icons would help relate the view there to the view on observablehq.com

To avoid making too many new threads, I am going to just put more RSS/feed comments here as they come up. Reading around the web about this a bit, I didn’t realize that RSS compatibility is so complicated.

Currently all Observable RSS feed items just contain:

    <title> the title
    <link> a URL
    <description> clickable thumbnail, no text
    <guid> the same URL
    <pubDate> a timestamp

These should probably also at least include the author, especially feeds involving multiple authors like the firehose of recent notebooks or the feeds for collections.

It would also be nice to have last modification date (I am not sure but this might even cause previously visited rss entries to show up as unread in feed readers when they are updated? a possibly desirable behavior), a description/summary of a couple sentences, and ideally a longer html content including the first few paragraphs and images of the notebook. It seems like the thumbnail image can be in a separate “image” tag instead of in the description.

As a supplement to an RSS feed, it might be nice to also add a jsonfeed version, which is a bit easier to consume, and probably also easier to produce, https://jsonfeed.org/version/1.1 – apparently in jsonfeed the “author” is a json object consisting of name, url, and “avatar” image url.

I generate my own RSS for my blog within Observable https://observablehq.com/@tomlarkworthy/rss-atom-feed

There is a preview link dynamically served from the notebook via a serverside-cell

https://endpointservice.web.app/notebooks/@tomlarkworthy/rss-atom-feed/deployments/preview

If you want a custom RSS feed, comprised of public information (which what you are asking is), then we could potentially roll our own. All technical hurdles have been addressed in my example notebook though its not in a form that promotes resuse ATM.

1 Like

That’s very neat Tom!

I don’t know if it is the best long-term plan to permanently support author or collection RSS feeds using an off-site proxy, but it would definitely be a good platform for building a prototype / testing RSS or jsonfeed features.

I don’t know if it is the best long-term plan to permanently support author or collection RSS feeds using an off-site proxy

I don’t know either but I am curious where your biggest concerns lie.

We’ve added <image> elements to the RSS feeds for authors. Hope this helps!

1 Like

Hmm. I’m not sure that changed anything here. I’ll try to experiment with Tom’s proxy and see what I can figure out.

Hey I tried using Feedly and it was okish

What RSS feed reader are you using?

BTW, I added Google Cloud Logging and enabled CORS for everything by default so the proxy is easier to use and debug now.

According to the W3C feed validator the image URL is malformed, because the “&” is not encoded:

https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fapi.observablehq.com%2Fdocuments%2F%40jrus.rss

When the “&” is replaced by &amp; (tested via the direct input method), the validator reports no remaining major issues.

This! I’m not sure how many things still only support RSS feeds, but JSON feeds are fairly widely supported, and, as I found out a couple of months ago when I did some web scraping to make my own, dead simple to implement as a serverless function (https://feeds.jedfox.com). If I were to make feeds in the future I would probably make them JSON-only unless there was a reason to do something else.