CommonsPub and the quest for a modular decentralised app ecosystem

Mayel de Borniol, with the participation of the CommonsPub Team & Contributors.

The goal: empower people to create and self-manage social spaces and tools tailored to their needs.

ActivityPub gave us interoperability at the data level, and we’d like to do the same on the software level with CommonsPub. Instead of a top-down “product design” approach to building an app or platform, we’d like a world where even non-technical users and communities can do it themselves: being able to piece together custom experiences from an ecosystem of apps and plugins developed by different groups who all contribute to (and benefit from) a pool of interdependent software libraries, while each focusing on different use cases, features and user experiences.

We have implemented groups (to further decentralise the fediverse by rendering users and communities independent from the instance they’re on), and decoupled the federation and storage of ActivityStreams activities/objects from the app’s relational database, backend logic, APIs and frontend interfaces. This means users can have one fediverse identity and a timeline which shows all types of content and activities in one place, while participating in multiple communities and using specialised apps for different activities.

After presenting what’s available to be hacked on and deployed, we’ll discuss some of our ongoing projects, such as:

  1. ValueFlows to facilitate and federate mutual aid and circular economies.
  2. HAHA Academy to share educational knowledge and encourage lifelong learning.
  3. Federated taxonomies for topic-based search and discovery across instances.
  4. Plus one more thing which touches on self-hosting, privacy, portability and network neutrality: Bonfire!

Questions & Answers available!

Q&A Session – CommonsPub and the quest for a modular decentralised app ecosystem
⬡ Hooray, the live Questions & Answers are available here

3 Likes

Technology is not neutral. We’re inside of what we make, and it’s inside of us. We’re living in a world of connections – and it matters which ones get made of unmade.
– Donna Haraway

Ha! Thank you @mayel for starting with this. Indeed it’s critical to be able to think not only in terms of progress (what can be added to the existing) but also in terms of what can be removed, to paraphrase Antoine de Saint-Exupéry.

Instead of transcribing, I’ll go directly into questions, @mayel:

  • you mention taxonomy… I can see a use-case where an application could announce activities with a specific taxonomy that would be implemented using SKOS, and as such be compatible with SkoHub. Do you think that would make sense, and could be implemented from what you have now? As I understand it, the categories you mention can act as channels to follow.
  • about Bonfire, the device: I see you chose Raspberry Pi. What about some Olinuxino? OLIMEX people are really friendly, they’re based in Europe, and would probably be interested in helping around.
  • there are also sister projects you might want to get involved with: YUNoHost, MAZI, FreedomBox… Did you consider any of them?
  • what about getting some funding for Bonfire instead of doing a crowdfunding? Or both?
  • you didn’t mention a timeline for the various projects: do you have any already?

I’d be really interested in helping you, I’m really happy at the way you’re taking.

If it makes sense, I’d like to see, during the conference or after, maybe during the hackathon, some connection between #software:commonspub and @pukkamustard’s CPub. I don’t know how you have been keeping in touch or not, but it definitely sounds like there’s some common vibes.

1 Like

you mention taxonomy… I can see a use-case where an application could announce activities with a specific taxonomy that would be implemented using SKOS, and as such be compatible with SkoHub. Do you think that would make sense, and could be implemented from what you have now? As I understand it, the categories you mention can act as channels to follow.

I have yet to watch the SkoHub presentation, but as I understand we should be able to interoperate. Our categories are exposed as AP actors, so they can be tagged and followed as-is even on Mastodon. We’re also planning to do that for other data types you may want to mention or follow, like geolocations or threads.

I see you chose Raspberry Pi. What about some Olinuxino ? OLIMEX people are really friendly, they’re based in Europe, and would probably be interested in helping around.

Yeah that’s interesting, we’re definitely exploring any relevant options, and if we can use open hardware all the better!

sister projects you might want to get involved with: YUNoHost, MAZI, FreedomBox… Did you consider any of them?

Yeah we may use something like that on the device, to handle deployments/upgrades but also make it easier for users to install 3rd party apps, as long as it’s simple enough to use and especially maintain for not-very-technical users. Have you got experience with any of them? (I’m personally more used to Docker, but it’s not very well liked for some good reasons).

what about getting some funding for Bonfire instead of doing a crowdfunding?

What funding? Are you offering? :stuck_out_tongue:

you didn’t mention a timeline for the various projects: do you have any already?

It really depends on how things go. There’s 4 core contributors plus several more participants working on this (part time at the moment, so we’re looking to at least sustain that and not be pulled away by new day jobs).

2 Likes

Well, yes :smiley:

Hi @mayel! Thanks for the talk!

I appreciate the “generality” of CommonsPub (and was very much inspired by it). I feel that the ActivityPub C2S protocol is an essential part of this generality and a DIY system for communities. Does CommonsPub support the ActivityPub C2S protocol? How does that/would that work with LiveView (which does not need an API at all)?

I am also working on a “general” ActivityPub backend called CPub…name inspired by CommonsPub! The technical approach is different (use RDF as internal data model) and it is now also a testbed for some other experiments. In any case, look forward to the Q&A and discussing further!

1 Like

Just watched the Q&A session, which I unfortunately missed in live. Thanks for the answer @mayel.

For future reference the answer to the question on C2S protocol (in my own words):

  • CommonsPub does not currently support C2S. CommonsPub implements a GraphQL client protocol. They are open for this to be implemented. Up to now it was not needed and thus not implemented.

Thanks to @mlemweb and @how for relaying the question.

1 Like