Como Hospedar um Site Estático de Graça em 2026: GitHub Pages, Cloudflare Pages e Formulários de Contato

Hospedagem gratuita de site estático com GitHub Pages e Cloudflare Pages com formulário de contato em {year}

Escolher a plataforma certa de hospedagem de sites estáticos pode economizar centenas de reais por ano, mantendo seu site rápido, seguro e fácil de manter. As opções de plano gratuito evoluíram bastante, e plataformas como GitHub Pages e Cloudflare Pages oferecem infraestrutura pronta para produção sem custo algum. Mas existe um desafio que a maioria dos tutoriais ignora: como lidar com formulários de contato em um site estático quando não há servidor para processá-los? Este guia percorre todo o processo de configuração, desde a escolha da plataforma até a integração de um formulário de contato funcional, com exemplos concretos e as limitações reais que você precisa conhecer antes de decidir.

Principais conclusões:

  • GitHub Pages e Cloudflare Pages oferecem hospedagem de sites estáticos genuinamente gratuita com suporte a domínio personalizado.
  • Cloudflare Pages é mais rápido globalmente graças à sua rede de edge CDN; GitHub Pages é mais simples para quem já usa o GitHub no dia a dia.
  • Sites estáticos não processam formulários nativamente - você precisa de um serviço externo para receber os envios e entregá-los na sua caixa de entrada.
  • Usar um backend de formulários dedicado como o Sendform permite adicionar um formulário de contato totalmente funcional sem escrever nenhum código no servidor.

Por que a hospedagem estática gratuita merece sua atenção

Um site estático serve arquivos HTML, CSS e JavaScript pré-compilados diretamente ao navegador. Não há PHP, nenhum runtime Node.js e nenhuma consulta a banco de dados a cada carregamento de página. Essa simplicidade é exatamente o que torna a hospedagem de páginas estáticas gratuita tão confiável: não há nada para travar, corrigir ou escalar.

Para pequenas empresas, portfólios, landing pages de SaaS e sites de documentação, a hospedagem estática atende a todos os requisitos:

  • Velocidade: Os arquivos são servidos a partir de um nó de edge CDN, frequentemente em menos de 100ms globalmente.
  • Segurança: Sem runtime no servidor, a superfície de ataque é drasticamente reduzida.
  • Custo: Tanto GitHub Pages quanto Cloudflare Pages são gratuitos para projetos públicos e muitos projetos privados.
  • Simplicidade: Faça push do código para o repositório e o site é publicado automaticamente.

A única limitação real é a funcionalidade dinâmica. Qualquer coisa que exija lógica no servidor - como autenticação de usuários, carrinho de compras ou processamento de formulários - precisa de um serviço externo. Tenha isso em mente enquanto seguimos os passos de configuração.

Comparativo de plataformas: GitHub Pages vs Cloudflare Pages

Recurso GitHub Pages Cloudflare Pages
Plano gratuito Sim (repositórios públicos sempre gratuitos) Sim (sites ilimitados)
Domínio personalizado Sim Sim
HTTPS Automático via Let's Encrypt Automático via Cloudflare SSL
Pipeline de build GitHub Actions (configuração manual) CI/CD integrado
CDN global Limitado (centrado nos EUA) Mais de 300 localizações de edge
Limite de banda Limite flexível de ~100GB/mês Ilimitado
Suporte a repositório privado Requer GitHub Pro Sim, gratuito

Resumindo: Se o seu público é global e você quer o menor tempo de carregamento possível, Cloudflare Pages é a melhor escolha. Se o seu time já vive dentro do GitHub e você quer a configuração mais simples possível, GitHub Pages funciona perfeitamente.

Passo a passo: publicar no GitHub Pages

Este exemplo assume que você tem um site HTML/CSS simples pronto para publicar. Se você estiver usando um gerador de sites estáticos como Hugo ou Jekyll, o processo é praticamente idêntico.

  1. Crie um repositório no GitHub. Acesse github.com/new e crie um repositório público. Nomeie-o your-username.github.io se quiser que ele seja servido no domínio raiz, ou qualquer outro nome se preferir um caminho de subdiretório.
  2. Faça push dos arquivos do seu site. Na pasta local do seu projeto, execute:
    git init
    git remote add origin https://github.com/your-username/your-repo.git
    git add .
    git commit -m "Initial deploy"
    git push -u origin main
  3. Ative o GitHub Pages. No repositório, vá em Settings > Pages. Em "Source", selecione o branch main e a pasta /root (ou /docs se o seu output de build for gerado lá). Clique em Save.
  4. Aguarde o deploy. O GitHub vai compilar e publicar o site em 1 a 3 minutos. A URL do site (por exemplo, https://your-username.github.io) aparecerá no painel de configurações do Pages.
  5. Conecte um domínio personalizado (opcional). Adicione um arquivo CNAME na raiz do seu repositório contendo o nome do seu domínio (por exemplo, www.yoursite.com). Em seguida, atualize seu provedor de DNS para apontar um registro CNAME para your-username.github.io. O GitHub provisionará o certificado SSL automaticamente em poucos minutos.

Passo a passo: publicar no Cloudflare Pages

  1. Crie uma conta ou faça login no Cloudflare. Acesse pages.cloudflare.com e conecte sua conta do GitHub ou GitLab.
  2. Crie um novo projeto. Clique em "Create a project" e depois em "Connect to Git". Selecione seu repositório na lista.
  3. Configure as opções de build. Se o seu site é HTML puro, deixe o comando de build em branco e defina o diretório de saída como / ou onde estiver o seu index.html. Para Hugo, defina o comando de build como hugo e a saída como public. Para Jekyll, use jekyll build e a saída como _site.
  4. Faça o deploy. Clique em "Save and Deploy". O Cloudflare vai clonar seu repositório, executar o build e publicar na rede de edge global. Seu site recebe imediatamente um subdomínio *.pages.dev.
  5. Adicione um domínio personalizado. No painel do seu projeto, vá em "Custom domains" e insira seu domínio. Se ele já for gerenciado pelo Cloudflare DNS, a configuração é feita com um clique. Caso contrário, você precisará adicionar um registro CNAME no seu registrador apontando para o endereço *.pages.dev.

Cada git push subsequente para o branch principal aciona um novo deploy automático. O Cloudflare também cria deploys de pré-visualização para pull requests, o que é muito útil para revisar alterações antes de colocá-las em produção.

Como adicionar um formulário de contato ao seu site estático

É aqui que a maioria dos guias para, e onde a maioria das pessoas trava. Um formulário de contato em um site estático não consegue enviar dados para si mesmo - não há servidor escutando. Você tem três opções realistas:

  • Um serviço de backend para formulários (recomendado): Você aponta o atributo action do seu formulário para um endpoint de terceiros que recebe o envio, valida os dados e os envia por e-mail para você.
  • Uma função serverless: Você escreve uma pequena função (Cloudflare Workers, AWS Lambda) que processa o formulário. Funciona, mas exige código e manutenção contínua.
  • JavaScript fetch(): Você usa a API fetch do navegador para enviar os dados do formulário para um endpoint de backend. Veja nosso guia sobre como enviar dados de formulário HTML com JavaScript fetch() para os detalhes técnicos.

O caminho mais rápido para um formulário funcional é usar um serviço dedicado. Veja um exemplo concreto usando o Sendform:

Exemplo concreto: um formulário de contato funcionando em 5 minutos

Antes de adicionar qualquer código ao seu site, você precisa criar uma conta no Sendform e configurar um endpoint de formulário. O processo leva cerca de dois minutos:

  1. Cadastre-se no Sendform.net. Crie uma conta gratuita - sem necessidade de cartão de crédito. Após o cadastro, você terá um projeto padrão pronto para uso.
  2. Crie um formulário. No seu painel, clique em "New Form". Dê um nome, selecione um projeto e insira o endereço de e-mail onde deseja receber os envios. O Sendform verificará esse endereço antes de ativar o endpoint.
  3. Copie a URL do seu endpoint. Após criar o formulário, você verá uma URL de endpoint única no formato https://sendform.net/!your-form-id. Copie-a - é ela que você vai colar no seu HTML.

Com o endpoint em mãos, adicione o seguinte HTML ao seu site estático:

<form action="https://sendform.net/!your-form-id" method="POST">
  <label for="name">Your Name</label>
  <input type="text" id="name" name="name" required>

  <label for="email">Your Email</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <button type="submit">Send Message</button>
</form>

Substitua your-form-id pelo ID exibido no seu painel do Sendform. Cada envio será encaminhado por e-mail para o endereço que você confirmou durante a configuração. Sem código no backend, sem servidor, sem mensalidade de infraestrutura. Para padrões de UX mais avançados, incluindo páginas de redirecionamento após o envio e e-mails de confirmação, leia nosso guia sobre boas práticas para formulários em sites estáticos.

Se você estiver usando um construtor de sites junto com o seu site estático, também abordamos o processo de integração em detalhes no nosso artigo sobre como integrar o Sendform com seu construtor de sites.

Nota sobre proteção contra spam: Qualquer formulário acessível publicamente atrairá envios de bots. O Sendform inclui campos honeypot e limitação de taxa integrados. Para uma análise mais aprofundada de como manter sua caixa de entrada limpa, veja nosso artigo sobre boas práticas de proteção contra spam em formulários.

Erros comuns que você deve evitar

Depois de ajudar milhares de usuários a configurar hospedagem gratuita de sites estáticos, estes são os erros que causam mais frustração:

1. Esquecer a página 404

Tanto GitHub Pages quanto Cloudflare Pages exibirão uma página de erro genérica se uma rota não for encontrada. Crie um arquivo 404.html personalizado no seu diretório raiz. Isso mantém os usuários no seu site e preserva a experiência deles.

2. Fazer commit de segredos em um repositório público

Chaves de API, segredos de endpoint de formulários e endereços de e-mail nunca devem ficar em um repositório público do GitHub. Use variáveis de ambiente no Cloudflare Pages, ou referencie um arquivo de configuração privado listado no .gitignore.

3. Criar um formulário sem um plano de backend

Este é o erro mais comum. Desenvolvedores criam um formulário de contato bonito, fazem push para o GitHub Pages e descobrem no dia do lançamento que o formulário falha silenciosamente. Defina seu backend de formulários antes de escrever uma única tag <input>. Ferramentas como o Sendform permitem configurar um formulário de contato que envia direto para o e-mail sem nenhum código, o que elimina completamente o problema do backend.

4. Ignorar problemas de cache de build

Se o seu site não está atualizando após um push, o cache do CDN pode estar servindo arquivos desatualizados. O Cloudflare Pages limpa automaticamente o cache a cada deploy. O GitHub Pages é mais lento para propagar as alterações; aguarde até 10 minutos, ou adicione uma query string às URLs dos seus assets durante os testes.

5. Usar caminhos relativos de forma incorreta

Se o seu site no GitHub Pages estiver em username.github.io/project-name/ (um subdiretório), todos os caminhos de assets devem levar em conta esse prefixo. Um link para /styles.css vai quebrar. Use caminhos relativos (./styles.css) ou configure a opção baseURL do seu gerador de sites estáticos para corresponder ao subdiretório.

6. Ignorar a automação do fluxo de trabalho dos formulários

Depois que seu formulário estiver coletando envios, você pode fazer muito mais do que apenas receber e-mails. O Sendform suporta webhooks e integrações que permitem rotear envios automaticamente para o Slack, um CRM ou uma planilha. Nosso guia sobre como automatizar fluxos de trabalho de formulários com webhooks e APIs mostra exatamente como fazer isso sem escrever código no backend.

Conclusão

A hospedagem gratuita de sites estáticos nunca foi tão poderosa. GitHub Pages é ideal para equipes que já estão integradas ao ecossistema GitHub, enquanto Cloudflare Pages oferece melhor desempenho global e um plano gratuito mais generoso. O verdadeiro desafio não é a hospedagem em si - são os recursos dinâmicos, especialmente os formulários de contato, que costumam complicar as coisas. Ao combinar qualquer uma dessas plataformas com um serviço dedicado de formulários, você obtém um site profissional e totalmente funcional com custo zero de infraestrutura. Comece com um dos guias de plataforma acima, coloque seu site no ar e depois integre seu formulário de contato usando o Sendform para receber os envios de forma confiável desde o primeiro dia.

Sendform.net - endpoint gratuito de formulários para sites estáticos

Adicione um formulário de contato ao seu site estático em minutos

Use o Sendform para coletar envios de formulários em qualquer site estático hospedado no GitHub Pages ou Cloudflare Pages. Sem código no backend, sem configuração de servidor, sem complicação. Basta apontar o atributo action do seu formulário para o seu endpoint e pronto.

Comece gratuitamente no Sendform.net →

Perguntas frequentes

Sim, para a maioria dos casos de uso empresarial. Tanto GitHub Pages quanto Cloudflare Pages oferecem disponibilidade acima de 99,9% sustentada por infraestrutura corporativa. A principal limitação é a ausência de processamento no servidor, não a confiabilidade. Para sites de alto tráfego ou e-commerce, você pode eventualmente superar o plano gratuito, mas para landing pages e portfólios, a hospedagem gratuita é de nível profissional.

Sim. Tanto GitHub Pages quanto Cloudflare Pages suportam domínios personalizados nos planos gratuitos, incluindo HTTPS automático via certificados SSL. Você precisa ser dono do domínio e atualizar seus registros DNS para apontar para a plataforma de hospedagem. O processo leva menos de 15 minutos e o SSL é provisionado automaticamente em poucas horas.

Sites estáticos não conseguem processar envios de formulários nativamente porque não há servidor em execução. A solução padrão é apontar o atributo action do seu formulário para um serviço de backend de formulários de terceiros. Esse serviço recebe a requisição POST, valida os dados e os encaminha para o seu e-mail. O Sendform é um desses serviços - você se cadastra, cria um formulário para obter uma URL de endpoint única e cola essa URL no atributo action do seu formulário HTML.

GitHub Pages é mais simples e se integra diretamente com repositórios do GitHub, sendo ideal para desenvolvedores que já usam a plataforma. Cloudflare Pages oferece um CDN global mais rápido com mais de 300 localizações de edge, banda ilimitada no plano gratuito e CI/CD integrado com deploys de pré-visualização. Para sites onde o desempenho é crítico, Cloudflare Pages é a escolha mais forte.

Conhecimento básico de HTML é útil, mas você não precisa ser um desenvolvedor. Ferramentas como Hugo, Jekyll ou até arquivos HTML simples funcionam perfeitamente nas duas plataformas. Para formulários de contato, o Sendform requer apenas um snippet HTML de copiar e colar após um cadastro de dois minutos, ou seja, nenhum conhecimento de programação no backend é necessário em nenhuma etapa.