Yesterday I released Lagrange version 0.11. The headlining feature this time is Gemini Feeds, and that completes the list of features that I've wanted to include in version 1.0. 🎉
This is positioned as a light-weight alternative to RSS/Atom feeds. I find the spec elegant and trivial to take into use. IMO, anyone publishing content on Gemini should seriously consider supporting this format, since it provides both human-readable feed index pages and subscribable easy-to-parse feeds in one simple package.
Now, there's only so much that can be achieved in a week, but I decided to give it a go and implement support for this kind of feeds in Lagrange. As expected, the subscription backend was not a lot of work:
I expect some further refinements are needed for this feature for increased robustness, but the core functionality should be working well. (Knocks on the nearest wooden surface.)
On the user interface side, there are two ways to read feed entries: the Feeds sidebar tab, and a CAPCOM-like list of entries on a page. Why two methods? The sidebar is good for keeping track of read/unread status and provides a way to manipulate the entries and feeds in a more powerful way (via context menus), while a CAPCOM-like page can be searched, copied, saved, etc. just like any other Gemtext page. Also, one can keep the sidebar visible to the side when reading a larger number of entries.
Here's what it looks like:
Now you may be thinking, let's do RSS/Atom feeds too since those are prevalent on the Geminisphere. I'm disinclined to do that for a couple of reasons. RSS is "of the web" — it's cumbersome, complex, and needlessly feature-rich. Should article content included in the feed be supported? How about feeds fetched via HTTP proxies? What you'd have then is a full-blown RSS reader, and I think it would dilute Lagrange's purpose and generally be a development time sink. Better to run an Atom-to-Gemini feed aggregator on some server and let clients focus on the user experience side of things.
Of course, there are avenues for future improvement that I believe are in the right spirit for Gemini. The subscribed pages could easily be tracked generally for content changes, and those could be shown in the Feeds list as well. All newly added links could also be tracked similarly, for following more general-purpose pages. At present I'm prioritizing these below finishing version 1.0.
Speaking of version 1.0, the 0.x releases have been quite the coding whirlwind, and it would be good to take a breather — especially with the holidays right around the corner. Releasing 1.0 before the break would make sense. The bug tracker has a few important issues to take care of, though, so expect a couple more 0.x releases.