Como criar uma GUI em HTML em cinco minutos sem Electron e sofrimento
Imagine uma situação: você escreveu uma ótima ferramenta em C++, Go ou Python. Ela funciona rápido, calcula com precisão, mas usá-la pelo terminal é conveniente apenas para você. Um cliente ou colegas pedem uma "interface normal". E então a dor de cabeça começa. Instalar o Qt? Pesado demais e demorado para aprender. Escrever em Electron? Você terá que arrastar centenas de megabytes de Chromium e Node.js para alguns botões.
Recentemente me deparei com o WebUI. Esta é uma pequena biblioteca C que resolve o problema de forma elegante: ela transforma qualquer navegador instalado no sistema em sua interface gráfica. Sem dependências desnecessárias e binários enormes.
Qual é o truque aqui
A ideia principal do WebUI é que o navegador já é um motor de GUI pronto e perfeitamente otimizado. Todo usuário já o tem. Por que empacotar outra instância do Chrome dentro da sua aplicação se você pode simplesmente conectar-se à que já está instalada?
Ao contrário do Tauri, o WebUI não te força a mexer com componentes WebView do sistema (embora essa opção também exista). A biblioteca simplesmente inicia uma sessão do navegador em modo aplicativo e organiza um canal de comunicação rápido via WebSocket.

O que está sob o capô
A biblioteca pesa apenas alguns kilobytes. É um único arquivo de cabeçalho que é fácil de integrar em um projeto existente. Aqui está o que chamou minha atenção:
- Multiplataforma. Funciona no Windows, Linux e macOS de forma igualmente previsível.
- Suporte para todos os navegadores populares. Chrome, Firefox, Edge e até o Yandex.Browser são detectados "on the fly".
- Perfis privados. O programa não vai misturar os cookies da sua aplicação com os dados pessoais do usuário no navegador.
- Portabilidade. Você não precisa instalar SDKs pesados para compilar o projeto.
Como fica no código
Vamos olhar um "Hello World" clássico. Em C fica quase como um script, sem magia e despejos de código:
#include "webui.h"
int main() {
size_t window = webui_new_window();
webui_show(window, "<html><script src=\"webui.js\"></script> Hello World! </html>");
webui_wait();
return 0;
}
E aqui está um exemplo em C++, onde tudo é envolvido em objetos convenientes:
#include "webui.hpp"
int main() {
webui::window my_window;
my_window.show("<html><script src=\"webui.js\"></script> Привет из C++! </html>");
webui::wait();
return 0;
}
Apenas algumas linhas — e você tem uma janela completa com conteúdo HTML/CSS. Ao mesmo tempo, o backend permanece na sua linguagem favorita, seja Python, Rust, Go ou até Pascal.
Comparação de categorias de peso
Os desenvolvedores forneceram uma tabela excelente no GitHub, e ela mostra claramente por que o WebUI é sobre minimalismo. Se o Electron requer Chromium e Node.js dentro do pacote, o WebUI não requer nada além do próprio navegador no sistema. Isso economiza RAM e espaço em disco. Até mesmo soluções WebView modernas como o Tauri puxam dependências como GTK ou WebKitGTK no Linux, enquanto o WebUI simplesmente abre uma janela do navegador.
Para quem e quando isso será útil
Claro, o WebUI não vai substituir ferramentas profissionais complexas para interfaces onde a responsividade em microssegundos importa. Mas há muitas situações em que será um salva-vidas.
Se você está fazendo uma pequena utilitária interna para a empresa, o WebUI vai te ajudar a montar uma interface em Bootstrap ou Tailwind em uma noite. Para prototipagem, esta é praticamente a opção ideal: você foca na lógica do backend, e o frontend é desenhado como um site normal.
Um ponto interessante — suporte a SSL/TLS. Se sua aplicação precisa ser segura, o WebUI permite ativar o suporte a OpenSSL com uma simples flag durante a compilação.
Resumo
O WebUI é um sopro de ar fresco para quem está cansado de frameworks GUI pesados. O projeto está em desenvolvimento ativo, já tem mais de 4.000 estrelas no GitHub e um monte de wrappers para diferentes linguagens de programação.
Vale a pena experimentar se:
- Você precisa de uma GUI rápida e bonita, mas não tem tempo para aprender Qt.
- Você não quer inchar o tamanho do binário para centenas de megabytes.
- Seu desenvolvedor frontend conhece HTML/JS, e você conhece programação de sistemas.
Eu não recomendaria usar isso para jogos de alta carga, mas para utilitários de sistema, dashboards e ferramentas de configuração — é praticamente a escolha ideal. Você pode começar com a documentação oficial em webui.me, tudo está bem explicado lá.
Projetos relacionados