a brief recap of what we did last night for those that couldn't make it:
We tried to wrap our heads around this federated web publishing protocol
ActivityPub. We collected notes and links here:
We started of with the very scarce implementation documentation that
exists, which are the top 3 links in the above pad. Aside from that
there is the official W3 specification which is super abstract and
perhaps more helpful for those needing reference to an existing
implementation than to those looking to learn from scratch.
However, these few sources do give one some clues to the structure of
ActivityPub. Which is based around JSON-Linked Data objects that
describe 'Actors', their 'Activities' and the 'Objects' they
these 'Activities' on.
The Linked Data aspect is the fact that in the standard one can always
expect certain information to be present in the JSON objects. (If I
understood this correctly, Luke?) Such as Actors always having an inbox
for their incoming messages. You don't know what the url for that inbox
is but the JSON document describing the 'Actor' will point you to that
Going from there we figured that the only way forward was to start
reading source code in often foreign languages. Reading through a list
of current implementations however, we came across Kroeg by Puck van
Meerburg who has written one of the first AP implementations and has
since done a lot of playful stuff around AP. Luckily for us, her website
runs Kroeg but has no web interface whatsoever.
So what the website returns are only the JSON-LD documents, raw AP.
This was super helpful get a practical working understanding of her
implementation but also of other software like Mastodon, since the raw
AP of Kroeg was also showing the AP api endpoints on other implementations.
So here is the AP view of one post on mastodon:
the same but web view:
So big steps in understanding thanks to Kroeg. I really recommend trying
Puck's website before she changes it back to something else.. (You might
want to install a JSON viewer/formatter, so you can click around and
follow the objects)
Also thanks for all that were there for all the observations, references
and remarks that really helped to get to this point.
We're hosting another meeting on Tuesday the 23rd of October from 19.30.
Feel free to join, also if you missed yesterday's meeting, we'll start
off with a recap!