Fri 1 Jun 2018

ActivityPub as a decentralized OAE infrastructure?

Lynn Foster Public Seen by 415

Several of us have been looking more closely at ActivityPub (https://www.w3.org/TR/activitypub/#obj-id) as a mechanism for messaging between decentralized agents (people and organizations), as well as between apps. It currently is focused on social networks, but we think it shows a lot of promise in other directions too. We are focused on the economic aspects of an open app ecosystem in our discussions, and more integration of that with social aspects too.

And focused on moving towards an agent-centric architecture, some definitions of that here https://cryptpad.fr/pad/#/1/view/HCGmHSwjgSNEOONNPRLplA/CyJfwJFLO3RXcFysO0sGKmh4sGpiC4XRMVc5CE7Ozdw/.

Here is an initial set of investigation and thoughts about how this could actually work. https://cryptpad.fr/pad/#/2/pad/view/oqXdr2rfGXO04U1UWo2CIiZoL1Z9lkNkhzF5jw6pZDk/.

Feedback welcome!


Jon Schull Fri 1 Jun 2018

Thiis looks interesting. It would be helpful to have a vision how people would use this utlity before jumping into a discussion of how it might be implemented. Is this e.g., a facebook replacement?


Lynn Foster Fri 1 Jun 2018

Good point. Briefly, ActivityPub is already starting to be used as more or less a facebook replacement, with federated social networks instead of one big platform. Although I should note that ActivityPub is a spec and there are a number of implementations. An example is Mastodon. Some people in this group use social.coop, which is a implementation of Mastodon.

This thread is about extending that ecosystem to also include economic activity. So people would use it for economic activity already supported with platform apps, such as timebanks, mutual credit, supply chain and manufacturing, distribution, crypto-currency exchange, etc. - anything we want to do economically in the "next economy".

This group is about "open app ecosystems", ecosystems of interoperable smaller apps. This thread suggests one way that such smaller apps could communicate with each other. One focus of the proposal linked above is that it can be a way that people and organizations can communicate with each other for economic reasons in addition to the social networking currently going on. The other main focus is that ActivityPub can be configured to work for an agent-centric network instead of (in addition to?) the federated system it currently is mostly used for.

Hope that helps.... :)


Danyl Strype Wed 26 Sep 2018

ActivityPub is already starting to be used as more or less a facebook replacement

At the risk of splitting hairs, I would say FarceBook is the one UX nobody is using AP for yet. It's being used for a:

  • birdsite replacement: eg Mastodon / Pleroma
  • Medium replacement: eg Plume, write.as
  • YouTube replacement: eg PeerTube
  • InstaGram replacement: eg PixelFed, Anfora
  • Reddit replacement: Anancus, Primso
  • GrooveShark/ SoundCloud replacement: FunkWhale
  • MeetUp replacement: GetTogether
  • PasteBin replacement: DistBin

All of these are 'social media', ie they are a means of publishing stuff to self-selecting 'followers', and the open web. In contrast, the UX that FB is built for is a 'social network', where users find pre-existing 'friends', and making 2-way connections that allow each other to access a range of private media they've shared. They may selectively share some of that publicly.

It would be awesome, but I'm not aware of any AP apps building anything like this yet. Diaspora is the closest so far, and it's really more like G+, and is the only federated app that has no plans to implement AP.


Tibor Katelbach Sat 2 Jun 2018

Hi Lynn , we have Activity Stream implemented since it exists 2014, we still have to do the activityPub structure , it's part of our 2018 plan
all the parts are allreday out there , we just have to put it into the api interfaces
Mastodon, and Peertube and many more allready implement it , like RSS syndication it allows seemless interaction through APIs and direct cross platform messaging which is really great
the use cases applied to Value Flows work great and you can even make activityStreams better with what's missing for VF.
By lack of time We aren't that good in giving things back to ActSream , we just create our new verbs when needed and use them locally since we still have little outside interaction. It's a great OAE approach and standard, it was listed here since qui some time https://github.com/pixelhumain/buildingCommons :)


Lynn Foster Sat 2 Jun 2018

Great, @tiborkatelbach :heart: ! When do you think you will start working on your ActivityPub implementation? Let's see if we can coordinate on it!


Danyl Strype Wed 26 Sep 2018

Hi Tibor, what's the name of the app/ package you will implement AP for? I'd like to add it to this list:


Tibor Katelbach Wed 26 Sep 2018


We implmenting it on Communecter.org

we have ActivityStream since à long time now

we just have to hook up the Activity Pub compatible API endpoints



Danyl Strype Tue 11 Dec 2018

@tiborkatelbach @julienlecaille any updates on your plans to implement ActivityPub in Communecter?


Tibor Katelbach Wed 12 Dec 2018

ActivityStream is implemented since 2014 ;)

all that's left to do is to find the time , to implement the apis exposing activityPub endpoints

it should be done for febuary


Danyl Strype Thu 13 Dec 2018

Cool. Where are you doing your active development? The GH repo I'm aware of hasn't had any updates for 2 years:


Tibor Katelbach Fri 14 Dec 2018

https://github.com/pixelhumain/communecter/ ( https://github.com/pixelhumain/communecter/?utm_source=discussion_mailer&utm_medium=email&utm_campaign=comment_replied_to )

yep that module is dead
this is the core module

but the best place to see activity is here

( https://github.com/pixelhumain )
every little feature of communecter is being cut up into mini standalone modules

that are also functionnal all together


Danyl Strype Fri 14 Dec 2018

Thanks for the update. Where is the best place to track dev specifically related to AP implementation? Is there one component where that work will be done, or do you have an issue tracking progress on it?

every little feature of communecter is being cut up into mini standalone modules that are also functionnal all together

Cool. I'm no expert, but it seems logical to me that this modular approach both helps to keep your code simple and tidy, and makes it easier for folks outside your team to understand and maybe re-use it.


Lynn Foster Tue 18 Sep 2018

An update of the planned ActivityPub distributed agent-centric implementation of OAE. @tiborkatelbach and all interested....

We now have 5 of us with separate pubs (me @bobhaugen @mayel @ivan116 and Benet from Mutual Aid Network), and can chat with each other using them. The code etc. is here, thanks to @mayel : https://gitlab.com/OpenCoop/CommonsPub. It is a forked version of pleroma, written in elixir.

From here, we want to dogfood in this agent-centric distributed environment and move within the social environment into economic interaction. We're figuring out what kind of UI makes sense, what the architecture might look like with open apps, and what pieces to do when (based on the user groups we are working with). Lots of experimenting and learning on the job to be done......


Tibor Katelbach Wed 19 Sep 2018

that's the greatest news !! sorry for being quite disconnected from OAE, I had to fully concentrate on CO, Let's have call about all this and our new stuff. We are just coming out of a tunnel with great new feature for building and gathering communities, and project evaluation and benchmarking tools. About Activity Pub we'll just be starting implementation in october should go fairly fast since we have activityStream allready implemented. itmight be a good use case we could do together , I'll explain it all in the call . TAlk soon I hope


Lynn Foster Wed 19 Sep 2018

Yes let's do a call! It would be good if we can coordinate how we are extending ActivityStreams (right now I think we are doing it in different ways, from looking at your code a while back). And we'd of course be interested in your new stuff.


Danyl Strype Wed 26 Sep 2018

Hi @lynnfoster it's great to see you folks working on an AP app! I can't seem to access those CryptPad links. So I'm just wondering if you could describe a couple of user stories for the UX you have in mind, and how AP factors into them. How will federation allow your users to fulfill one or two economic goals that they couldn't accomplish using a silo like Loomio, Discourse, or CommunityForge?


Lynn Foster Wed 26 Sep 2018

Hmmm, sorry about the links. Probably getting old now anyhow.

First in terms of federation, we are re-thinking federation of groups or installations to be more like AP as an enabler of agent-centric architecture where a person or organization would have their own AP instance and connect out to others from there. So control of one's own data is part of it, and creation of networks that are not because you are in an affinity social group, but because you have chosen each of those connections, wherever they are. Affinity groups can be part of that too.

To be clear, we also know that the agent-centric vision will be slow in coming and will need lots of compromises now and for some time to come.

In terms of the UX, we picture a personal dashboard kind of thing from which people can operate in any direction with whatever groups or people they are involved. And a bunch of configurable options for what to include in one's dashboard. We are trying to think outward from the existing social network experience that AP offers to what could be added for economic interaction, keeping the ability to chat and post, but also having the ability to keep things segmented enough that a person doesn't get overwhelmed with the noise when wanting to work on one thing. We're doing some initial experiments with conversational UIs. Here's some stuff Bob has started writing up on to explain it. https://cryptpad.fr/pad/#/2/pad/view/64P7o1b-7n8WCppvlhlHoC6xqs6TYqgfuQsE7rrMxn8/ (hope the cryptpad works now)

In terms of user stories, thinking CommunityForge for example, from one's own AP, one could publish offers or requests, and specify where those should be published. Like, besides followers, one might have a collection of offer/request venues. They could then travel the standard outbox-to-inbox pattern to arrive at the venues of choice or people of choice. If someone wants to respond, that can also happen in an AP direct message kind of thing.

Connected user story: Once parties have agreed on an exchange (barter, timebank credits, cash, whatever), the transfers can be recorded in both the parties' software, from their personal dashboards, as well as the organization as needed (like a timebank). All of this data can maintain its relationships for retrieval - offer... commitment... actual economic events.

Or, say you are working with some other people on a project. The project could have its own AP, or could be an actor in some larger organization it is part of. But from one's personal dashboard, one could see all the projects one is working on at the moment, wherever they might be. I'm sure many are like us and have all kinds of unrelated projects going on at once that live in different apps. If one person initiates a process (or issue or ticket or whatever), then others involved in the project could see it because AP again could know who all is involved in any project and let just those people know. People could log work or what is consumed and produced (if say you're keeping inventory) on that process from their personal dashboard. And communicate about it using the AP social media UX but constrained by the group working together. Groups could allow followers too if they want, so anyone can watch what is going on.

Hope this starts to give an idea. Ask more as needed. And/or, wanna help? :)


Danyl Strype Tue 11 Dec 2018


But from one's personal dashboard, one could see all the projects one is working on at the moment, wherever they might be.

This sounds really useful! Do you imagine this dashboard living on a website I sign into, or an app I install, or both? Just to be clear, it could only display info from projects that are hosted using software that speaks ActivityPub, yes?


Lynn Foster Tue 11 Dec 2018

Do you imagine this dashboard living on a website I sign into, or an app I install, or both?

Right now a few of us are experimenting with our personal ActivityPub instances, installed and administered helpfully by @mayel . We access these through a browser just like a collective ActivityPub installation. We have some UI experiments going (@ivan116 is working on them) that imply a "personal dashboard", but we don't have it working technically as an actual personal dashboard yet.

Just to be clear, it could only display info from projects that are hosted using software that speaks ActivityPub, yes?

Yes for this project. Eventually, we would like to be able to integrate the various current and future methods for distributed communication so that one's choice of personal app could access any or all of the different methods. Like we have a holochain project going, and a bit of an ssb one. There are a bunch of architectural questions to be defined and solved, as you can imagine.

And all would have to speak common vocabularies for this to work - ValueFlows for economic activity, and maybe ActivityStreams for social activity.


Danyl Strype Thu 13 Dec 2018

Just to avoid confusion, can I suggest that you avoid talking about "ActivityPub instances", and instead refer to an instance by the specific software package it uses (eg "CommonsPub instances"), and talk about AP-compatible instances when it's important to make protocol use clear? It already seems to confuse a lot of people that ActivityPub is a set of protocols (a "standard"), not a piece of software, and that it's implemented by many packages of software, and many instances of each of those packages ;-)


Irina Bolychevsky Fri 4 Jan 2019

ActivityPub is super interesting. We (redecentralize.org) added support for it for our new discussion forum - which is in progress here: https://adhoc.group/*redecentralize, but not sure how many people use the standard!


Lynn Foster Fri 4 Jan 2019

Really interesting @shevski ! I tried to join the forum with my fediverse identity, but it couldn't find me. (It is a personal one - @lynn@lynn.mikorizal.org. And it is based on pleroma, and quite likely isn't completely AP standard. Yet!)

I'd be curious to see your source code for the redecentralize forum, maybe it would help us in our quest for a backend that follows completely the AP standards.