HACKER Q&A
📣 behnamoh

How do I build my own personal alternative to FB's Messenger app?


After the events of yesterday, I decided to convince my close friends to move to other platforms. I already use Telegram and it's been superb to Messenger, WhatsApp, IG messaging, etc. in every way.

However, I want to see if it's possible to create "micro-messenger" apps; basically, a messenger app that you only use with a handful of people[1]. I want to have full control over the server side, so please don't say "just use Signal".

Given Telegram's open-source base code, is it possible to create a decent messaging app that goes down when you also go down? (e.g., when you die, or when you just want to terminate it).

[1] I think if you're going to say something or share photos/files that are personal, chances are you are already close to your recipient. And there aren't many of those people.


  👤 jimkleiber Accepted Answer ✓
You might be able to use Matrix and Element, was just reading about it yesterday...

I stumbled on this repo, might help you get a sense of how difficult it might be with this route and what features it would give you: https://github.com/spantaleev/matrix-docker-ansible-deploy


👤 ColinWright
You could install and run an instance of Mastodon. That's (apparently) easy to do, under your control, and has most of the features that you could want. You can use it for DMs and for broadcast, and if you deliberately don't federate then it will remain private.

👤 Zash
https://snikket.org/ aims to be an easy hosted or self-hostable solution, complete with apps for popular platforms.

👤 devKnight
I've kind of been thinking of having a backup system for our dev team to be able to communicate if something like this hits slack et al. A self hosted instance of mastodon or something might do the trick. Or maybe establishing some kind of emergency protocol for when things like this happens. Context: Small team, all remote.

👤 mikecoles
zulip, xmpp-based ie ejabberd, and matrix are systems you can pull inspiration from.

For the dead switch, you can `touch` a file weekly/daily/hourly. If that file's timestamp hasn't been updated, run your wipe script.


👤 mindcrime
Just stand up an ejabberd instance and have your contacts use any XMPP client.

👤 zimpenfish
https://runyourown.social might be a helpful read.