Feeds

Created:
  • blog
  • devlog
  • programming
  • rss

Feeds? RSS? What are you on about? RSS is something I missed out on, and so did many others. RSS or Really Simple Syndication, is a way to curate articles all around the web. Think of it as builtin board that each website has where you can read what's posted. It's very much a Web 1.0 vibe, but it's still a great way to get news and blogs without bloat and algorithms getting in the way.

I recently switch to Android. This seismic shift caused me to question many aspects of my phone experience. I remember a while back trying to use RSS, but on iOS, there weren't any good free options. I settled on email as a way to get curated information, but it sucked. Half the time they just send you a link the the article instead of putting it in the email. With Android, I have access to high-quality FOSS RSS apps. Gone are the days of ads and crappy emails. Well, for the websites that have RSS.

I'm using Feeder and it works perfectly right out of the box. I love reading devlogs, but never remember to check back on their website. So this has been the perfect way for me to get some reading in.

Getting RSS On Here

My blog runs on Nuxt Content. It makes it really easy to write up a markdown document and have it be embedded within a page dynamically. At first, I assumed Nuxt would have me covered and offer a RSS API of sorts. This assumption was wrong.

Thanks to a really helpful post written by Rafael Magalhaes, I was able to use the NodeJS RSS package to implement it. Surprisingly, it wasn't that complicated since Nuxt offers a really nice query API for all content. Here is all the code it took to get RSS working:

import RSS from "rss";
import { serverQueryContent } from "#content/server";

export default defineCachedEventHandler(async (event) => {
    const posts = await serverQueryContent(event, "/blog")
        .only(["title", "description", "date", "_draft", "_path"])
        .find();

    const feed = new RSS({
        title: "Pink's Blog",
        description: "My personal blog about whatever projects I'm working on at the moment.",
        site_url: "https://thepinkhacker.com/blog",
        feed_url: "https://thepinkhacker.com/blog/rss",
    });

    for (const { description, title, date, _draft, _path } of posts) {
        if (_draft) continue;

        feed.item({
            title: title ?? "Untitled Post",
            url: `https://thepinkhacker.com${_path}`,
            date,
            description,
        });
    }

    const output = feed.xml({ indent: true });

    event.node.res.setHeader("content-type", "text/xml");
    event.node.res.end(output);
});

The Nuxt Route queries all blog posts and then plugs that information into the RSS package. Then, it responds with the XML data. I couldn't have asked for a simpler way of setting RSS up.

Feed My Feeds To You

I'm constantly on the search for more feeds. It's taken me a whole month to slowly remember some of the blogs I wanted follow. In order to make it easier for others, here are my—albeit small—selection of blogs:

Servo

Originally a project created by Mozilla, Servo is an experimental web browser framework built on Rust. Some of it is already in production in Firefox. The Linux Foundation took over the project after Mozilla lost interest. Development has slown as a result, but that hasn't stopped the developers from making good progress.

Gecko (Firefox) and Chromium are very well established codebases. Almost every website should behave when rendered. Servo on the other hand is still recent. For instance, many CSS tags aren't supported as of now. But yet, they're making a surprising amount of progress in their unit-tests. More and more of them are passing. I love to check up on their progress with each update. One day, I hope to use an entirely Servo-based browser.

Factorio

One of the first blogs I subscribed to. Factorio is a tower-defense automation game that me—and many others—have put far too many hours into. The developers are working on the allusive 2.0 update which adds significantly more content to the game. Recently, they've been working on improving the Linux version by adding proper Wayland support.

Modrinth

Modrinth is working on building a modding platform for the Minecraft community, by the Minecraft community. As a mod author myself, it's miles better than Curseforge. In a recent post, the founder talked about how they were returning their VC funding to better align with the community's interests. I think this is the right longterm direction for the platform.

Thunderbird

RSS hasn't been the only thing I've been checking out on Android. I was looking to replace Gmail, my email client. Thunderbird is my preference on desktop, but there isn't a mobile option, right? K-9 is a mail client named after the greatest dog of all time. Mozilla became the controlling party of the email client within recent times. Their plan is to turn it into Thunderbird for Android. I'm all on board with this.

The Thunderbird blog has really been a highlight of my RSS experience so far. I'm always ready for the next post from the team.

XKCD

"A webcomic of romance, sarcasm, math, and language." You most likely have read one of XKCD's comics before. If not, then I would recommend them to any geeky/nerdy readers out there who want a laugh. They're witty, smart, and so stupid all at the same time1.

Actually, 'RSS&M' is kinda catchy.

Final Remarks

I haven't been giving this blog the love I should. This coming year is going to be a very interesting point in my life and I would like to share it. There are so many projects brewing right now. I can't wait to share each one when the time is right. Also, I didn't mention it, but I got rid of the retched navbar and replaced it with a much better one.

Footnotes

  1. https://xkcd.com/624/