
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

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.