ActivityPods

The framework to create decentralized social apps

ActivityPods brings together two game-changing technologies, ActivityPub and Solid Pods, and empowers developers to create truly decentralized applications

ActivityPub

ActivityPub

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

Solid Pods

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.

The best of both worlds

ActivityPods

ActivityPods

ActivityPods is a framework to create ActivityPub-compatible apps with all data stored in a single place: your Pod.

Data freedom for your users

Richard Stallman famously defined the 4 freedoms guaranteed by free softwares. Here are the 3 freedoms guaranteed by ActivityPods:

Freedom to choose where your data are stored

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.

Freedom to share your data with anyone

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.

Freedom to choose which app handles your data

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.

SPARQL endpoint

Every Pod comes with its own SPARQL endpoint. You can do advanced queries instead of going through whole lists of resources.

WAC permissions

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.

Proxy endpoint

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.

Notifications

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

Except Mastopod, the below apps are private-by-default. It means that you will not see anything, unless one of your contacts shared something with you. This is a voluntary choice made for these apps, but the ActivityPods architecture can also handle public data.

A Mastodon-compatible app that saves all data in your Pod.

Private meetings at home that promote a living together based on welcome, trust and mutual aid.

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.


Questions, ideas, thoughts ?
Join our Open Weekly Meetings every Thursday at 15:00 CET

  • 1

    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!

  • 2

    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.

  • 3

    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.

ActivityPods news

ActivityPods v1.5 released

While we prepare the spring release of v2.0, we're delighted to announce the immediate availability of ActivityPods v1.5, which includes two long-requested features: simplified invitation links and contact groups. The purpose of this post is to introduce them to you.

The road to ActivityPods 2.0

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.

The story of SemApps... and the future of ActivityPods

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.

ActivityPods Newsletter

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.

NLnet
NGI Zero Entrust