ORDO: O Mensageiro Privado com Interface Hexagonal que Substitui Listas Infinitas de Chats
Cansado de listas verticais intermináveis em aplicativos de mensagens? Um desenvolvedor criou o ORDO, um mensageiro privado com criptografia de ponta a ponta (E2EE) e uma interface inovadora baseada em colmeias hexagonais, utilizando Kotlin para o cliente Android e Go para o servidor.
MundiX News·08 de junho de 2026·7 min de leitura·👁 8 views
Olá, comunidade!
Confesso que estou exausto das interfaces de comunicação e navegação atuais. Onde quer que olhemos – seja no Telegram, Slack, WhatsApp ou em nossos e-mails – somos recebidos pelo mesmo padrão: uma lista vertical infinita e opressora de chats. Isso transforma a comunicação em uma rotina, uma esteira onde novas mensagens constantemente empurram as antigas, forçando-nos a rolar a tela infinitamente para cima e para baixo. Senti a necessidade de criar algo fundamentalmente diferente, algo mais próximo das interconexões naturais encontradas na natureza. Ao desenvolver a interface, me inspirei fortemente na biomimética e na estrutura das conexões neurais de forma simplificada. Afinal, na natureza, não existem listas ou tabelas; ela opera com nós, ramos e redes. Meu objetivo era criar um ambiente para comunicação e estruturação de pensamentos que fosse intuitivo e natural.
Assim nasceu o projeto ORDO (Ordem). A ideia de navegação é implementada de forma fractal e espacial, através de colmeias (células) hexagonais. ORDO é um conceito de mensageiro privado totalmente não comercial e gratuito, com criptografia de ponta a ponta (E2EE), desenvolvido por mim, sozinho. Quero compartilhar com vocês a história de seu desenvolvimento, mostrar como ele funciona internamente e, claro, receber críticas construtivas.
🌌 Como é visualmente?
A interface do aplicativo é construída sobre o conceito de três direções fractais principais, nas quais se pode mergulhar infinitamente em profundidade:
⬢ Eu (1.1) … (em desenvolvimento):
Espaço para a formação de pensamentos pessoais (notas, calendário, cofre e favoritos, conectados por uma estruturação inteligente).
⬢ Nós (1.2):
Espaço para diálogos pessoais conscientes e pontes de comunicação. Este é o bloco mais completo no momento.
⬢ Mundo / Comunidades (1.3) … (em desenvolvimento):
Espaço para grupos e canais de transmissão.
Você toca a célula central com o dedo e pode rolar suavemente e navegar pelos ramos do fractal. Cada célula é um nó de comunicação, dentro do qual podem existir novos nós ou chats criptografados. Gravei demonstrações curtas do funcionamento da interface, pois é difícil transmitir isso apenas com palavras:
Demonstração de navegação por colmeias (YouTube)
Processo de pareamento de dispositivos (YouTube)
Como funcionam os diálogos dentro do ORDO (YouTube)
🛰 O que há por baixo do capô do cliente (Android)?
O projeto é escrito inteiramente em Kotlin, utilizando Jetpack Compose para a renderização da interface. Durante o desenvolvimento, segui o princípio de "mínima pegada digital". Veja como isso é implementado tecnicamente:
Identidade sem registro ou senhas:
O aplicativo não possui servidores de registro, logins, senhas ou vinculação a números de telefone. Na primeira inicialização, o dispositivo gera um par de chaves criptográficas Ed25519. Sua chave pública é seu único passaporte. Com base nela, é gerado um código de texto curto e conveniente ("DNA" do perfil, por exemplo, Gold013189). Você pode exportar suas chaves como uma string criptografada para backup e restaurar seu perfil em qualquer outro dispositivo.
Banco de dados criptografado em disco:
Toda a história de mensagens e metadados são armazenados apenas localmente em seu telefone. O banco de dados SQLite é criptografado no disco físico usando a biblioteca SQLCipher (chave de 128 bits utilizada). A senha para descriptografar o banco de dados é gerada com base na chave privada do usuário, que é armazenada com segurança no Android Keystore através do EncryptedSharedPreferences. Se um invasor obtiver acesso físico ao telefone, ele não poderá ler o banco de dados sem violar o Keystore.
Criptografia de ponta a ponta (End-to-End):
Todas as mensagens são criptografadas nos dispositivos usando o algoritmo AES-256-GCM. A função de transferência de arquivos de mídia está em processo de refinamento e não foi incluída nesta versão, mas as mensagens são criptografadas de forma completa. As chaves de criptografia para cada chat são geradas diretamente durante o pareamento dos dispositivos. O servidor-retransmissor nunca vê suas mensagens em texto claro – para ele, é apenas um trânsito de um conjunto aleatório de bytes.
Por que WebSocket em Foreground Service em vez de Google FCM?
As notificações push habituais do Google (FCM) são uma ferramenta conveniente, mas são totalmente controladas pela corporação. O Google vê quem envia sinais para quem e em que momento, formando seu grafo social em seus servidores. Para evitar isso, implementei um serviço de background independente (Foreground Service). Ele mantém uma conexão WebSocket fina e energeticamente eficiente com o servidor. Ao enviar um "ping" (chamada para um diálogo), o servidor encontra sua conexão na memória RAM pela chave pública e instantaneamente retransmite um pacote criptografado vazio de alguns bytes. O telefone recebe esse "toque na porta", compara o hash do canal localmente e exibe uma notificação. Nosso serviço de background é projetado para consumir praticamente nenhuma bateria durante o modo de espera.
Um detalhe importante:
Para evitar que os mecanismos agressivos de economia de energia das versões modernas do Android (a partir das versões 13-14) desliguem forçadamente o serviço 15 minutos após o bloqueio da tela ou ao fechar o aplicativo, o usuário precisa conceder manualmente ao aplicativo permissão para execução ilimitada em segundo plano (Unrestricted background execution).
📡 O que há por baixo do capô do servidor (Go Relay)?
A parte do servidor é escrita em Go e funciona como um roteador "cego" exclusivamente na memória RAM. Não há banco de dados de mensagens no servidor. Os pacotes são retransmitidos diretamente para o destinatário, se ele estiver online. Se o destinatário estiver offline, o ping é temporariamente salvo em uma caixa de correio na memória RAM (sync.Map) e removido imediatamente após a entrega ou após 24 horas. Otimizei o servidor para eliminar operações pesadas de gravação em disco a cada pequena ação. O banco de dados SQLite no servidor é usado apenas uma vez – no momento do registro da estrutura de um novo canal durante o pareamento.
🤝 Ritual de Pareamento: O Papel da Palavra Secreta
No ORDO, é impossível receber spam de desconhecidos em nível de hardware. Para iniciar uma comunicação, é preciso passar por um "aperto de mão". O elemento criptográfico chave aqui é a Palavra Secreta. Ela é inserida em ambos os cenários de pareamento e desempenha um papel crucial: com base nela, os dispositivos geram um identificador único de canal de comunicação (ChannelId) e derivam a chave de criptografia simétrica AES-256-GCM usando o algoritmo PBKDF2 (100.000 iterações). A Palavra Secreta nunca é transmitida ao servidor em texto claro. Sem o conhecimento desta palavra, nem mesmo o proprietário do servidor poderá saber quem está se comunicando nos retransmissores, muito menos descriptografar o tráfego.
Ritual Local (QR):
Em um encontro pessoal, vocês escaneiam um código QR descartável um do outro. Este código transmite automaticamente para o seu dispositivo a chave pública do parceiro e o endereço de seu retransmissor, eliminando erros de digitação. Após isso, ambos inserem a mesma Palavra Secreta para selar e criptografar de forma segura o seu canal.
Ritual Remoto (Blind Match por ID):
Se vocês estiverem distantes um do outro, inserem manualmente os IDs um do outro ou enviam um código QR, e em seguida a mesma Palavra Secreta. Os telefones enviam ao servidor não a palavra em si, mas seu hash criptográfico unidirecional (SHA-256). O servidor atua como um "comutador cego": vendo dois hashes idênticos na memória, ele conecta seus dispositivos por um túnel temporário por uma fração de segundo, onde os telefones trocam chaves de criptografia públicas, geram um sal de sessão mútuo e registram o canal de comunicação. O servidor fecha o túnel e se afasta.
⚠️ Status atual do projeto e disclaimer
Nesta fase, o projeto ORDO é um protótipo de trabalho ativo. Compartilho-o com a comunidade de forma totalmente gratuita e sem publicidade. Como a base de código e a estrutura de dados em disco estão em desenvolvimento ativo, a retrocompatibilidade dos bancos de dados locais não é garantida. Atualizar o aplicativo pode resultar na redefinição completa do histórico de chats locais em seu dispositivo. Por favor, não o utilize para armazenar informações críticas nesta fase! Observe também a segurança: o endereço do servidor está oculto no código-fonte e ofuscado com R8/ProGuard na build de lançamento. Para proteger o servidor, usamos verificação de assinatura Ed25519 para cada pacote e limitação de taxa de requisições. No futuro, publicarei o código-fonte do servidor Go Relay para que todos possam executar seu próprio retransmissor. Ficarei feliz em receber seus feedbacks, críticas à arquitetura, sugestões para melhorar a interface de colmeias e a busca por bugs! Código-fonte e APK pronto no GitHub.
Olá, comunidade!
Confesso que estou exausto das interfaces de comunicação e navegação atuais. Onde quer que olhemos – seja no Telegram, Slack, WhatsApp ou em nossos e-mails – somos recebidos pelo mesmo padrão: uma lista vertical infinita e opressora de chats. Isso transforma a comunicação em uma rotina, uma esteira onde novas mensagens constantemente empurram as antigas, forçando-nos a rolar a tela infinitamente para cima e para baixo. Senti a necessidade de criar algo fundamentalmente diferente, algo mais próximo das interconexões naturais encontradas na natureza. Ao desenvolver a interface, me inspirei fortemente na biomimética e na estrutura das conexões neurais de forma simplificada. Afinal, na natureza, não existem listas ou tabelas; ela opera com nós, ramos e redes. Meu objetivo era criar um ambiente para comunicação e estruturação de pensamentos que fosse intuitivo e natural.
Assim nasceu o projeto ORDO (Ordem). A ideia de navegação é implementada de forma fractal e espacial, através de colmeias (células) hexagonais. ORDO é um conceito de mensageiro privado totalmente não comercial e gratuito, com criptografia de ponta a ponta (E2EE), desenvolvido por mim, sozinho. Quero compartilhar com vocês a história de seu desenvolvimento, mostrar como ele funciona internamente e, claro, receber críticas construtivas.
🌌 Como é visualmente?
A interface do aplicativo é construída sobre o conceito de três direções fractais principais, nas quais se pode mergulhar infinitamente em profundidade:
⬢ Eu (1.1) … (em desenvolvimento):
Espaço para a formação de pensamentos pessoais (notas, calendário, cofre e favoritos, conectados por uma estruturação inteligente).
⬢ Nós (1.2):
Espaço para diálogos pessoais conscientes e pontes de comunicação. Este é o bloco mais completo no momento.
⬢ Mundo / Comunidades (1.3) … (em desenvolvimento):
Espaço para grupos e canais de transmissão.
Você toca a célula central com o dedo e pode rolar suavemente e navegar pelos ramos do fractal. Cada célula é um nó de comunicação, dentro do qual podem existir novos nós ou chats criptografados. Gravei demonstrações curtas do funcionamento da interface, pois é difícil transmitir isso apenas com palavras:
Demonstração de navegação por colmeias (YouTube)
Processo de pareamento de dispositivos (YouTube)
Como funcionam os diálogos dentro do ORDO (YouTube)
🛰 O que há por baixo do capô do cliente (Android)?
O projeto é escrito inteiramente em Kotlin, utilizando Jetpack Compose para a renderização da interface. Durante o desenvolvimento, segui o princípio de "mínima pegada digital". Veja como isso é implementado tecnicamente:
Identidade sem registro ou senhas:
O aplicativo não possui servidores de registro, logins, senhas ou vinculação a números de telefone. Na primeira inicialização, o dispositivo gera um par de chaves criptográficas Ed25519. Sua chave pública é seu único passaporte. Com base nela, é gerado um código de texto curto e conveniente ("DNA" do perfil, por exemplo, Gold013189). Você pode exportar suas chaves como uma string criptografada para backup e restaurar seu perfil em qualquer outro dispositivo.
Banco de dados criptografado em disco:
Toda a história de mensagens e metadados são armazenados apenas localmente em seu telefone. O banco de dados SQLite é criptografado no disco físico usando a biblioteca SQLCipher (chave de 128 bits utilizada). A senha para descriptografar o banco de dados é gerada com base na chave privada do usuário, que é armazenada com segurança no Android Keystore através do EncryptedSharedPreferences. Se um invasor obtiver acesso físico ao telefone, ele não poderá ler o banco de dados sem violar o Keystore.
Criptografia de ponta a ponta (End-to-End):
Todas as mensagens são criptografadas nos dispositivos usando o algoritmo AES-256-GCM. A função de transferência de arquivos de mídia está em processo de refinamento e não foi incluída nesta versão, mas as mensagens são criptografadas de forma completa. As chaves de criptografia para cada chat são geradas diretamente durante o pareamento dos dispositivos. O servidor-retransmissor nunca vê suas mensagens em texto claro – para ele, é apenas um trânsito de um conjunto aleatório de bytes.
Por que WebSocket em Foreground Service em vez de Google FCM?
As notificações push habituais do Google (FCM) são uma ferramenta conveniente, mas são totalmente controladas pela corporação. O Google vê quem envia sinais para quem e em que momento, formando seu grafo social em seus servidores. Para evitar isso, implementei um serviço de background independente (Foreground Service). Ele mantém uma conexão WebSocket fina e energeticamente eficiente com o servidor. Ao enviar um "ping" (chamada para um diálogo), o servidor encontra sua conexão na memória RAM pela chave pública e instantaneamente retransmite um pacote criptografado vazio de alguns bytes. O telefone recebe esse "toque na porta", compara o hash do canal localmente e exibe uma notificação. Nosso serviço de background é projetado para consumir praticamente nenhuma bateria durante o modo de espera.
Um detalhe importante:
Para evitar que os mecanismos agressivos de economia de energia das versões modernas do Android (a partir das versões 13-14) desliguem forçadamente o serviço 15 minutos após o bloqueio da tela ou ao fechar o aplicativo, o usuário precisa conceder manualmente ao aplicativo permissão para execução ilimitada em segundo plano (Unrestricted background execution).
📡 O que há por baixo do capô do servidor (Go Relay)?
A parte do servidor é escrita em Go e funciona como um roteador "cego" exclusivamente na memória RAM. Não há banco de dados de mensagens no servidor. Os pacotes são retransmitidos diretamente para o destinatário, se ele estiver online. Se o destinatário estiver offline, o ping é temporariamente salvo em uma caixa de correio na memória RAM (sync.Map) e removido imediatamente após a entrega ou após 24 horas. Otimizei o servidor para eliminar operações pesadas de gravação em disco a cada pequena ação. O banco de dados SQLite no servidor é usado apenas uma vez – no momento do registro da estrutura de um novo canal durante o pareamento.
🤝 Ritual de Pareamento: O Papel da Palavra Secreta
No ORDO, é impossível receber spam de desconhecidos em nível de hardware. Para iniciar uma comunicação, é preciso passar por um "aperto de mão". O elemento criptográfico chave aqui é a Palavra Secreta. Ela é inserida em ambos os cenários de pareamento e desempenha um papel crucial: com base nela, os dispositivos geram um identificador único de canal de comunicação (ChannelId) e derivam a chave de criptografia simétrica AES-256-GCM usando o algoritmo PBKDF2 (100.000 iterações). A Palavra Secreta nunca é transmitida ao servidor em texto claro. Sem o conhecimento desta palavra, nem mesmo o proprietário do servidor poderá saber quem está se comunicando nos retransmissores, muito menos descriptografar o tráfego.
Ritual Local (QR):
Em um encontro pessoal, vocês escaneiam um código QR descartável um do outro. Este código transmite automaticamente para o seu dispositivo a chave pública do parceiro e o endereço de seu retransmissor, eliminando erros de digitação. Após isso, ambos inserem a mesma Palavra Secreta para selar e criptografar de forma segura o seu canal.
Ritual Remoto (Blind Match por ID):
Se vocês estiverem distantes um do outro, inserem manualmente os IDs um do outro ou enviam um código QR, e em seguida a mesma Palavra Secreta. Os telefones enviam ao servidor não a palavra em si, mas seu hash criptográfico unidirecional (SHA-256). O servidor atua como um "comutador cego": vendo dois hashes idênticos na memória, ele conecta seus dispositivos por um túnel temporário por uma fração de segundo, onde os telefones trocam chaves de criptografia públicas, geram um sal de sessão mútuo e registram o canal de comunicação. O servidor fecha o túnel e se afasta.
⚠️ Status atual do projeto e disclaimer
Nesta fase, o projeto ORDO é um protótipo de trabalho ativo. Compartilho-o com a comunidade de forma totalmente gratuita e sem publicidade. Como a base de código e a estrutura de dados em disco estão em desenvolvimento ativo, a retrocompatibilidade dos bancos de dados locais não é garantida. Atualizar o aplicativo pode resultar na redefinição completa do histórico de chats locais em seu dispositivo. Por favor, não o utilize para armazenar informações críticas nesta fase! Observe também a segurança: o endereço do servidor está oculto no código-fonte e ofuscado com R8/ProGuard na build de lançamento. Para proteger o servidor, usamos verificação de assinatura Ed25519 para cada pacote e limitação de taxa de requisições. No futuro, publicarei o código-fonte do servidor Go Relay para que todos possam executar seu próprio retransmissor. Ficarei feliz em receber seus feedbacks, críticas à arquitetura, sugestões para melhorar a interface de colmeias e a busca por bugs! Código-fonte e APK pronto no GitHub.