Sim, dá para hospedar um site grátis no GitHub Pages, desde que ele seja estático — feito principalmente com HTML, CSS e JavaScript. O serviço publica os arquivos de um repositório e entrega uma URL pública, sem exigir um servidor tradicional para começar.
O caminho mais simples é criar um repositório, colocar um arquivo index.html, ativar o Pages nas configurações e escolher a branch que será publicada. Neste guia, mostro o processo completo, explico quando usar um site de usuário ou de projeto e também os limites que tornam o GitHub Pages inadequado para alguns tipos de aplicação.

O que é o GitHub Pages?
O GitHub Pages é um serviço de hospedagem para sites estáticos. Em termos simples, ele pega arquivos como index.html, folhas de estilo e scripts JavaScript armazenados em um repositório e os publica na web. A documentação do GitHub também prevê um processo de build, caso você use um gerador de site ou um fluxo com GitHub Actions.
A diferença para uma hospedagem com PHP, Node.js ou banco de dados é importante: o Pages não executa uma aplicação de servidor dentro da página publicada. Ele é ótimo para portfólio, documentação, landing page, currículo, página de projeto e blog gerado estaticamente. Já um sistema de login, painel administrativo ou checkout precisa de serviços externos ou de outra hospedagem.
GitHub Pages é realmente gratuito?
O recurso está disponível em repositórios públicos com o GitHub Free. A documentação informa que repositórios privados podem usar Pages nos planos pagos compatíveis, como Pro, Team e Enterprise. Portanto, “grátis” normalmente significa manter o código público no plano gratuito — algo que você precisa aceitar antes de publicar.
O site publicado fica acessível pela internet mesmo quando o repositório é privado, se o plano permitir esse cenário. Por isso, não coloque senhas, chaves de API, dados de clientes ou arquivos confidenciais no repositório. Tornar o código privado não transforma automaticamente o conteúdo publicado em secreto.
Qual tipo de site você pode criar?
Existem dois formatos principais:
- Site de usuário ou organização: usa um repositório com o nome
seu-usuario.github.ioe costuma gerar o endereçohttps://seu-usuario.github.io. - Site de projeto: fica ligado a outro repositório e normalmente usa um endereço como
https://seu-usuario.github.io/nome-do-projeto/.
Para o primeiro site pessoal, o repositório seu-usuario.github.io é o caminho mais direto. Para documentar uma biblioteca, publicar uma página de evento ou criar uma demonstração de código, o site de projeto costuma fazer mais sentido.
Como hospedar um site no GitHub Pages
1. Crie o repositório
Entre no GitHub, clique em New repository e escolha um nome. Para um site pessoal, use exatamente seu-usuario.github.io, substituindo “seu-usuario” pelo seu nome de usuário ou da organização. Se a ideia for um site de projeto, escolha um nome comum, como meu-portfolio.
Se você está começando do zero, pode criar o repositório com um README. O ponto essencial é ter permissão para administrar o repositório e saber em qual branch os arquivos serão publicados.
2. Adicione o arquivo index.html
Crie um arquivo chamado index.html na pasta que será usada como fonte. Este exemplo já produz uma página funcional:
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Meu site</title>
</head>
<body>
<h1>Olá, GitHub Pages</h1>
<p>Este é meu primeiro site publicado.</p>
</body>
</html>
Você pode criar o arquivo pela interface do GitHub ou enviar um projeto existente com Git. Para trabalhar com uma API ou outro projeto de programação antes de publicá-lo, veja também o guia do JSMS sobre como criar uma API REST com Node.js e Express. A API não roda no GitHub Pages, mas pode ser hospedada separadamente enquanto a interface fica no Pages.
3. Faça o commit dos arquivos
Na interface web, abra o repositório, clique em Add file e depois em Upload files ou Create new file. Adicione o index.html, escreva uma mensagem de commit e confirme a alteração.
Se preferir o terminal, a sequência básica é:
git clone https://github.com/seu-usuario/nome-do-repositorio.git
cd nome-do-repositorio
# copie seus arquivos para esta pasta
git add .
git commit -m "Publica o site"
git push origin main
O nome da branch pode ser main, master ou outro. O importante é selecionar a branch correta no próximo passo.
4. Ative o Pages e escolha a fonte
No repositório, abra Settings e procure Pages na área de código e automação. Em Build and deployment, escolha como o site será publicado:
- Deploy from a branch: publica uma branch e uma pasta, geralmente
/(root)ou/docs. É a opção mais simples para HTML, CSS e JavaScript prontos. - GitHub Actions: usa um workflow para instalar dependências, gerar o site e publicar o resultado. É a alternativa mais adequada quando existe uma etapa de build.
Para este tutorial, selecione Deploy from a branch, escolha main e a pasta /(root). Clique em Save. O GitHub iniciará a publicação automaticamente quando detectar a alteração. Se o projeto exigir uma etapa de compilação, consulte a documentação sobre fontes de publicação e considere um workflow do GitHub Actions.
5. Abra e teste o endereço
Depois do deploy, volte à área Settings > Pages. O GitHub mostrará o endereço do site quando a publicação terminar. Também é possível acessar o formato correspondente ao projeto: seu-usuario.github.io para o site pessoal ou seu-usuario.github.io/repositorio para um site de projeto.
Faça um teste simples: abra a página em uma janela anônima, confira se o CSS carregou e abra o console do navegador para verificar erros de JavaScript. Se o conteúdo aparecer sem estilo, procure caminhos absolutos como /style.css; em um site de projeto, o arquivo pode precisar de um caminho relativo, como ./style.css.
Como usar um domínio próprio
O GitHub Pages permite trocar o endereço github.io por um domínio que você possui. Na área de Pages, informe o domínio personalizado e siga a documentação de domínio próprio do GitHub para configurar no registrador os registros DNS indicados pelo GitHub. Para um domínio como www.exemplo.com, normalmente você usará um registro CNAME apontando para o endereço Pages indicado na documentação.
Também é possível usar um arquivo CNAME no repositório. Depois que o DNS propagar, ative Enforce HTTPS quando a opção estiver disponível. A propagação pode levar algum tempo e um erro de DNS não é corrigido dentro do código HTML.
Limites e problemas comuns
O GitHub Pages é prático, mas não deve ser tratado como um servidor ilimitado. A documentação atual recomenda que o repositório de origem tenha até 1 GB, limita o site publicado a 1 GB, informa um limite de tempo de 10 minutos para deploys e cita limites suaves de 100 GB de banda por mês e 10 builds por hora. Um workflow personalizado do GitHub Actions não fica sujeito ao limite suave de 10 builds por hora mencionado para o processo padrão.
- Página 404: confirme o nome do repositório, a branch, a pasta de publicação e a presença de
index.html. - CSS ou imagens quebradas: revise caminhos relativos e lembre que sites de projeto vivem dentro de uma subpasta.
- Alteração não apareceu: espere o deploy terminar, confira a aba Actions e faça uma atualização forçada no navegador.
- Site dinâmico: mova o backend, banco e autenticação para um serviço próprio; o Pages pode continuar servindo apenas a interface.
- Dados sensíveis: remova segredos do repositório e use variáveis de ambiente no serviço que executa o backend. Não tente esconder uma chave dentro do JavaScript enviado ao navegador.
Vale a pena usar o GitHub Pages?
Para uma página estática, sim. Ele combina versionamento, histórico de alterações e publicação automática em um fluxo que um estudante consegue aprender em uma tarde. Também é uma boa vitrine para portfólios e projetos porque o código fica ligado ao repositório.
O limite aparece quando a necessidade deixa de ser “entregar arquivos ao navegador” e passa a ser “executar regras no servidor”. Nesse momento, usar o Pages sozinho vira gambiarra: você precisará de um backend, de um serviço de autenticação, de um banco ou de uma plataforma especializada. Comece com o Pages quando a página for estática e migre apenas a parte dinâmica quando ela realmente existir.
Perguntas frequentes
Preciso saber Git para usar o GitHub Pages?
Não obrigatoriamente. É possível criar e editar arquivos pela interface do GitHub, mas aprender o básico de commit, branch e push facilita a manutenção do site.
Posso publicar um site feito com React?
Sim, desde que o projeto seja compilado para arquivos estáticos e o resultado seja enviado ao Pages. Nesse caso, GitHub Actions costuma ser mais conveniente do que publicar diretamente a pasta de desenvolvimento.
O GitHub Pages aceita PHP ou banco de dados?
Não como parte da hospedagem do Pages. Ele publica arquivos estáticos; o código de servidor e o banco precisam ficar em outra infraestrutura.
O site fica privado se o repositório for privado?
Não necessariamente. Quando o plano permite publicar a partir de um repositório privado, o site pode continuar público. Nunca use o repositório como cofre para informações que não deveriam chegar ao navegador.