6

Pitch: Fiz um Glassdoor com privacidade de verdade e não faço ideia se ele é usável por quem não é eu

Passei os últimos meses construindo o Hashdoor e cheguei no ponto em que eu preciso de gente de fora olhando, porque eu já não enxergo mais os problemas dele. Esse post é mais pedido de ajuda do que divulgação.

O que é

Um site de avaliações de empresas, tipo Glassdoor, sem cadastro. Não tem e-mail, não tem senha, não tem OAuth. O login é LNURL-Auth, que é o protocolo LUD-04: o servidor gera um desafio aleatório de 32 bytes, sua carteira Lightning assina esse desafio com secp256k1, e o servidor valida a assinatura contra a chave pública. O que fica no banco é essa chave pública e nada mais. O servidor sabe que a mesma chave voltou; ele nunca sabe de quem ela é.

O que eu realmente preciso

Está tudo no ar e funciona de ponta e ponta (até onde testei pessoalmente). Esse é o problema, quem testou fui eu, sabendo exatamente onde clicar, que é o tipo de teste que não vale lá muita coisa. O que eu não consegui descobrir sozinho:

Não sei como isso se comporta na mão de quem nunca abriu uma carteira Lightning, nem se o site explica de forma convincente por que ele pede uma ao invés de um e-mail. Não sei se cobrar pela avaliação afasta spam ou afasta justamente a pessoa cuja avaliação valeria mais. E a base está quase vazia, o que é um problema circular conhecido: ninguém escreve a primeira avaliação em um site vazio.

Sem roteiro de teste, de propósito. Entra, tenta usar como você usaria de verdade, e me conta onde travou. Se você desistiu no meio, me diz em que tela, isso vale mais para mim do que elogio. Crítica de código, de produto, de modelo de negócio ou de premissa, tudo é bem-vindo.

Cupom para testar sem pagar

TESTEEMPROD dá um crédito grátis, está limitado a 50 resgates, mas se batermos esse limite me avisem aqui nos comentários mesmo, que aumento ele conforme o necessário.

Site disponível em: https://hashdoor.is

Stack, para quem quiser mais detalhes técnicos:

Backend: .NET 10
Frontend: Nuxt 4
Banco de dados: PostgreSQL
Provedor Lightning: LNbits

Carregando publicação patrocinada...
3
1
2

Meus 2 cents,

Meus comentarios:

1 - Acho q ideia de nao ter login otima: ser anonimo de verdade eh um diferencial

2 - Mas desisti de testar (pelo menos por enquanto): O atrito para usar o LNbits (que nao conhecia) eh muito alto e da um certo "medo/desconfianca" em saber se as carteiras nao tem algum ponto de codigo malicioso junto, entao precisaria criar uma sandbox no desktop (nao vou testar no meu cel nem fodendo), aprender a usar e entao entrar no teu app para logar. Muito trabalho so para ver como funciona.

Com a quantidade de ataques com ingestao de codigo malicioso, tenho tomado cuidado redrobado para baixar algo "novo", ainda mais um binario. E baixar do codigo fonte tem de auditar e gerar o executavel, o que tambem da trabalho pacas. Antigamente tinha receio so quando baixava app via torrent ou locais duvidosos, hoje em dia tudo eh duvidoso.

2.1 - Mas novamente, a ideia de usar uma forma de login anonima eh bem interessante, so fico imaginando se nao tem outra forma com menos atrito ou mais mainstream.

2.2 - Talvez uma forma de criar uma carteira automatica e simplificada (via browser) que a pessoa baixa um JSON de autenticacao (ou algo assim, talvez via extensao do chrome) quando precisar usar novamente diminuiria este atrito (to chutando aqui, sem pensar muito - seria uma carteira com auto-custodia sem valor somente para autenticacao e armazenada/controlada via browser ou extensao).


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

1

Valeu demais pelo comentário, é exatamente o tipo de resposta que eu pedi, e ele já me mostrou uma falha de comunicação minha que eu não tinha enxergado.

O LNBits não tem nda a ver com o login. Ele é o provedor que eu uso do meu lado para emitir as faturas quando alguém compra crédito. Você nunca precisa instalar, criar conta nem chegar perto dele. Citei no post só porque estava listando a stack, e pelo seu comentário isso passou como se fosse pré-requisito pra entrar, erro meu.

Para o login serve qualquer carteira que implemente LNURL-Auth (LUD-04) Não é qualquer carteira Lightning, e essa distinção também não deixei clara (nem aqui nem no site, vou revisar a comunicação nele depois). O fluxo é: O site mostra um QR, sua carteira assina um desafio de uso único e acabou.

Não precisa nem ter um sat disponível para o login, a carteira só assina, ela nem gasta nada apra logar, saldo só entraria se fosse comprar créditos depois, e o cupom TESTEEMPROD existe justamente para pular essa parte e ir direto escrever uma avaliação.

Sobre:

não teria uma forma com menos atrito ou mais mainstream?

É basicamente onde eu cheguei também, uma chave guardada pelo navegador, sem valor, que só serve para autenticar, é mais ou menos o que a extensão do Alby (Uma wallet, mas reconheço que não é a das mais simples pra usar, principalmente para quem não é do meio crypto) já faz, e é a mesma ideia do Nostr via extensão (NIP-07), que é uma segunda porta que quero explorar. O que eu não achei foi uma opção mainstream que não coletasse dado pessoal, é exatamente a coisa que eu não quero ter no banco. Não vou fingir que o LNURL-Auth é o caminho mais amigável do mundo, porque não é: escolhi ele porque foi o único que não me obriga a guardar nada.

E o item que mais agradeço do seu comentário, foi sobre o LNBits, o /how-it-works não está fazendo o trabalho dele. Vou reescrever deixando mais explícito, obrigado, esse foi o feedback mais útil que recebi até agora.

1

Meus 2 cents extendidos,

"talk is cheap, show me the code"

Fiquei matutando uma forma de login 100% anonimo de forma mais "mainstream" e desenvolvi esta PoC (prova de conceito) de login com username (slug) sem senha, mas atraves de um codigo TOTP (p.ex. google authenticator) - o repositorio da PoC segue abaixo:

Basicamente tem uma tela de login onde pode ser digitado um username, com botoes para "entrar" e "criar conta".

Em "criar conta" ele cria uma nova conta com o username indicado e ja mostra o QR Code para ser adcionado no "google authenticator" (ou outro app de TOTP)

Em "entrar", baseado no "username" ele espera um codigo TOTP que o "google authenticator" gera e pronto.

No arquivo "spec/totp.md" que foi a SPEC usada para criar o app.

Eu sei que nao resolve todas as questoes que voce precisa, mas pelo menos tira o atrito do LNURL-Auth para contas de teste.

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

https://github.com/anderson-c-santos/anonymous-totp-login

2

Eliminar totalmente a opção de login convencional, na minha opinião, não é uma boa ideia. Essa abordagem tem seus pontos positivos, mas também apresenta desvantagens. Da forma como você implementou, por exemplo, eu nunca utilizei carteiras Lightning, não tenho uma conta e também não tenho interesse em criar uma. Para mim, é muito mais simples fazer o cadastro tradicional, usando e-mail e senha.

Na minha visão, existem alternativas melhores, como oferecer autenticação via OAuth2 com Google. É uma solução prática e acessível, já que a maioria das pessoas que usa Android ou os serviços do Google possui uma conta Gmail. Hoje em dia, é até difícil encontrar alguém que não tenha.

Quanto ao seu projeto, prefiro não entrar na questão da viabilidade. Respeito a sua ideia e, se você acredita que ela é viável, não cabe a mim tentar convencê-lo do contrário. Desejo sucesso no desenvolvimento do projeto.

1

De verdade, o seu projeto é uma solução fantasma.

Relatos anonimos não necesariamente são veridicos, e buscar avaliações de empresas pode ser uma pedra no sapto quando você não sabe extamente qual empresa procurar.

Contudo, você pode resolver uma problema real, e doloroso, da industria; Toda pessoa que já precisou escolher uma empresa para fazer algum contrato quer seja como funcionario ou cliente teve que bater, de frente, com a muralha da desconfiança e.g. será que o meu CV vai passar na cheklist do recruter, ou será que o fernecedor vai me entregar a tempo o material que pedi e com qualidade ?

Parece uma pergunta mundana mas está enraizada em todo o processo empresarial. E, eu vou te dar uma exemplo concreto disso.

Existe um projeto chamado DevNaGringa, que faz baiscamente algo parecido com a sua aplicação, mas expecializado em um unico nicho. Gerar uma lista de empresas que são bem avaliadas na contratação de devs brasileiros. Algo bastante importante, pois a maioria dos devs barasileiros não chegam nem ao onBording justamente por morarem no Brasil. E isso, pelos relatos do autor já lhe rendeu 90K, sendo apenas um side project.

Portanto, para um bom entendedor meia palavra basta. O que eu recomendaria seria pivotar a ideia do produto de "Avaliações Anônimas de Empresas" para "Buscador de boas relações empresariais " - ou algo do genero - O que muda ? As avaliaçõe ainda estarão ali, mas a experiencia do usuário sai de: essa empresa tem quais problemas. Para : deixa eu pesquisar quais empresas podem ser bons parceiros comerciais ou para trabalhar ?.

Bom, espero ter ajudado e se quiser uma ajuda na parte de testes e segurança recomendo fazer a sua inscrição em eshnitzchit, uma startup de cyber segurança, ainda em desenvolvimento, a qual trabalho -- 100% gartuito para projetos solos ou startups.

3

Valeu pelo tempo, tem coisa aproveitável aqui.

A crítica mais forte, na minha opinião, e isso eu concordo totalmente, é a veracidade. Não tenho como verificar vínculo empregatício sem pedir documento, e pedir documento mata a premissa do projeto, o único ponto que eu tenho hoje é, a avaliação custa (spam em escala fica caro).

buscar avaliações de empresas pode ser uma pedra no sapto quando você não sabe extamente qual empresa procurar.

Discordo do ponto de busca, o uso que eu tenho em mente, e que é como qualquer um usa o glassdoor hoje, não é descoberta, é quando você já tem o nome na mão, recebeu proposta, marcou entrevista, um recrutador chamou no LinkedIn. Você não está procurando uma boa empresa, você está checando aquela empresa. Nesse cenário a pergunta "qual empresa procurar" não existe.

Obrigado pela indicação da eshnitzchit, vou dar uma olhada.

1

Ok, isto são pontos de vistas diferentes. Contudo não deixo de acreditar no potencial da sua ideia.
Fiz um post para colaborar com o buscador de reviews.
Entretanto ao usar-la notei que, caso não haja um limite ne requisições à api de criação empresas e ao tamanho dos campos do formulario, isto pode acarretar dores de cabeça.

No ademais a sua aplicação está muito bem construida,
Sucesso & Paz

2

Obrigado pelo post e por ter ido usar de verdade, foi a primeira avaliação que o site recebeu, então vale bastante pra mim.

Sobre a criação de empresas, o que existe hoje é um portão econômico, e ele é mais fraco do que eu tratava na minha cabeça, pra cadastrar uma empresa você precisa ter pelo menos 1 crédito no saldo, mas o cadastro não consome esse crédito, ele só é gasto quando a avaliação é publicada. Então spam de avaliação custa dinheiro de verdade, mas spam de empresa custa um crédito ma vez só e depois é "de graça", isso realmente é um buraco, não uma decisão, vou pensar em algo para passar a tratar isso, obrigado mais uma vez.

Sucesso e paz pra você também.

1
1

Quantas pessoas se preocupam em "avaliar empresas de forma verdadeiramente anônima"?

Todas que avaliam no próprio glassdoor, mas que a confiança é baseada na própria plataforma? Pois a premissa do Glassdoor quando nasceu era justamente essa. O anonimato era a chave para garantir que as pessoas fossem honestas sem retaliação. Poucas se preocupam explicitamente, concordo. Mas quase todo mundo assume que tem, a pessoa só descobre que aquilo importava tanto quando quebra. Foi justamente o que rolou em 2024, quando usuários perceberam que nomes reais tinham sido adicionados aos perfis a partir de dados obtidos por fora, sem ninguém pedir.

A premissa do hashdoor é ter a privacidade por padrão, a melhor maneira de preservar um dado é não ter esse dado, não tem como identificar o usuário por e-mail se e-mail nunca existiu no banco.

1

Certo, se você não quer identificar o usuario por email, nome ou telefone, então porque não fazer "como antigamente" e criar um nickname e senha?

Alem disso, sem um e-mail ou telefone, como você evita ataques de avaliavoes em massa?

1

Com senha eu passo a guardar um hash, e isso é uma responsabilidade que hoje eu não tenho. Sem e-mail não existe recuperação de conta, então quem esquecer a senha perde a conta do mesmo jeito que perdeira uma chave, a propriedade "perdeu, era isso" continua igual, so que agora com mais código e mais coisa pra vazar. Tem também o hábito das pessoas, senha é reusada, e nickname é reusado ainda mais, muita gente usa o mesmo handle aqui, no GitHub e no X, e aí o identificador que era pra proteger vira justamente o que correlaciona. A chave do LNURL-Auth é derivada por domínio, então a mesma carteira gera uma chave diferente em cada site (você pode usar a mesma carteira com a mesma seed phrase aqui no tabnews e no hashdoor, que irá gerar hashs diferentes) então ela não me liga a lugar nenhum por default.

O ponto do nickname piora exatamente sua segunda pergunta, não existe identidade mais barata que produzir nickname com senha em massa, são infinitos e de graça. A avaliação em massa o que segura não é identidade, é custo, publicar uma avaliação consome um crédito e crédito se compra pagando.

Por fim uma limitação que reconheço, custo limita volume mas não limita veracidade, quem quiser pagar pra escrever mentira consegue, essa parte eu não tenho como resovler, talvez implementando um mecanismo de avaliação das avaliações? Estilo aqui no tabnews onde você pode dar um "upvote"?

1

Reparei que uma parte do pessoal aqui ficou mais preocupado em criticar a ideia do que o que voce pediu...

Fiz um teste rapido na interface:

  1. Apos usar a busca, voltar a pagina inicial (ou sair da pagina, funcao voltar, etc) e retornar novamente na page de busca, o input está vazio mas os dados da busca permancem.