Pitch: Fenestra: dois cliques num dist/index.html e ele abre em localhost
Eu criei o Fenestra porque vivia abrindo um terminal só para servir um build estático.
Builds modernos usam módulos ES. Em file:// o navegador bloqueia módulos por
CORS, caminhos absolutos apontam para a raiz do disco e service workers não
existem. A solução comum é abrir um terminal e rodar um servidor estático.
O Fenestra elimina esse passo: ele é o servidor estático, associado ao duplo clique.
Dê dois cliques num index.html (ou arraste a pasta sobre o executável) e o
Fenestra serve aquela pasta em 127.0.0.1, numa porta estável, e abre uma aba
normal no seu navegador. Sem Electron, sem Node, sem extensão, sem janela de
navegador própria.
O que ele faz:
- Windows: um
.exede ~120 KB, só .NET Framework, sem instalador. - Linux/macOS: um único binário Go estático; Homebrew para o CLI do macOS.
- Porta estável por pasta:
localStorage, cookies e service worker sobrevivem. - Fallback de SPA para rotas sem extensão.
- Confinamento de caminhos: caminhos pai, truques de unidade e arquivos ocultos
são rejeitados. - Seletor de navegador: Edge, Chrome, Firefox, Brave, Vivaldi, Opera, Chromium
e Safari. - Manual offline embutido no executável, em sete idiomas.
- Sem cookies, sem analytics, sem telemetria.
- Um
version.jsonestático é checado uma vez por semana; se houver
atualização, abre uma aba dispensável por versão.
Status: 1.1.0. Está funcional, mas não vou fingir que está pronto.
Limitações honestas:
- Os binários não têm assinatura de código; SmartScreen/Gatekeeper pedem
confirmação uma vez. - O macOS não tem app notarizado; o kit de montagem compila um localmente.
- Serve apenas arquivos estáticos: sem backend, sem proxy de API, sem TLS/auth.
- Algumas traduções são comunitárias e ainda não foram revisadas por nativos.
- Ainda há bugs, que vou corrigindo conforme aparecem.
Links:
- Site: https://benedetleandro.github.io/fenestra/
- Apresentação em uma página: https://benedetleandro.github.io/fenestra/presentation.html
- Manual: https://benedetleandro.github.io/fenestra/manual.html
- Código-fonte: https://github.com/benedetleandro/fenestra
- Release (binários, manual, SHA256SUMS): https://github.com/benedetleandro/fenestra/releases/tag/v1.1.0
Feedback que eu gostaria de receber:
- O fluxo de "tornar padrão" no Windows está claro?
- O kit de montagem do macOS funcionou para você?
- O que quebrou ou confundiu nos primeiros cinco minutos?
Se for útil para pelo menos uma pessoa, já valeu a pena. Obrigado por ler.