À propos

Des salons vocaux que tu peux héberger toi-même

Chatovo est un projet ouvert : le code, le serveur média et la base de données tournent sur tes propres machines, pas dans le cloud de quelqu'un d'autre.

Pourquoi ce projet existe

Le projet est né d'une envie : retirer tout le cérémonial qui entoure une simple discussion.

Une conversation ne devrait rien demander à configurer

Réunir des amis pour un appel implique d'habitude de créer un serveur, d'organiser des canaux et de distribuer des rôles. Ici, tu crées un salon et tu envoies un lien.

Les données restent chez leur propriétaire

Le serveur média, la base de données et les fichiers envoyés, c'est toi qui les déploies. Pas d'outils d'analyse tiers, pas de stockage externe pour les pièces jointes.

Tout se fait au grand jour

Le code source, l'historique des versions et les discussions sont sur GitHub. Tu peux lire comment fonctionne chaque partie et monter ta propre copie.

Comment c'est construit

Un monorepo en Bun workspaces : client, serveur, coque de bureau et schémas partagés au même endroit.

Client

Next.js 16 et React 19, exporté en statique. Structuré selon Feature-Sliced Design, stylé avec des modules SCSS.

Bureau et mobile

Tauri 2 : la même app web dans une coque native en Rust pour Windows, macOS, Linux et Android.

Serveur

NestJS 11 sur Bun, avec Prisma au-dessus d'un Postgres auto-hébergé. L'authentification repose sur better-auth.

Média

Un SFU LiveKit auto-hébergé pour le WebRTC. L'accès aux salons passe par un jeton signé par le serveur.

Schémas partagés

Les schémas Zod du paquet @chatovo/schemas sont la source unique de vérité pour les types du client et du serveur.

Outillage

TypeScript partout, Vitest et Playwright pour les tests, la compilation et la publication via GitHub Actions.

Qui a participé

Merci à toutes les personnes dont le code a rejoint le projet.

Comment contribuer

Le projet est ouvert aux changements, d'une coquille dans un texte à toute une nouvelle section de paramètres.

Propose une modification

Forke le dépôt, crée une branche depuis master et ouvre une pull request. Le style de code et la structure sont documentés dans le dépôt.

Signale un problème

Tu as trouvé un bug ou tu as une idée ? Ouvre un ticket. Les étapes pour reproduire le problème et la version de l'app accélèrent beaucoup le travail.

Lance ta propre instance

Le dépôt fournit la configuration de Caddy et de LiveKit pour que tu puisses monter ta propre instance complète.