La bêta de Béluga est ouverte S'inscrire →
Retour au blogue

Matrix, Y.js, LiveKit : trois choix open source qui font Beluga.

L
L'équipe Beluga ·

Beluga n'a pas inventé la visioconférence, la messagerie d'équipe ou l'édition collaborative. Ces problèmes sont résolus depuis longtemps. Ce qu'on a fait, c'est choisir les meilleures briques open source, les intégrer proprement, et les déployer au Québec.

Voici les trois choix fondamentaux qui définissent Beluga.

1. Matrix/Synapse pour Beluga Convo

Matrix est un protocole ouvert de messagerie fédérée. Synapse est l'implémentation de référence. On aurait pu utiliser un équivalent Slack propriétaire. On a choisi Matrix pour trois raisons :

  • Isolation par organisation. Chaque tenant Beluga obtient sa propre instance Synapse (homeserver). Les messages d'une organisation ne touchent jamais ceux d'une autre. C'est une isolation physique, pas juste logique.
  • Souveraineté. Matrix est un standard ouvert (comme IMAP pour le courriel). Si demain vous voulez quitter Beluga, vos données Matrix sont portables. Pas de captivité.
  • Chiffrement de bout en bout disponible (dans les itérations futures).

2. Y.js + Hocuspocus + BlockNote pour Beluga Docs

Pour l'édition collaborative temps réel, on voulait la même fluidité que Google Docs. On a choisi Y.js, une bibliothèque CRDT (Conflict-Free Replicated Data Type) — des structures de données qui résolvent automatiquement les conflits quand plusieurs personnes éditent en même temps.

Concrètement : Hocuspocus (serveur WebSocket Y.js) côté backend, BlockNote (éditeur React par blocs) côté frontend. La persistance est binaire sur MinIO S3, avec un fallback DB si le document est trop volumineux. Résultat : curseurs colorés, présence, commentaires ancrés, résolution automatique des conflits. Sans serveur central qui arbitre — les CRDT s'en occupent.

3. LiveKit pour Beluga Réunions

Zoom, Google Meet et Microsoft Teams sont des boîtes noires. LiveKit est une infrastructure WebRTC open source. On opère nos propres serveurs media SFU (Selective Forwarding Units) — les flux vidéo ne passent pas par un service tiers.

L'enregistrement utilise LiveKit Egress (open source aussi), qui produit un MP4 directement sur notre MinIO. La transcription par Voxtral (Mistral) lit ce MP4 et génère un document Beluga Docs. Du début à la fin, tout reste sur nos serveurs.

Pourquoi ça compte

Chaque brique est auditable (on peut lire le code), remplaçable (pas de verrouillage propriétaire), et maintenue par des communautés internationales (pas par une seule entreprise qui peut disparaître ou être rachetée). C'est ce qui fait qu'une suite souveraine peut exister durablement.

Envie de reprendre le contrôle de vos données ?

Rejoindre la bêta