Plataforma de chat e chamadas
Vokri
Projeto próprioEm produção
Plataforma privada de chat, chamadas e transmissão de tela para pequenos grupos, no navegador e no Windows, com voz e vídeo no próprio servidor.
Contexto
O Vokri é uma plataforma privada de chat, chamadas e transmissão de tela para pequenos grupos de amigos que conversam, jogam e compartilham tela. Funciona no navegador, com contas permanentes, perfis personalizados, servidores fechados por convite e salas rápidas protegidas por senha, e tem um aplicativo para Windows. Roda numa VPS própria.
Desafio
Reunir voz, texto e transmissão de tela num espaço privado e fácil de navegar, com a mídia no próprio servidor. A qualidade de uma chamada depende do navegador, do aparelho, da rede e do servidor, então o produto não podia prometer mais do que entrega, e precisava mostrar o estado da conexão com clareza. E o aplicativo de desktop precisava capturar o áudio do computador sem os travamentos do Electron.
Solução
- Mídia no próprio servidor. Nos canais de voz, um LiveKit auto-hospedado distribui voz e tela e adapta a qualidade para cada espectador. Nas salas rápidas, WebRTC direto, com um TURN próprio quando a conexão direta não é possível.
- Até duas telas por canal, garantido pela sinalização do Vokri e pelas permissões de publicação do LiveKit, inclusive depois de uma reinicialização do app. Um teste de integração cobre duas telas, a recusa de uma terceira, o áudio, a revogação e a reconexão.
- Áudio cuidado. Voz Opus em 48 kHz com cancelamento de eco, e redução de ruído com RNNoise rodando no próprio aparelho, sem mandar o microfone para outro serviço. O áudio da tela vai separado do microfone, sincronizado com o vídeo.
- Aplicativo para Windows em Electron, com as mesmas contas da versão web, e um componente em Rust (WASAPI) que captura o áudio do computador sem travar.
- Segurança. Senhas com Argon2id, sessões opacas no Redis, cookies HttpOnly, limite de tentativas, tickets de WebSocket que valem 60 segundos e contêineres sem privilégios, com o sistema de arquivos somente leitura.
- Diagnóstico honesto. Um painel mostra latência, jitter, perda de pacotes e FPS da chamada, medidos no navegador e nunca enviados ao servidor.
- Publicação segura. Antes de cada atualização, um backup do banco e dos uploads; se alguma cópia falhar, a atualização é cancelada.
Resultado
A versão web está em produção, com contas, servidores, mensagens, chamadas e transmissão de tela; o aplicativo para Windows está em beta privado. O projeto tem 81 testes automatizados, e a documentação diz com clareza o que eles não provam: a qualidade do áudio e o funcionamento entre dois computadores se conferem numa chamada real.
Números
- Testes automatizados
- 81
- Fonte: Blocos it() e test() nos 27 arquivos de teste de src/, server/ e desktop/, contados no código do projeto · medido em 27/09/2026
Tecnologias
- TypeScript
- React
- Vite
- Fastify
- PostgreSQL 18
- Redis 7
- LiveKit
- WebRTC e TURN (Coturn)
- Electron 44
- Rust (WASAPI)
- Docker Compose e Caddy
Galeria
