Coisas que eu construí.
Projetos pessoais, na maior parte. Tudo aqui é open source, e cada item aponta para o repositório correspondente.
Shatters
Segunda versão, reescrita em um único repositório. O servidor é burro de propósito: autentica clientes, repassa texto cifrado opaco e guarda chaves públicas e blobs criptografados. Chaves de identidade, acordo de chaves X3DH e o Double Ratchet rodam todos no navegador, via libsodium. O repositório traz a própria especificação de protocolo e um modelo de ameaça. A primeira versão ficava em três repositórios, em C++23, Rust e Tauri, e continua no ar como referência.
- server
Serviço em Go sobre chi e gorilla/websocket, com PostgreSQL via pgx e migrações SQL versionadas. Cuida da autenticação e do repasse, e nunca vê texto em claro.
Código ↗ - web
Cliente em Next.js e React, onde roda a criptografia de ponta a ponta: chaves de identidade Ed25519 e X25519, X3DH e o Double Ratchet, tudo via libsodium. Testes unitários e de ponta a ponta em Vitest.
Código ↗ - deploy
Stacks de Docker Compose para desenvolvimento e produção, com o Caddy terminando o TLS. Leva um VPS zerado a uma instância funcionando com um comando.
Código ↗