Apas: ActivityPub via email
https://apubtest2.srcbeat.com/apas.html
The overarching goal is an experimental system to make ActivityPub federation stuff clearer for devs, sysadmins and advanced users.
The documentation is incomplete and the code is really not OK! But they always say it’s better to get stuff out the door for others to look at sooner. Maybe it inspires others to think about the Fediverse/ActivityPub in weird new ways!
PS thanks @emersion for your SMTP work!
Very interesting. It would certainly make doom scrolling harder. Email always feels more personal, like each message was sent specifically to me for a reason. As opposed to feeds, which feels like looking at cars as they drive by.
I think this system pushes against those boundaries. This sort of concrete brainstorming at the edges is such a crucial part of software evolution, so thank you.
That’s awesome!
I would actually love this. I use email for everything, it is so nice to have everything come to the same place. Right now I follow a few Mastodon users via an RSS-to-Email service, but the problem with that is that you can’t follow private accounts/see followers-only toots. It would be great to have a full email bridge.
I was considering making this myself at one point. But I think one of the big problem with ActivityPub is that it describes a single particular account. So if my ActivityPub-email bridge was running you wouldn’t also be able to access a Mastodon UI and for example browse other posts. So my account would need to be email-only which would be missing UX for a lot of things (like commenting on a random post I was linked to).
Right now I follow a few Mastodon users via an RSS-to-Email service, but the problem with that is that you can’t follow private accounts/see followers-only toots. It would be great to have a full email bridge.
Ah yes know exactly what you mean. I follow Mastodon, PieFed, Lemmy stuff via RSS too.
I have a little program which follows/unfollows:
apfollow kevincox@lemmy.ml apfollow -u kevincox@lemmy.ml
Then things get delivered to my inbox. That’s been working ok. I’m adding a “Following” section to the docs soon.
But I think the main idea is getting Activity into a RFC5322 message in a filesystem. The system doesn’t really care how that file is written. It could be from an ActivityPub server sending stuff to you. But it could also be from reading a RSS feed and fetching the items. My first stab at this was actually a couple of scripts which dumped my Mastodon timeline and some Lemmy stuff to message files.
So if my ActivityPub-email bridge was running you wouldn’t also be able to access a Mastodon UI and for example browse other posts.
What I do now is clunky. First, I’ve written a couple of very basic frontends using both the Lemmmy & Mastodon API. These expose the unique ID of each post, which I copy/paste around…
(like commenting on a random post I was linked to).
I run this command:
apubget -m https://lemmy.ml/comment/9266238 > comment.eml
Then open the file in a mail client, and reply to it. Like I said: pretty clunky! :D
One thing I’ve thought about is hijacking the header’s Subject field to hint to apas that we’re replying to something. Modifying Subject is exposed in more mail clients than being able to modify arbitrary fields in the header (ideally we set
In-Reply-To
). For example for this message I’m writing now:To: kevincox@lemmy.ml Subject: https://lemmy.ml/comment/9266238 Ah yes know exactly what you mean bla bla bla...
Taking it further, frontends could render
mailto:
links. Here’s one to reply to your message:mailto:kevincox@lemmy.ml?cc=fediverse@lemmy.world&subject=https%3A%2F%2Flemmy.ml%2Fcomment%2F9266238
Using Subject as both the
name
orinReplyTo
properties of an Activity depending on its value feels unclear.Reading RFC 6068, it’s theoretically possible that we could inject a
In-Reply-To
in amailto
URL. It’s up to the mail application to interpret it.mailto:kevincox@lemmy.ml?cc=fediverse@lemmy.world&in-reply-to=%3Chttps%3A%2F%2Flemmy.ml%2Fcomment%2F9266238%3E
This encodes the message:To: kevincox@lemmy.ml CC: fediverse@lemmy.world In-Reply-To: <https://lemmy.ml/comment/9266238> bla bla bla
Just tested and found that MailMate actually handles this. Still feels unclear… I dunno. What do you think?
I’ve updated the docs with new sections Receiving and Reading. See 2.3.1 etc. https://apubtest2.srcbeat.com/apas.html
Thanks for your comment as it helped me write down thoughts :)