A plugin architecture for Fediverse?


Convener: Anca Mosoiu

Participants who chose to record their names here:

Loyal skeptic on the semantic web -

Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:

Emelia: I just want to note before this session starts that building plugins is likely to be difficult due to the plethora of programming languages used for developing Fediverse software, unless of course something such as WASM was used, where one plugin could be used by multiple platforms using a define plugin API.

This reminds me about sandboxing and protecting based on inputs, or having trusted plugins or expectations about the isolation level of the plugins and what they can do

are there plugins that need dynamic permissions vs knowing what permissions they should ask for that the user consents to at the beginning once, only per object, or dynamic?

collaborative editing spec for e.g. editing a group calendar event you have access to, vs organization accounts or an organization calendar user

plugins for the whole instance vs just per user (like wordpress multi-sites where you can choose which plugins are on which sites, but the instance sets which plugins are allowed/downloaded)

visual changes to the site

visual changes to the editor

telemetry plugin

easier uptime/health that’s simpler for admins

cross-server observability/roundtrips

hachyderm’s status page

not just protecting against bad behavior, but also plugins enhance good behavior e.g. observability data could be used to abuse things, telemetry wise

but folks might not like that data analyzed a bunch or

Consent: At the database level, as well as at the user level

  • Events example:
    • Editing the event (may be multiple people)
    • Saying “yes” i’m going (individual)
  • Oauth

Looking for things on a semantic level - Plugins at the data model level

Example: Someone wants to add events to their activity stream, this data is pushed.

Extensible at the protocol level

Distributed Wikis

Distributed Moderation

Use cases:

  • I want to add Event Calendars to my server so people can see whta’s happening
  • I want to add a new UI

How to test and sandbox

What’s your ideal plugin?

  • Something that can let me edit a page (e.g. for artists who want to list their discography, body of work)
  • Something for telemetry
  • How quickly do posts make their way across Fediverse?

Example of a post on a website that receives replies from Mastodon/ActivityPub: https://www.jwz.org/blog/2023/08/jwz-org-is-now-25/


Next time: Title this session “Why is WordPress the best ActivityPub server”