A Mastodon-compatible app that saves all data in your Pod.
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 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.rocksWhat 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 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.orgWhat 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 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:
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.
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
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 other 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 and NextGraph are joining forces
Both projects are based on Semantic Web/Linked Data/RDF technologies, and both foster the decoupling of data storage from data usage. Data storage should stay in total control of the end-user, and third party apps should request permission to access or modify such data.
ActivityPods 2.0 is out!
We are thrilled to announce the official release of ActivityPods 2.0, a framework and platform that allows users to create a single account for multiple decentralised social applications while also providing developers with the tools to build and integrate these applications.
The European Union must keep funding free software
The funding of a large open source internet ecosystem is at risk
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.