Création d’un service de Messagerie Instantanée Ouverte aka MIO et reflexion sur la stack technique
Bonjour, je réfléchi à créer un service de messagerie instantanée pour le plus grand nombre, c’est à dire à tous ceux qui ne peuvent pas s’auto-héberger ou pour qui la complexité est un grand mur.
A court terme ça sera pour quelques dizaines voir centaines d’utilisateur. À moyen terme des milliers voir des millions.
Et pour commencer j’aimerai que ce service permette de discuter avec des gens qui utilisent #matrix ou #xmpp pour ensuite l’étendre à toute les autres app et protocoles qui voudront.
Ma question est simple, sur quel techno/protocol/bridge vous partiriez ?
Vous avez quelques détails de plus sur https://mio.chat/
Je suis aussi ouvert à toutes les questions et remarques constructive.
Librement
Pour répondre à la question simple, je suis extrêmement biaisé, je partirais en effet sur XMPP qui est beaucoup, beaucoup moins gourmand en ressource côté serveur, et demande une maintenance bien moindre. Le protocole XMPP permet de "passer des messages" quand Matrix a plus pour ambition d'être une base de données distribuée et a des similitudes avec la blockchain. Un exemple de comparatif qui pourra t'être utile.
Tu parles de « faire le pont avec WhatsApp et Telegram ». Comment tu vois ça concrètement ? Tu veux un client multi-protocole à la [Pidgin](https://pidgin.im/ ou Texts, ou des passerelles côté serveurs comme ça se fait pour Matrix et XMPP? Les passerelles côté serveur ça a l'avantage de simplifier le client, qui n'a qu'un seul protocole à parler, et de permettre une UX multi-appareil plus sympa. Note que WhatsApp est fermement opposé aux clients alternatifs et te mettra des bâtons dans les roues, quelle que soit l'approche que tu choisis, et ça risque de difficilement être facile à utiliser pour les non-technophiles.
Tu parles d'une « appli aussi facile à utiliser que Signal ». Comptes-tu partir de zéro ? Si tu choisis XMPP, des clients existants seraient ravis d'avoir tes contributions :
Movim, client web, dont le mainteneur essaye d'intégrer les passerelles de manière conviviales pour les utilisateurs
Cheogram un client Android, fork amical de l'excellent Conversations avec une emphase sur les utilisateurs de passerelles
Moxxy qui n'est encore assez mature mais qui est prometteur, basé sur Flutter pour être multiplateforme.
À lire le court texte du projet, j'ai l'impression que tu veux proposer d'administrer un serveur Matrix ou XMPP et de développer un nouveau client spécifique. Ma remarque constructive serait « es-tu sûr de ne pas te lancer dans la réinvention de la roue ? ». Bonne chance :)
Tu parles de « faire le pont avec WhatsApp et Telegram ». Comment tu vois ça concrètement ? Tu veux un client multi-protocole à la Pidgin ou Texts, ou des passerelles côté serveurs comme ça se fait pour Matrix et XMPP?
C’est clairement pas un client multiprotocol. Pigmin ou Beeper le fond très bien.
Mais cette solution ne fait pas de pont entre les différents protocols.
C’est donc un service qui utilisera des 'bridges' côté serveur.
Note que WhatsApp est fermement opposé aux clients alternatifs et te mettra des bâtons dans les roues, quelle que soit l’approche que tu choisis, et ça risque de difficilement être facile à utiliser pour les non-technophiles.
Effectivement, c’est compliqué de faire un client alternatif pour des services fermé comme Whatsapp.
Je pense que c’est une approche qui a le mérite d’exister et peut être utile, mais c’est aussi beaucoup d’énergie perdu dans la bataille.
J’ai clairement pas envie de «perdre» mon temps sur ce point.
Il me semble qu’une autre approche serait la coopération. Même si c’est pas forcement plus rapide :/
Par exemple pour Whatsapp :
For about the past two years, WhatsApp has been building a way for other messaging apps to plug themselves into its service and let people chat across apps—all without breaking the end-to-end encryption it uses to protect the privacy and security of people’s messages. The move is the first time the chat app has opened itself up this way, and it potentially offers greater competition.https://www.wired.com/story/whatsapp-interoperability-messaging/
À lire le court texte du projet, j’ai l’impression que tu veux proposer d’administrer un serveur Matrix ou XMPP et de développer un nouveau client spécifique. Ma remarque constructive serait « es-tu sûr de ne pas te lancer dans la réinvention de la roue ? ». Bonne chance :)
Je suis conscient que ça semble réinventer la roue ....
D’ailleurs je suis admiratif des projets que tu as cité ( Movim, Conversation et les autres ).
Cheogram semble le plus proche de ce que j’ai en tête, je vais regarder plus en détails.
Cependant de mon point de vue ils restent des outils «plus compliqué» que les messageries grand publique.
Juste le fait de devoir créé un compte XMPP pour Cheogram est un gros frein pour n’importe quel personne «normal» que je connaisse.
Le workflow habituel : télécharger l’appli sur le store -> ça marche = je garde; ça marche pas = je désinstalle. :/ pas de place pour des questions de comptes ou de serveur.
D’où l’idée de faire un service = une app ( = plusieurs protocols ).
Le but ultime étant de pouvoir faire facilement une conversation de groupe entre une personne qui utilise Signal, une autre Matrix, une autre Xpmm, une autre encore qui utilise Whatsapp.
Je ne sais pas si quelqu’un a déjà fait ça ?!?
Encore merci pour ta réponse très enthousiaste pour xmpp ;)
C’est clairement pas un client multiprotocol. Pigmin ou Beeper le fond très bien.
Beeper à ma connaissance c'est juste un client Matrix avec une UI qui intègre mieux les passerelles matrix <> autre chose, qui sont côté serveur (et donc aussi, tu payes pour un compte sur leur serveur matrix).
WhatsApp has been building a way for other messaging apps to plug themselves...
Malheureusement (1) c'est pas prêt d'être disponible et que (2) quand ça le sera, ça sera probablement de la grosse merde qui nécessite toujours une passerelle côté serveur, et qui aura moins de fonctionnalités que les passerelles "illégales" comme celles qu'on trouve chez Matrix ou XMPP (c'est moi!). Meta a bataillé tout ce qu'elle a pu contre, la loi est quand même passée, maintenant ils vont faire le strict minimum et le moins utilisable possible.
Le workflow habituel : télécharger l’appli sur le store -> ça marche = je garde; ça marche pas = je désinstalle. :/ pas de place pour des questions de comptes ou de serveur.
Bon c'est juste que ton compte est créé tout seul à partir de ton numéro de téléphone et d'un mot de passe à usage unique envoyé par SMS. Si tu veux cette approche côté XMPP, c'est https://quicksy.im/
pouvoir faire facilement une conversation de groupe entre une personne qui utilise Signal, une autre Matrix, une autre Xpmm, une autre encore qui utilise Whatsapp
Pour matrix, XMPP, IRC, facile. Pour Signal qui aimera pas ça, tu vas lutter. Et pour Whatsapp, encore pire. Ce que tu décris existe déjà, chez Matrix il appellent ça le "room plumbing", je ne trouve plus la référence mais il existe des serveurs IRC qui sont en même temps des composant de chat de groupe XMPP, et https://github.com/42wim/matterbridge supporte plein de services de manière agnostique. Les devs du jeu openttd ont développé leur propre approche pour avoir un salon mixte IRC/discord: https://github.com/OpenTTD/dibridge
D’où l’idée de faire un service = une app ( = plusieurs protocols ).
À mon avis, la solution à ce que tu décris n'est pas technique mais juridique, c'est le sens de ce que l'UE essaye d'imposer à Whatsapp, et qui malheureusement n'est que trop partiel (et pourquoi pas Discord? et Telegram? ...).
Bonne chance en tout cas et surtout j'espère que bosser sur mio est un kiff, c'est le plus important!
En soi le protocole n'est pas très important: entre Matrix et XMPP il y a suffisamment de ponts pour que ça soit équivalent. La discussion ne sera pas du tout technique.
Si tu veux offrir un service grand public tu auras surtout des problèmes sociologiques et humains à régler: comment parler et convaincre du monde ? comment rendre ça simple, à la fois à l'utilisation et pour payer, comment tenir dans la durée, comment recruter des gens pour maintenir tout ça. Bref, beaucoup beaucoup plus de communication que de technique.
De ce point de vue j'aurais tendance à dire que XMPP étant plus petit ça faciliterait la partie technique et maintenance pour te focaliser à fond sur la comm'. Snikket, un packaging d'un serveur XMPP en particulier, a commencé à fournir un service ouvert: https://snikket.org/blog/snikket-hosting-launched/ . Tu peux t'inspirer de ce qu'iels font pour voir ce que ça donnerait de ton côté.
En tout cas j'aimerais beaucoup que tu y arrives, ça serait bien chouette :)
Si tu veux offrir un service grand public tu auras surtout des problèmes sociologiques et humains à régler: comment parler et convaincre du monde ? comment rendre ça simple, à la fois à l’utilisation et pour payer, comment tenir dans la durée, comment recruter des gens pour maintenir tout ça. Bref, beaucoup beaucoup plus de communication que de technique.
C’est clairement un projet beaucoup plus humain que technique.
Je fais le même constat que les projets Matrix/Element et Mastodon qui ont mis l’accent sur la première connection avec des choix par défaut comme le serveur.
J’aimerai aller encore plus loin dans la simplification avec le paradigme une appli = un service.
C’est ce à quoi est habitué le grand public. Exemple typique : Utilisation de l’appli Gmail pour les compte gmail, Outlook pour les compte Microsoft, Yahoo Mail, Proton mail etc …
En créant ce service facile d’accès ça renforce l’attractivité des messageries comme XMPP et Matrix.
Concernant la maintenance du service et le développement des applis j’ai bien conscience du coup que ça peut avoir.
J’ai pensé à deux forme, associative et commercial autour d’une offre mobile par exemple.
Il y a aussi les fond d’investissement public. Beaucoup d’option à combiner je pense.
De ce point de vue j’aurais tendance à dire que XMPP étant plus petit ça faciliterait la partie technique et maintenance pour te focaliser à fond sur la comm’. Snikket, un packaging d’un serveur XMPP en particulier, a commencé à fournir un service ouvert: https://snikket.org/blog/snikket-hosting-launched/ . Tu peux t’inspirer de ce qu’iels font pour voir ce que ça donnerait de ton côté.
C’est un excellent conseil.
Je trouve leur approche génial mais encore un peu trop tourné vers les personnes qui ont les connaissances, le temps et l’argent et l’envie pour faire ça.
Leur approche technique et commerciale et quand même vachement inspirante.
En tout cas j’aimerais beaucoup que tu y arrives, ça serait bien chouette :)
Merci, j’ai conscience que pleins de gens et de projets on essayé avant, mais qui ne tente rien n’a rien, n’est pas ?!? ;)