Session: Plugin architecture / interoperability / compositing ecosystem for Fediverse communities
/2023-09/session/3-a/
Convener: Anca (@anca@mastodon.xyz), email: anca@techliminal.com
Notes
What we want from this:
-
See what it’s about
-
how to deal w/ the “usability catastrophes” - I share different things in diferent places but I want them to follow “me”
- I want to compose these services so I can present myself inthe world in the various facets that
-
Making plugins and extensions to the activityPub data model
-
Use case: Make an extension to support “recipes” https://schema.org/Recipe
-
Example of an activityPub extension that’s in decently heavy use now (emoji reacts atop likes) https://misskey-hub.net/ns.html
-
Social component: Develop something yourself, or convince someone else to do this.
-
Technical component:
- figure out the schema. Is there something that exists already (e.g. https://schema.org/Recipe)
-
Activity Pub is extensible w/out central coordination
-
Context, URL for the field name
-
Parse JSON data
-
Platform Metadata (e.g. Firefish, Mastodon)
-
Mobilizon, for example, is doing events
-
I’ve got a blog post trying to explain it, for devs unfamiliar with Linked Data / @contexts etc: https://medium.com/@codenamedmitri/understanding-linked-data-91b31ba544ec
-
also, helpful Wiki link written by Evan (editor of the AP spec): https://www.w3.org/wiki/ActivityPub_extensions
-
Bonfire:
-
Everything is a module, including ActivityPub, Front-End, Backend
-
Extensions can decide to use each model, depending on what they’re for.
-
Decoupled UI from BackEnd, so it’s easy to swap, to provide a differeent UX for users.
-
uses valueflo.ws (economic activities)
-
Bonfire GraphQL - we can render any activity in the Fediverse
-
We’re talking to other platforms
WordPress Social Model
Schema.org is great for inspiration, but not great for interoperability
We need to get segments of the fediverse together to agree on certain things - local community agreements, on specific things (e.g. how to represent names in a RTL locale)
Join the https://fedidevs.org/: https://matrix.to/#/#fediverse-developer-network:matrix.org
Look at what the IndieWeb folks, microformats folks are doing for their process. Proposals get added to standards only if there are a certain number of implementations.
As a developer, it wold be nice to have a thing that shows me how to stuff
WebComponents: UI for showing and interacting w/ data. Why aren’t we using those?
Higher level of standardization beyond protocol level
What if we use iFrames?
-
Minimum viable community
-
Security issues
-
If you add the
sandbox
attribute to an iframe element, you can disable scripts completely.
What is the business case for fediverse? (maybe a conversation tomorrow)
Ivan from Bonfire:
-
When people set up Bonfire, they can choose which modules to use. Developers create extensions, users can customize what shows up on their screens
-
For sustainability: we’ve partnered w/ a hosting cooperative