One of my ambitions has been to see a decentralized and serverless social media platform, up to the same quality standards as Twitter and Facebook. Using IPFS and OrbitDB this dream is now much closer to becoming a reality. I wanted to bring up one important subject in this regard: The ActivityPub protocol, and how IPFS can interact with it.
I have been following the Mastodon social media platform. It is decentralized but not so much serverless: You need to jump through quite a few loops to setup an instance on your computer, while a central server still maintains the database and handles much of the processing. I've briefly asked the team to what extent it could be made serverless and was introduced to AP. ActivityPub is a standardized API for social media: It's a way to create, modify and delete content across different platforms. It makes it easier for multiple products to communicate with one another and share certain data, which will be a huge bonus as more decentralized platforms emerge.
My question is: To what extent can OrbitDB (or another form of storage over IPFS) integrate ActivityPub support? Would it be possible to create a module that allows browsers to translate ActivityPub requests into entries stored into a distributed database? It does feel like the Orbit docstore would be the best candidate for such a thing: It can create, modify, remove and index entries which should be exactly what the API expects. The data is stored as a JS object, and thanks to indexing every request should be easy and efficient to address.
If such a tool could be developed, fully decentralized social media might be a great step closer to becoming possible. Right now you still need to run a server, but with such an approach you could have an entire Twitter alternative running entirely in the web browsers of users! IPFS can already handle media storage, but storing the dynamic user data without using a server remains a problem... this may very well fix that final limitation. What are your thoughts on this?