[🛠] Diário de desenvolvimento do Secret Messenger #1: Flutter Web + Node (Teste de Vibe Coding)
✨ Resumo do GPT
Um dia em que concluí a arquitetura técnica e o desenho de segurança de um messenger com foco em segurança para desertores norte-coreanos na China, e escrevi um plano de desenvolvimento de MVP baseado em Flutter Web + Node.
🧮 Secret Messenger
Este é um messenger para usuários desertores norte-coreanos que vivem na China sem documento de identificação oficial.
- 📱 Acessível pelo navegador, sem necessidade de instalação
- 💬 Capaz de receber informações, manter conversas secretas e compartilhar arquivos
- 🛡️ Uma ferramenta de comunicação com foco em segurança, baseada em Flutter Web
Este projeto é um experimento técnico voltado para proteção de direitos humanos e apoio à sobrevivência, não para fins políticos. Ele não pressupõe distribuição pública nem uso comercial. (🔒 Gerenciado apenas em um repositório privado no GitHub.)
📌 Visão geral do projeto
| Item | Conteúdo |
|---|---|
| Usuários | Desertores norte-coreanos na China, com letramento digital muito baixo e celulares monitorados pela segurança pública |
| Objetivo | Compartilhamento de informações, chat secreto e compartilhamento seguro de arquivos |
| Formato | SPA em Flutter Web baseada em navegador, sem necessidade de instalação |
| Domínio | https://???.net (disfarçado como UI de calculadora) |
| Estratégia de disfarce da UI | Primeira tela com aparência de calculadora → ao inserir uma operação específica, envia uma solicitação de entrada ao servidor |
| Método de entrada | O Flutter Web envia a chave de entrada ao servidor por POST, e o servidor decide se emite um token de acesso |
| Estratégia de segurança do código | Condições e lógicas sensíveis não ficam incluídas no cliente; todas as decisões são feitas no lado do servidor |
| Prioridade de funcionalidades | ① Recebimento de informações → ② Chat → ③ Compartilhamento de arquivos |
🧪 Projeto experimental de Vibe Coding
Ao mesmo tempo, este projeto é um MVP que experimenta a aplicabilidade prática e os limites de um modo de desenvolvimento chamado Vibe Coding.
- O desenho e a implementação avançam em linguagem natural, com a maior parte da geração de código feita com ajuda de IA.
- O usuário exerce o papel de “designer/coordenador”, em vez de escrever diretamente a maior parte do código.
- O objetivo é avaliar na realidade a eficiência e os fatores de risco do desenvolvimento conduzido por IA.
Por meio deste experimento, quero explorar o futuro dos métodos de desenvolvimento baseados em IA e verificar se eles chegam a um nível aplicável a um projeto real de direitos humanos.
⚙️ Stack técnica
🔷 Frontend (Flutter Web)
-
Flutter 3.x(Web build) -
Material 3(ideal para o disfarce de UI de calculadora) -
go_router(transições de página e fluxo de entrada oculto) -
Riverpod(gerenciamento de estado: UUID, sessão etc.) -
http(comunicação com REST API)
🔍 Estratégia de UI
- Tela inicial:
TextField + grade de botõesem formato de calculadora - Inserção de uma operação específica → envio ao servidor → se for válida, permite a entrada interna
- Nenhum gatilho ou lógica de entrada é incluído no cliente
🔷 Backend (Node.js + Express)
Node.js 18+-
Express.js(servidor REST API) -
SQLite(DB local baseado em arquivo) -
Multer(upload de arquivos) -
node-cron(agendador de exclusão baseado em TTL) - Middleware de segurança como
CORS,helmeterate-limit
📁 APIs principais
-
POST /check-trigger- O servidor verifica a string enviada
- Se ela corresponder a uma condição de gatilho previamente registrada, emite um token de sessão
-
GET /session/:idou/inbox/:key- Somente usuários com uma chave de sessão emitida pelo servidor podem acessar funcionalidades internas
-
POST /message,GET /messages- Armazenamento/consulta de mensagens baseadas em TTL
-
POST /upload,GET /file/:id- Suporte a upload de arquivos e exclusão automática
🔷 Infraestrutura / Deploy
-
Docker(garantia de consistência e portabilidade do ambiente de servidor) -
Ubuntu 22.04 LTS(Vultr VPS) -
Vultr VPS (região de Hong Kong)— para garantir estabilidade de acesso a partir da China -
Cloudflare(proxy DNS + SSL + ocultação de IP) - Domínio:
???.net— domínio para disfarce de calculadora
🔐 Estratégia de segurança
| Item | Descrição |
|---|---|
| Separação de código | Código sensível, como lógica de entrada e gatilhos, é exclusivo do servidor |
| Papel limitado do Flutter Web | Apenas renderiza a UI e envia entradas |
| HTTPS obrigatório | Cloudflare + Let’s Encrypt |
| Proxy Cloudflare | Oculta o IP do servidor e ajuda na defesa contra DDoS |
| Restrição de CORS | Bloqueia solicitações de domínios fora da lista permitida |
| Política no-cache | Aplica cabeçalhos no-store a todas as respostas |
| TTL de mensagens | Exclusão automática baseada no horário de criação |
| TTL de arquivos | Arquivos são excluídos dentro de um tempo definido após o upload, tratados pelo node-cron |
| Restrição de armazenamento local | Minimizar ou proibir o uso de localStorage/cookies |
🗂️ Lista de funcionalidades
| Funcionalidade | Status | Descrição |
|---|---|---|
| 🧊 UI disfarçada | 🟢 Em implementação | Disfarçada como UI de calculadora, com condição de entrada aplicada pelo servidor |
| 📥 Recebimento de informações | 🟢 Em preparação | Avisos do administrador (somente leitura) |
| 💬 Sala de chat | 🟡 Planejada | Chat em grupo anônimo (baseado em TTL) |
| 📁 Compartilhamento de arquivos | 🟡 Planejado | Compartilhamento de arquivos com exclusão automática configurada |
| 🔥 Sistema de exclusão | 🟡 Planejado | Automação de exclusão TTL para mensagens/arquivos |
🚀 Roadmap de desenvolvimento
- ⚙️ Projetar a arquitetura do sistema e estabelecer o modelo de segurança
- 📌 Finalizar stack técnica + decidir estratégia de disfarce
-
🌐 Comprar domínio (
???.net) - 🔨 Scaffold da calculadora em Flutter Web
- 🔨 Scaffold da API Express + SQLite
- 🔐 Construir estrutura de processamento da chave de entrada no servidor
- 📦 Docker + automação de deploy
- 🌐 Deploy em VPS + integração com Cloudflare
- 🧪 Teste do MVP
- 🎯 Estabilização e distribuição interna
📄 Observações
- Nunca commitar código ou informações sensíveis no GitHub.
- O código Flutter para deploy vai para o diretório
build/, e o código do servidor roda apenas dentro do contêiner Docker. - Toda comunicação de API é criptografada via HTTPS, e os dados dos usuários são descartados automaticamente após a configuração de TTL.
- Informações sensíveis como a chave de entrada da calculadora e UUIDs de usuários nunca são incluídas no frontend; elas são processadas apenas com base em chaves privadas de verificação dentro do servidor.
- A verificação das condições de entrada e a identificação do usuário são compostas como lógica de verificação unidirecional executada somente no lado do servidor, de modo que mesmo se o código Flutter Web for exposto, as informações de segurança não sejam reveladas externamente.
👤 Nota do desenvolvedor
Este projeto não é apenas um app simples. Começo com a consciência de que, para algumas pessoas, ele pode ser uma ferramenta de sobrevivência ligada à própria vida.
Que a tecnologia não seja uma ferramenta de vigilância, mas uma ferramenta para a liberdade.
💭 Diário
Para que eu vivo? Riqueza e honra? Não. Coisas desse tipo, para começo de conversa, são ilusões que não podem ser objetivos. São apenas meios.
Qual é a vida que eu realmente quero? … Bem, não consigo defini-la. De todo modo, está claro que é uma vida incluída dentro da grande categoria de amar a Deus / amar o próximo.
Enfim, vendo que este projeto faz meu coração bater e me dá entusiasmo, acho que esse tipo de coisa é o que eu mais queria fazer agora.
Então, por enquanto, vamos começar por isto.
Deixe um comentário