Private meetings at home that promote a living together based on welcome, trust and mutual aid.
ActivityPub is a decentralized social networking protocol based upon the ActivityStreams 2.0 ontology. It provides a client-to-server and a server-to-server API for all common social features: following, liking, reposting... It became a W3C recommandation in 2018 and is used nowadays by dozens of softwares.www.activitypub.rocks
What is the main shortcoming of ActivityPub ?
ActivityPub wants to make it possible to create decentralized apps. But to post videos, you need an account on a PeerTube instance. And to post images, you need an account on a PixelFed instance. You must thus handle multiple accounts, with their profile, list of followers, etc.
How does ActivityPods solve this shortcoming ?
With ActivityPods, you have only one profile, one outbox, one inbox and one list of followers - all in a single place. Applications connect to your Pod to post activities, read the inbox and fetch data. And of course they can connect to any existing fediverse application !
Solid (Social Linked Data) is a set of specifications whose aim is to allow users to store all their data in Pods ("Personal Online Datastores"). Users have full control over their Pods and can give permissions to applications or people they trust.www.solidproject.org
What is the main shortcoming of Solid Pods ?
Despite its name, Solid includes few features for social networking. For example, when you share a resource, the recipient will not know about it, unless you write to him. In their current implementation, Pods are personal databases with little connection to the outside world.
How does ActivityPods solve this shortcoming ?
With ActivityPods, all Pods are able to easily communicate with other Pods, thanks to the ActivityPub outbox and inbox. When you add a contact to your Pod, for example, he can be automatically be notified and add you back.
Data freedom for your users
Richard Stallman famously defined the 4 freedoms guaranteed by free softwares. Here are the 3 freedoms guaranteed by ActivityPods:
In traditional architecture, you have no idea where or how your data are stored.
With ActivityPods, all your data are stored in your Pod. You can choose a Pod provider you trust, or host it yourself.
In traditional architecture, you can only share your data with users on the same app.
With ActivityPods, you can share your data with anyone on the Internet, thanks to the ActivityPub protocol.
In traditional architecture, data are only understood by the apps which created them.
With ActivityPods, since all data are stored using semantic web standards, they can be accessed and understood by many apps.
Packed with Features
What users get with their ActivityPods
ActivityPods come with a large set of features which include everything you need to develop social apps: data management, authorizations, communication with other Pods...
JSON-LD and Turtle API
Every Pod is compliant with the Linked Data Platform specification. You can retrieve, create and update data (resource or container) as JSON-LD or Turtle.
Every Pod comes with its own SPARQL endpoint. You can do advanced queries instead of going through whole lists of resources.
You can define fine-grained read/write/control permissions for every container and resource in the Pod, thanks to our support of the WAC (WebACL) standard.
Inbox + Outbox
Every Pod comes with an ActivityPub-compliant inbox and outbox to communicate with the fediverse. Side-effects (follow, like...) are automatically handled.
An user can authenticate itself on any other Pod using HTTP signature. Every Pod has a proxy endpoint which signs the user requests with his private key.
When a user receives an ActivityPub activity, he can receive a properly-formatted notification by mail. Support for web push notification is coming soon.
Applications in production
Classified ads oriented around mutual aid and shareable within a trusted network.
Developing decentralized social apps has never been easier
ActivityPods is not just a collection of standards, it's a full-featured framework which intends to make it easy to develop decentralized social apps. This framework is already used by several applications in production.
Don't bother about backend
All common backend issues are handled by the Pod provider: account creation, data storage, contacts management... as well as all common ActivityPub features (inbox, outbox, followers, likes...). So you can focus solely on the apps you want to develop!
Add business logic through bots
If you need business logic, for example handling events join requests, you can create lightweight bots which will listen to Pods activities and react accordingly.
Make use of our frontend components
ActivityPods is built on top of SemApps, a semantic web toolbox which also provides many React components to fetch Pods, communicate through ActivityPub and display semantic data. Of course you are free to use any framework you like as the frontend is 100% decoupled from the backend.
Since this summer, thanks to a grant from NLnet as part of the NGI0 Entrust Fund program, we've been working hard on ActivityPods 2.0, with a planned release in spring 2024. The aim of this article is to explain this background work and what's at stake.
ActivityPods is built on top of SemApps, a toolkit for developing semantic web applications that dates back to the early 2010s. The technological choices that have guided and continue to guide the development of ActivityPods are intimately linked to SemApps and its philosophy.
Stay informed about the project. One mailing/month maximum.
This project is funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594. Learn more on the project page.