The Fediverse with ActivityPub #11

Open
opened 2022-12-10 04:19:06 +00:00 by noah · 0 comments
Owner

Some ideas on how we could get nonshy to join the Fediverse (able to interact with Mastodon, Pleroma, PeerTube, PixelFed, or other federated social networking apps) by implementing the ActivityPub protocol.

There seems to be a Go module that already provides this: go-fed at github.com/go-fed/activity. This ticket will collect ideas on how to actually go about this.

Synopsis

The basic idea is to enable users the option, if they are so bold, to be able to share their Photos with the Fediverse and open up their nonshy user account to that world. For example, if my nonshy username is introvertnudist and I opted-in my profile for the Fediverse, then I could be followed by Mastodon users (or anybody else on the Fediverse) who could then see photos I upload that I want to publish to the Fediverse.

This feature would be opt-in for nonshy users. By default, nonshy is a "closed garden" private community and your user account is only discoverable by other logged-in user accounts, and some users can set their profile to "private" to limit their exposure only to friends within the site. Users also have an option, currently, to make their profile slightly more public - where they can share a link to their profile on social media, and non-members who click it can see a basic profile page showing only your avatar and name. Connecting your nonshy account to the Fediverse would similar be an opt-in ability for very non-shy users.

User experience

How this feature would look on the website for users who link their account to the Fediverse:

  • Users would have a toggle on their Settings to opt-in to federation features.
    • Their Fediverse handle would be their @username@nonshy.com
  • Followers
    • Remote users on the Fediverse should be able to follow nonshy users and subscribe to their posts.
    • It would make sense that nonshy users should be able to follow them, and so nonshy will need a UI to see your timeline from the Fediverse.
  • Users can publish their photos to the Fediverse
    • Could be a per-photo toggle on the upload page, like currently how the user can choose whether the pic goes in the Site Gallery or only on their page.
    • Would appear in Mastodon like a tweet with text (the caption) and photo attachment.
    • Remote users can "like" and comment on your post.
    • The nonshy user can control whether reblogs are permitted.
  • Add a "Feed" tab to the website nav bar.
    • It would have a "Local" and "Federated" feed compatible with ActivityPub posts.
    • nonshy users could see posts from remote users they follow as well as their own posts generated from their Photo upload.
    • nonshy users can like and comment on remote users' posts (reblogs onto nonshy don't need to happen yet)
  • DMs
    • Fediverse DMs can be worked in to the existing Messages page UI.

Supplemental features

nonshy users who don't opt-in to the Fediverse would still see some new features that it makes sense to implement along with this:

  • An ActivityFeed can be added to nonshy in general. Even if you don't join the Fediverse, you can still microblog small text messages which your friends can see on a timeline and like and comment on. The new "Feed" tab of the UI would be here but you would only see local messages from nonshy users within the site.

Technicals

We get to pick our endpoints, with ActivityPub only minimally requiring an inbox and outbox per user. Some ideas for the routes could be:

  • /pub/actors/<username> to get user bio
  • /pub/inboxes/<username> to push messages to the nonshy user
  • /pub/outboxes/<username>
Some ideas on how we could get nonshy to join the [Fediverse](https://fedi.tips/) (able to interact with Mastodon, Pleroma, PeerTube, PixelFed, or other federated social networking apps) by implementing the [ActivityPub](https://activitypub.rocks) protocol. There seems to be a Go module that already provides this: [go-fed](https://go-fed.org) at [github.com/go-fed/activity](https://github.com/go-fed/activity). This ticket will collect ideas on how to actually go about this. # Synopsis The basic idea is to enable users the **option**, if they are so bold, to be able to share their Photos with the Fediverse and open up their nonshy user account to that world. For example, if my nonshy username is introvertnudist and I **opted-in** my profile for the Fediverse, then I could be followed by [Mastodon](https://joinmastodon.org/) users (or anybody else on the Fediverse) who could then see photos I upload that I want to publish to the Fediverse. This feature would be **opt-in** for nonshy users. By default, nonshy is a "closed garden" private community and your user account is _only_ discoverable by other logged-in user accounts, and some users can set their profile to "private" to limit their exposure only to friends within the site. Users also have an option, currently, to make their profile _slightly_ more public - where they can share a link to their profile on social media, and non-members who click it can see a _basic_ profile page showing only your avatar and name. Connecting your nonshy account to the Fediverse would similar be an opt-in ability for _very_ non-shy users. ## User experience How this feature would look on the website for users who link their account to the Fediverse: * Users would have a toggle on their Settings to opt-in to federation features. * Their Fediverse handle would be their `@username@nonshy.com` * Followers * Remote users on the Fediverse should be able to follow nonshy users and subscribe to their posts. * It would make sense that nonshy users should be able to follow them, and so nonshy will need a UI to see your timeline from the Fediverse. * Users can publish their photos to the Fediverse * Could be a per-photo toggle on the upload page, like currently how the user can choose whether the pic goes in the Site Gallery or only on their page. * Would appear in Mastodon like a tweet with text (the caption) and photo attachment. * Remote users can "like" and comment on your post. * The nonshy user can control whether reblogs are permitted. * Add a "Feed" tab to the website nav bar. * It would have a "Local" and "Federated" feed compatible with ActivityPub posts. * nonshy users could see posts from remote users they follow as well as their own posts generated from their Photo upload. * nonshy users can like and comment on remote users' posts (reblogs onto nonshy don't need to happen yet) * DMs * Fediverse DMs can be worked in to the existing Messages page UI. ## Supplemental features nonshy users who **don't** opt-in to the Fediverse would still see some new features that it makes sense to implement along with this: * An ActivityFeed can be added to nonshy in general. Even if you don't join the Fediverse, you can still microblog small text messages which your friends can see on a timeline and like and comment on. The new "Feed" tab of the UI would be here but you would _only_ see local messages from nonshy users within the site. # Technicals We get to pick our endpoints, with ActivityPub only minimally requiring an `inbox` and `outbox` per user. Some ideas for the routes could be: * `/pub/actors/<username>` to get user bio * `/pub/inboxes/<username>` to push messages to the nonshy user * `/pub/outboxes/<username>`
noah added the
enhancement
label 2022-12-10 04:19:06 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: nonshy/website#11
No description provided.