I stopped using Facebook. There are many reasons for that, using tax hole to avoid taxes, privacy concerns and others. But I have to admit Facebook was really easy to keep in touch with my friends. All my friends are in there and once you are not on facebook, you stop hearing from them.
I was since exploring open source alternatives to replace Facebook. But there isn’t any good alternatives yet and all of them requires a complex setup (this is if you want to host it to keep all data to yourself, there are open source social networks hosted by others and they are quite easy to join). I believe if we want to get rid of all those big companies profiting from selling our data, we need a simple setup that can handled by anyone. So I was thinking of something that has following features.
First, it would be easy to setup. Ideally people can just start it on their laptop or desktop (and if possible on mobile phone). They can probably run a binary or executable and it will start the instance.
Second, everyone will have their own instances. so when I add a friend, it will actually add a link to other instance from my one and whenever the other instance posts something (for me or to everyone) it will then grab it and queue it in my message/notification list.
third, we need a way to deliver the messages when the receiver is turned off. I think this is a big challange as if I’m sending a message to my friend and my friend’s instance is turned off, then the message needs to be somewhere that will try sending that message again (like mailservers).
Each of these issues have challenges that needs resolving. For the first issue, we need a system similar to DNS system that can search and find those instances. Second issue is already handled by systems like matrix and similar implementations. Third issue needs more thinking as we need the messages to be stored somewhere when the sender or receiver goes offline. P2P could be a possibility, or we can check how Dovecot future implementation (https://www.theregister.co.uk/2017/10/12/openxchange_imap_chat_killer_app/) might work with this.