Acerca
O sitelo não começou como um framework. Começou com a vontade de escrever marcação de uma forma que parecesse natural em JavaScript — e foi crescendo até cobrir todo o caminho, do ficheiro da página ao site publicado.
javascript-to-html
Primeiro veio o javascript-to-html (também conhecido por ht.js): uma forma simples e intuitiva de gerar HTML em JavaScript, sem motores de templates complexos nem frameworks.
Com frameworks completos como o React tão omnipresentes, encontrar uma solução de templates simples que não trouxesse tudo atrás era surpreendentemente difícil. Ao concentrar-se apenas em transformar JavaScript em HTML — no fundo, funções que devolvem strings — o ht.js mantém-se leve, fácil de usar, flexível e extensível.
Essa superfície reduzida faz com que encaixe em muitos sítios: diretamente no frontend (à maneira de uma SPA), numa compilação para criar sites estáticos (SSG), ou até para renderização no servidor (SSR).
Ensinar o Vite a emitir HTML
Isso resolveu a escrita. O problema seguinte era a compilação: o Vite trata os .js / .ts como scripts, não como páginas. Era precisa uma convenção em que certos módulos fossem para ser HTML.
A ideia era direta: os ficheiros chamados *.ht.js, *.html.js, *.ht.ts e companhia deviam ser processados para HTML em vez de empacotados como JavaScript de cliente. Essa convenção tornou-se o vite-plugin-html-pages — encaminhamento por ficheiros, carregamento de dados, recursos e geração estática sobre o Vite.
sitelo
O sitelo junta o Vite e esse plugin numa só instalação e numa só CLI. Ficas com uma experiência de desenvolvimento completa e cuidada: sitelo para um servidor ao vivo, sitelo build para produção, valores por omissão sensatos e o modelo de páginas do plugin, sem teres de montar a cadeia de ferramentas.
A mesma ideia de uma ponta à outra: as páginas são módulos que devolvem HTML. O sitelo é a camada que faz essa ideia parecer terminada.
Componentes e ilhas de servidor
As funções que devolvem HTML acabaram por se compor até ao topo. O sitelo-ui é uma biblioteca de componentes feita da mesma forma — botões, cartões, formulários, tabelas, modais e secções de página, cada um uma função que devolve uma string. Sem compilador, sem runtime, sem hidratação: o que constróis é o que chega a dist/.
Ainda assim, nem todas as zonas de uma página podem ser estáticas. As ilhas de servidor mantêm a página estática e renderizam num servidor, quando a página é vista, apenas as partes que precisam de dados frescos a cada pedido — os comentários sob um artigo em cache, o stock numa página de produto. Uma ilha é, de novo, uma função que devolve HTML: o build publica o seu conteúdo de recurso e um carregador minúsculo troca-o pelo fragmento renderizado.
Nenhuma das duas muda o modelo. Continua a não haver framework no cliente — só HTML a partir de funções, no build ou a cada pedido.
Como se compara
Já há muitas boas ferramentas para publicar sites estáticos. O nicho do sitelo é estreito de propósito: funções JavaScript (ou TypeScript) que devolvem HTML, com a experiência de desenvolvimento do Vite, e com o mínimo de framework possível.
| Ferramenta | Modelo | Escolhe-a quando |
|---|---|---|
| sitelo | Funções JS/TS → HTML sobre o Vite, mais componentes e ilhas de servidor | queres HTML a partir de JavaScript com um fluxo de trabalho Vite a sério — componentes e zonas por pedido incluídos, sem framework no cliente nem hidratação |
| Astro | Componentes de framework + ilhas de cliente e de servidor, compilador próprio | queres hidratar componentes React, Vue ou Svelte no navegador, com um ecossistema maior |
| Next.js | Aplicação React completa (SSR / SSG / ISR) | estás a construir uma aplicação no ecossistema do React |
| Hugo | Templates Go, compilações muito rápidas | sites de conteúdo enormes e sentes-te à vontade nas ferramentas do Go |
| Eleventy | Linguagens de templates → HTML | queres templates flexíveis (Nunjucks, Liquid, …) sem um framework de SPA |
Se queres componentes no cliente e hidratação — usa um framework. Se queres HTML a partir de funções JavaScript com a experiência do Vite — componentes e zonas renderizadas no servidor incluídos —, o sitelo é a ferramenta mais pequena que faz o trabalho todo.