Janjacord
#Janjord 🟢
Nome oficial: Janjord · Codinome/meme: JanjaCord
"A alternativa open source ao Discord que ninguém pediu."
Aplicativo para Windows: salas de voz com compartilhamento de tela em Full HD (1080p), canais de voz, chat de texto e até duas transmissões simultâneas — para até 10 pessoas, conectadas pela internet, sem conta, sem cadastro e sem servidor pago. Gratuito e de código aberto.
#⬇️ Baixar a última versão
Baixe o JanjaCord Setup <versão>.exe (instalador com atualização automática) ou o JanjaCord <versão>.exe (portátil, sem instalar).
#⚠️ Atenção: o Windows mostra um aviso na instalação
O Janjord ainda não tem assinatura digital — esse certificado custa caro por ano, e este é um projeto gratuito e de código aberto. Por causa disso, na primeira execução o Windows mostra a tela azul do SmartScreen dizendo que o aplicativo é "desconhecido". Isso é esperado, e a instalação é segura: todo o código-fonte está aberto aqui neste repositório, para qualquer pessoa auditar.
Passo a passo para continuar a instalação:
- Baixe o instalador na página de Releases e execute.
- Se aparecer a janela azul "O Windows protegeu o computador", clique em "Mais informações".
- Vai surgir o botão "Executar assim mesmo" — clique nele.
- Pronto! A instalação segue normalmente, cria o atalho e abre o aplicativo.
💡 Alguns navegadores também desconfiam na hora do download. No Chrome/Edge, se o download for marcado como "não verificado", clique nos três pontinhos ao lado do arquivo baixado e escolha "Manter" (e depois "Manter assim mesmo", se ele perguntar de novo).
#Como usar
- Abra o JanjaCord e escreva seu nome.
- Clique em Criar uma sala — você recebe um código de 6 letras (ex.:
KM3T7X). - Mande o código para as pessoas (WhatsApp, e-mail, como preferir).
- Elas abrem o JanjaCord, digitam o código e clicam em Entrar.
- Pronto: todo mundo se ouve. Quem quiser mostra a tela clicando em Compartilhar tela — e podem ser até duas telas ao mesmo tempo.
#Canais de voz
Toda sala nasce com o canal Geral, e o anfitrião pode criar mais canais (botão + na barra lateral, até 8). Cada pessoa clica no canal em que quer ficar — você só ouve e só vê a tela de quem está no mesmo canal que você. Cada canal pode ter suas próprias duas transmissões simultâneas. O chat de texto continua sendo um só, da sala inteira.
#Dicas
- No canto inferior esquerdo fica o seu painel: botões de mutar o microfone, mutar o headset (não ouvir ninguém — e o microfone também fica mudo, como no Discord) e a engrenagem das configurações: microfone (útil para não pegar o da webcam), saída de som (fones ou alto-falantes), qualidade da transmissão (HD 720p ou Full HD 1080p) e som da transmissão (veja abaixo). Tudo fica salvo, e a troca de microfone funciona até no meio da chamada.
- Som só do jogo, sem configurar nada: ao compartilhar, marque "Compartilhar também o som" e deixe "Só do aplicativo escolhido" — o JanjaCord captura apenas o áudio daquele programa (nada de notificação do WhatsApp nem das vozes da sala indo para a transmissão). Se você compartilhar a tela inteira, ele pergunta de qual aplicativo vem o som. Isso é feito por um pequeno programa nativo nosso (pasta
nativo/), com a mesma API do Windows que o Discord e o OBS usam; requer Windows 10 versão 2004 ou mais novo. Desde a 1.13 a captura é feita em todos os canais do dispositivo e reduzida para estéreo pelo próprio JanjaCord — em placas e headsets 7.1 isso evita o som chegar ~13 dB mais baixo (um fator de normalização que o Windows aplica quando se pede a captura já em estéreo) — e o volume do aplicativo no Mixer de volume do Windows é compensado, para a transmissão sair no nível real do jogo, e não no volume local de quem transmite. Se o aplicativo estiver mudo no Mixer, o JanjaCord avisa. As opções "todo o computador" e "dispositivo de áudio" (para quem já usa cabo virtual) continuam disponíveis. - Quem assiste tem um controle de volume da transmissão (passe o mouse sobre o vídeo): abaixa o som do que está sendo transmitido sem mexer nas vozes.
- Clique em uma pessoa na lista para abrir o controle de volume individual dela — perfeito para abaixar aquele microfone que está estourando.
- Com duas transmissões ao mesmo tempo, aparecem os botões de layout no canto do palco: Dividida (metade da tela para cada) ou Foco (uma grande e outra pequena no canto — clique na pequena para trocar qual fica em destaque).
- O ícone de balão de conversa ao lado do canal de voz em que você está abre o chat de texto. Quando chega mensagem com o chat fechado, aparece um selo vermelho com a contagem. Quem entra na sala recebe as últimas 50 mensagens.
- Clique no código da sala (no topo) para copiá-lo.
- Na hora de compartilhar, dá para escolher uma tela inteira ou só uma janela, e marcar a caixinha para transmitir também o som. Os botões de compartilhar/parar e sair ficam no canto inferior direito do palco e, durante uma transmissão, só aparecem quando o mouse se mexe — para a tela ficar limpa.
- Dois cliques no vídeo colocam a transmissão em tela cheia.
- A bolinha do avatar brilha em verde quando a pessoa está falando.
- A sala existe enquanto o anfitrião (quem criou) estiver nela. Se ele sair, a sala fecha.
- Quedas de conexão: se a internet oscilar, o JanjaCord refaz sozinho as ligações de voz que caíram e reconecta com a sala (você vê "Reconectando…" no topo). Só depois de várias tentativas sem sucesso ele avisa para entrar de novo.
- Clicar no X não fecha o JanjaCord: ele se recolhe para a bandeja do sistema (perto do relógio) e a chamada continua. Clique no ícone da bandeja para reabrir, ou clique nele com o botão direito e escolha "Sair de vez" para fechar de verdade.
#Como rodar em modo de desenvolvimento
npm install npm start
#Como gerar o instalador (.exe)
npm run build
Os arquivos aparecem na pasta dist:
JanjaCord Setup <versão>.exe— instalador (instala e cria atalho)JanjaCord <versão>.exe— versão portátil (basta dar dois cliques, sem instalar)
#Atualização automática 🔄
O JanjaCord se atualiza sozinho: quem instalou pelo JanjaCord Setup recebe as novas versões em segundo plano. Quando o download termina, aparece um aviso com "Reiniciar agora" (instala na hora e reabre sozinho) e "Depois" (instala quando o app for fechado de vez). A versão portátil não consegue se substituir, mas avisa quando existe versão nova e oferece a página de download.
As versões ficam publicadas em: https://github.com/relaamorim/janjacord/releases
Curiosidade técnica: o app já se chamou MyDisc. Alguns identificadores internos (endereço das salas, código de instalação) continuam com o nome antigo de propósito — é isso que garante que quem instalou como MyDisc receba a atualização de nome automaticamente e continue entrando nas mesmas salas.
#Como lançar uma nova versão (para o dono do projeto)
- Faça as mudanças no código.
- Aumente o número em
"version"nopackage.json(ex.: de1.2.0para1.3.0). - Rode:
$env:GH_TOKEN = (gh auth token --user relaamorim) npm run publicar
Pronto: a versão sobe para o GitHub e todos os usuários recebem automaticamente.
#Como funciona por dentro (resumo)
- Electron — transforma a interface (HTML/CSS/JS) em um aplicativo de Windows. É a mesma base do Discord, Slack e WhatsApp Desktop.
- WebRTC — tecnologia de chamadas do navegador. O áudio e o vídeo vão direto de um computador para o outro (ponto a ponto), sem passar por servidor.
- PeerJS — serviço gratuito usado só no começo, como "ponto de encontro": é ele que faz o código da sala levar até o computador do anfitrião.
- Full HD — a captura é pedida em 1920×1080 a 30 quadros/s, com prioridade para manter a resolução (texto nítido) mesmo se a rede oscilar. Como quem transmite envia uma cópia para cada espectador, o aplicativo divide automaticamente um orçamento de ~18 Mbps entre eles (com 2 espectadores, até 6 Mbps cada; com 9, cerca de 2 Mbps cada).
- Chat de texto — as mensagens passam pelo anfitrião, que as distribui para todos e guarda as últimas 50 para mostrar a quem chegar depois.
- Som de um aplicativo —
nativo/janjacord-audio.csé um programinha em C# (compilado com ocsc.exeque já vem no Windows:npm run compilar-audio) que usa a API process loopback do Windows para capturar o áudio de um único processo e entregá-lo ao JanjaCord, que o coloca na transmissão. O executável fica embin/e vai fora do pacote do app (asarUnpack) para poder ser executado. Ele captura no formato de mixagem do dispositivo (ex.: 8 canais float em headsets 7.1), faz a redução para estéreo com coeficientes clássicos (sem o fator de normalização do Windows), compensa o volume da sessão do aplicativo no Mixer (até +20 dB) e entrega PCM 48 kHz, estéreo, 16 bits. Na interface, esse áudio entra numAudioWorkletcom fila — que não depende dos temporizadores da página, desacelerados pelo Chromium quando a janela do JanjaCord está coberta pelo jogo — e a trilha resultante segue junto com o vídeo para os espectadores.
#Contribuindo
Achou um problema ou tem uma ideia? Abra uma issue. Quer mexer no código? O projeto é propositalmente simples: HTML, CSS e JavaScript puros com Electron — sem frameworks. Faça um fork, rode npm install e npm start, e mande seu pull request.
#Licença
MIT — use, copie, modifique e distribua à vontade, inclusive comercialmente. Só mantenha o aviso de copyright.
#Limitações conhecidas
- Em algumas redes muito restritas (certas empresas/universidades), a conexão direta entre computadores pode ser bloqueada. Nesses casos a chamada não completa — é uma limitação de rede, não do aplicativo.
- O som do computador junto com a tela funciona no Windows (nos outros sistemas, só o vídeo).
- Quem compartilha a tela envia uma cópia do vídeo para cada participante. A qualidade se ajusta sozinha ao número de espectadores, mas para uma sala cheia (9 espectadores) é bom que quem transmite tenha internet com uns 20 Mbps de envio (upload) — comum em conexões de fibra.
- O chat não guarda histórico depois que a sala fecha (as mensagens vivem só durante a conversa).