A tiny feed reader
2026-10-08 edit
I've got a very minimal RSS/Atom feed reader running on the badge. It's about 150 lines of micropython, excluding this tiny XML tokeniser called xmltok. It's not even a parser, but feeds are simple enough that it works fine. The feed list is just a text file on the server with one URL per line, that I can already edit in the browser. I was inspired by the minimalism of vore.website which I was previously using. I like the idea of just having one combined chronological feed, with no read/unread markers, just regular blue/purple links.
I haven't got the feed refreshing in the background yet. It takes a while to refresh because some of the feeds are fairly big. I've optimised the processing quite a bit, and the slowness is now in the actual request of the XML file. I think the way to tackle that would be to do an HTTP Range request of the first few KB of the file, to check if the feed has actually been updated (looking at lastBuildDate for RSS, or updated for atom).
When the feed is refreshing, you get a live view of which feed is being fetched. This doesn't use javascript or anything - the server endpoint can asynchronously output the response data, so it's like a terminal. To make this work over https, which is being handled by a proxy because I couldn't get it working reliably on the badge, I just have to pass a X-Accel-Buffering: no header in the response.
The code is not especially pretty, but there's so little of it it doesn't really matter. Software doesn't have to be complicated :)
