Pular para o conteúdo
Todos os projetos
Logo do Guardian

Guardian

Extensão para Chrome com bloqueio local de sites e palavras-chave, configurações protegidas por senha e alertas por e-mail no plano Pro.

Ano
2026
Tipo
Ferramenta
Situação
Em produção
Código
Proprietário

Tecnologias

  • JavaScript
  • Chrome Extensions (Manifest V3)
  • Node.js
  • Supabase
  • SendGrid
  • Vercel
Imagem do projeto Guardian

Sobre o projeto

O Guardian é uma extensão para Google Chrome que bloqueia domínios e palavras-chave presentes nas URLs. As configurações são protegidas por senha, e o plano Pro oferece alertas por e-mail para responsáveis acompanharem o estado da proteção.

Problema

Bloquear um endereço não resolve, por si só, o controle das regras e o acompanhamento de sua ativação. Para uso pessoal ou supervisão familiar, é importante restringir alterações e informar quando a proteção foi desativada ou deixou de enviar sinais de funcionamento.

Solução

As regras são aplicadas localmente pelo navegador. Alterações nas configurações e liberações de acesso exigem autenticação. Ao tentar abrir um endereço bloqueado, o usuário é direcionado para uma página da extensão.

No plano Pro, o dispositivo envia periodicamente o estado da proteção ao backend. A ausência desse sinal ou a informação de desativação pode gerar um e-mail ao responsável.

Minha atuação

Concebi e desenvolvi a extensão, o motor de regras e o backend de alertas. Também implementei autenticação e recuperação de senha, integração de pagamentos, tradução da interface e publicação na Chrome Web Store.

Principais funcionalidades

  • Bloqueio de domínios e subdomínios
  • Filtro por palavras-chave na URL, com cadastro de vários termos de uma vez
  • Configurações protegidas por senha
  • Códigos de backup e frase de recuperação
  • Liberação temporária ou permanente mediante autenticação
  • Suporte ao uso em janelas anônimas
  • Registro local de tentativas bloqueadas e lista de domínios permitidos
  • Temas automático, claro e escuro, com interface em português e inglês
  • Plano Pro com alertas, relatório semanal por e-mail, guia de proteção por DNS e backup

Arquitetura e decisões técnicas

A extensão utiliza Manifest V3 e a API declarativeNetRequest. As regras dinâmicas são avaliadas pelo Chrome e redirecionam os acessos bloqueados para uma página interna. Isso dispensa scripts de inspeção do conteúdo de cada página para realizar o bloqueio.

A senha é armazenada como um hash derivado com PBKDF2 em 150.000 iterações. Os códigos de recuperação são de uso único e armazenados como hashes SHA-256. As configurações ficam em chrome.storage.local, e o bloqueio local não exige uma conta.

Os recursos Pro utilizam funções serverless na Vercel, Supabase para registrar dispositivos e SendGrid para enviar e-mails. Uma tarefa agendada verifica os sinais enviados pela extensão e identifica desativações ou interrupções de comunicação. A URL de desinstalação registrada no Chrome também é utilizada para detectar a remoção da extensão.

O envio de dados depende do cadastro de um e-mail pelo responsável. As informações se limitam a um identificador aleatório do dispositivo, estado da proteção, contagem de bloqueios e domínios mais bloqueados. URLs completas e histórico de navegação não são enviados.

Desafios técnicos

  • Proteger alterações nas regras. A autenticação abrange configurações, liberação de domínios e desativação da proteção dentro da extensão.
  • Acompanhar a proteção sem coletar a navegação completa. Os sinais periódicos permitem verificar o estado do dispositivo sem transmitir seu histórico de navegação.
  • Comunicar a ausência de sinal com clareza. Um dispositivo pode parar de reportar porque o computador está desligado. O alerta informa essa possibilidade, evitando apresentar toda interrupção como uma desativação confirmada.

Resultado

Extensão publicada na Chrome Web Store.

Tecnologias

JavaScript, Chrome Extensions (Manifest V3), Node.js, Supabase, SendGrid e Vercel.