Sobre

Salas de voz que você mesmo pode hospedar

O Chatovo é um projeto aberto: o código, o servidor de mídia e o banco de dados ficam nas suas próprias máquinas, e não na nuvem de outra empresa.

Por que ele existe

O projeto começou como uma tentativa de tirar a burocracia de conversar com as pessoas.

Uma conversa não deveria exigir configuração

Reunir os amigos para uma chamada normalmente significa criar um servidor, organizar canais e distribuir cargos. Aqui você cria uma sala e manda um link.

Os dados ficam com o dono

O servidor de mídia, o banco de dados e os arquivos enviados: tudo isso é você quem implanta. Sem análises de terceiros, sem armazenamento externo para anexos.

Tudo às claras

O código-fonte, o histórico de versões e as discussões ficam no GitHub. Você pode ler como qualquer parte funciona e montar a sua própria cópia.

Como é construído

Um monorepo com Bun workspaces: cliente, servidor, shell para computador e schemas compartilhados num só lugar.

Cliente

Next.js 16 e React 19, exportado de forma estática. Estruturado com Feature-Sliced Design e estilizado com módulos SCSS.

Computador e celular

Tauri 2: o mesmo app web dentro de um shell nativo em Rust para Windows, macOS, Linux e Android.

Servidor

NestJS 11 no Bun, com Prisma sobre um Postgres próprio. A autenticação roda com better-auth.

Mídia

Um SFU LiveKit próprio para WebRTC. O acesso à sala é concedido por um token assinado pelo servidor.

Schemas compartilhados

Os schemas Zod do pacote @chatovo/schemas são a fonte única de verdade para os tipos do cliente e do servidor.

Ferramentas

TypeScript em tudo, Vitest e Playwright para os testes, builds e lançamentos pelo GitHub Actions.

Quem participou

Obrigado a todos cujo código entrou no projeto.

Como contribuir

O projeto está aberto a mudanças, de um erro de digitação num texto a uma seção de configurações inteira nova.

Envie uma mudança

Faça um fork do repositório, crie um branch a partir do master e abra um pull request. O estilo e a estrutura do código estão documentados no repositório.

Relate um problema

Achou um bug ou tem uma ideia? Abra uma issue. Os passos para reproduzir e a versão do app agilizam muito o trabalho.

Rode o seu

O repositório inclui a configuração do Caddy e do LiveKit para você subir uma instância completa só sua.