gay robot noises

Announcing sub-rosa 1.0.0

A tool for turning Patreon e-mails into RSS feeds.
390 words

Patreon's core way of letting content creators interact with their patrons is by effectively hosting a blog that's ACLed so that only people who pay enough money can read the posts; patrons can also see a stream of all of the new posts across creators. In a better world, they would offer each user an RSS feed, or even a feed per creator. But they don't, because it's 2021 and nobody likes doing third-party interop anymore.

And while there is an API, it comes with this caveat:

Although we will continue to provide select support and ongoing maintenance of the API, we will have limited capacity in the near term to respond to questions through the developer forum.

which, from my experience with startups, means 'don't use this for anything you care about'. And it seems far more focused on providing integrations for creators than for patrons. Plus, you have to deal with OAuth, and making an open-source OAuth application is annoying because of secret management.

I could have scraped the actual website, but that's an intensely unpleasant idea and it means I'm forever in a game of cat-and-mouse with trying to fool any kind of anti-scraper logic they add.

Fortunately, Patreon sends e-mails. They have the full text of the post (and the first image if there are images), they can't do any dynamic bullshit because e-mail clients don't render JavaScript, and they can't use cookies because mail clients won't have them. It's perfect!

... well, not really. I still have to parse the HTML, and it looks like the image and post links expire after a certain amount of time. But it's good enough.

So I wrote sub-rosa, which is a program that will parse your Patreon e-mails, generate RSS feeds (technically Atom feeds, but who cares?), and copy them to whatever hosting you like. If you use miniflux, it'll add them for you. And if you use Nix like me, it even has a flake with a module you can use to set it up as a systemd service with a timer!

It's not a big project, but it's the first real project I've released in almost a decade, and I'm feeling pretty proud of that.

(p.s., if someone from Patreon sees this: please, please just give me a real RSS feed?)

// α-5/h