buttondown / roadmap

Buttondown's public roadmap
51 stars 0 forks source link

ActivityPub integration #2267

Open miscemw opened 7 months ago

miscemw commented 7 months ago

Allow cross-posting to ActivityPub-enabled apps like Mastodon, Friendica, and so on.

jmduke commented 7 months ago

Definitely want to do this. My main blocker is lack of knowledge/literature; I think I need a better mental model of what "publishing" is in this context.

jmduke commented 5 months ago

I've spent the past two months trying to gather more information about the right way to handle this. I think I have a good grip on it (though this is a living document!)

TL;DR

In sum, this means that ActivityPub users should be able to follow and comment on any Buttondown newsletter (that has opted in), and authors will be able to see their following + engagement within Buttondown proper.

Rough plan of attack

Open questions

Out of scope

Some useful links

  1. https://forum.djangoproject.com/t/kepi-an-activitypub-server/6859
  2. https://github.com/jointakahe/takahe
  3. https://forum.ghost.org/t/federate-over-activitypub/1989/53?page=3
  4. https://wordpress.com/blog/2023/10/11/activitypub/
  5. https://checkmyworking.com/posts/2023/02/experiences-writing-an-activitypub-server-in-python-with-django/
rghedin commented 5 months ago

Nice, @jmduke! Since we're dealing with a newsletter service, I wonder if ActivityPub allows this scenario:

So, when following a Buttondown newsletter on fediverse, it doubles as a following (to fediverse account) and subscribing (to Buttondown newsletter).

jmduke commented 5 months ago

@rghedin Do you know of there being a strict method of going from "actor ID" → "email address"? AFAICT, such a lookup does not exist, though agreed there's a lot of interesting design implications if it does!

rghedin commented 5 months ago

I have no idea, @jmduke 😬 Just a thought I had. For a while Twitter offered something like this with its Revue services. It was very easy to sign up to newsletters there. (There are some advantages in a centralized, closed-source model, after all.)

renchap commented 5 months ago

Email addresses are personal data, and are not federated through ActivityPub.

levdotlc commented 4 months ago

My opinion is that bringing comments from the Fediverse to a newsletter page is a must! To have comments from Mastodon, Threads etc.. but displayed on your own page, that what I see many developers do for their websites. And I understand that custom domains are a hassle, but maybe we could see something like @bd.social or buttondown.pub because the "buttondown.email" is not only long, but a bit deceiving!

rkingett commented 3 months ago

I would also like to know how the process would work if I wanted to move my Mastodon followers to ButtonDown?

earth2marsh commented 2 months ago

I just stumbled upon this issue (Updates from May > Roadmap > here!). The 1-way "distribution" opportunity (where subscribing via fedi is an alternative to RSS or email) might be a place to start, but the bi-directional possibilities are what really excite me because it invites participation.

Some similar patterns to consider (prompting to auth as necessary?):

  1. Similar to Emoji reactions in Google Docs, highlight text and then give a quick, picto-graphic response. 💡 This would create a pre-formed Toot for the reader's account that quotes the highlighted text, adds that emoji, and includes a link to the original post.
  2. Similar to Google Doc's comments, a comment could be made about the highlighted text. This would create a Toot that quoted the text, add the user's comment, and include a link to the post. (see also Medium's highlight features!)
  3. The post author can publish a summary Toot (or thread of Toots) to a fedi account under their preferred id. Then when users "like" with the ❤ at the end of the post (email or archive on the web), it would heart that summary Toot. (and a count of likes!)
  4. Keep trackbacks for these interactions, so as to surface those reactions/comments as highlights in the original post with some way to follow the track backs.

If I had more time, I'd add more detail, but hmu if you ever want to talk any of these through.

jmduke commented 1 month ago

@earth2marsh apologies for the delayed response — it turns out when you create 500 github issues you get lost in the notifications deluge!

Strongly agreed re: bi-directional being where the real juice is, so to speak. There's some great prior art with Quotebacks along these lines.

catdevnull commented 1 week ago

I have a bit of experience doing something pretty similar in social.distributed.press, would love to chat about it