Neste artigo
- O que você precisa antes de começar
- Passo a passo: do arquivo vazio ao site no ar
- A estrutura básica de um documento HTML5
- Como organizar as pastas do site
- Como dar estilo com CSS pensando no celular primeiro
- Um pouco de JavaScript, só quando precisa
- Como publicar no GitHub e na Cloudflare
- Erros comuns de quem está começando
- Quando o HTML puro não é o melhor caminho
- Não quer fazer sozinho?
- Em outros Mundos
O que você precisa antes de começar
Você precisa de três coisas: um editor de texto, um navegador e, na hora de publicar, uma conta no GitHub e outra na Cloudflare. As duas contas têm plano grátis. O domínio próprio, se você quiser um, é pago à parte.
| Ferramenta | Para que serve | Custa? |
|---|---|---|
| Editor de código | Escrever HTML, CSS e JavaScript | Há opções grátis |
| Navegador | Ver e testar a página | Grátis |
| Git e GitHub | Guardar o código com histórico de versões | Plano grátis |
| Cloudflare Pages | Publicar o site na internet | Plano grátis com limites |
| Domínio | O endereço do seu negócio | Pago no registro |
Repositório é a pasta do projeto guardada no GitHub. Segundo a documentação do GitHub, o Git é um sistema de controle de versão que rastreia as mudanças nos arquivos. Cada registro dessas mudanças se chama commit.
Passo a passo: do arquivo vazio ao site no ar
- Crie uma pasta chamada meu-site no computador.
- Dentro dela, crie o arquivo index.html com a estrutura básica (veja a próxima seção).
- Crie a pasta css com o arquivo style.css e ligue esse arquivo no head.
- Abra o index.html no navegador e ajuste até ficar como você quer.
- Teste em largura de celular com as ferramentas do desenvolvedor do navegador.
- Envie a pasta para um repositório novo no GitHub.
- Conecte o repositório ao Cloudflare Pages e publique.
Cada etapa leva poucos minutos quando o conteúdo está pronto. O que mais demora é escrever os textos e escolher as fotos, não o código.
A estrutura básica de um documento HTML5
Toda página HTML segue o mesmo esqueleto. A MDN explica cada parte: o doctype no topo, o elemento html que envolve tudo, o head com informações que o visitante não vê e o body com o conteúdo visível.
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Padaria Exemplo | Pães artesanais</title>
<meta name="description" content="Pães artesanais feitos todo dia.">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<nav>
<a href="index.html">Início</a>
<a href="sobre.html">Sobre</a>
<a href="contato.html">Contato</a>
</nav>
</header>
<main>
<h1>Pães artesanais no seu bairro</h1>
<p>Fornada nova toda manhã.</p>
</main>
<footer>
<p>Padaria Exemplo</p>
</footer>
<script src="js/main.js" defer></script>
</body>
</html>
O meta charset com utf-8 faz acento e cedilha aparecerem certos. Segundo a MDN, não existe motivo para deixar de declarar a codificação. O lang com pt-BR avisa leitores de tela e buscadores que o texto está em português.
A meta viewport é obrigatória. A MDN explica que, sem ela, navegadores de celular desenham a página numa largura virtual de cerca de 980 pixels e encolhem tudo. Aí o texto fica minúsculo e as suas regras para tela pequena nem chegam a valer.
As tags header, nav, main e footer dão sentido às partes da página. Elas ajudam o leitor de tela a pular direto para o conteúdo e deixam o código mais fácil de manter.
Como organizar as pastas do site
Uma estrutura simples evita caminho quebrado e facilita a publicação. A Cloudflare procura o index.html na raiz da pasta publicada, então ele fica no topo.
meu-site/
index.html
sobre.html
contato.html
css/
style.css
js/
main.js
img/
fachada.webp
| Pasta ou arquivo | O que guarda |
|---|---|
| index.html | A página inicial |
| sobre.html, contato.html | As outras páginas, uma por arquivo |
| css/ | As folhas de estilo |
| js/ | Os scripts, quando houver |
| img/ | Fotos e ícones, já otimizados |
Use nomes curtos, em minúsculas, sem acento e sem espaço. Um arquivo chamado "Foto Fachada.JPG" funciona no seu computador e pode falhar no servidor.
Como dar estilo com CSS pensando no celular primeiro
O CSS define cores, fontes, espaços e colunas. A MDN recomenda começar com uma coluna para telas estreitas e só abrir mais colunas quando houver espaço. Essa abordagem se chama mobile first.
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; line-height: 1.6; color: #1f2937; }
main { max-width: 70ch; margin: 0 auto; padding: 1rem; }
img { max-width: 100%; height: auto; }
nav a { display: inline-block; padding: 0.75rem; }
@media (width >= 48rem) {
.servicos { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; }
}
A regra de imagem com max-width 100% impede que a foto passe da largura da tela. A media query só aplica as três colunas quando a janela tem largura suficiente. Para ir além, leia o guia de site responsivo e acessível.
Um pouco de JavaScript, só quando precisa
Um site institucional funciona sem JavaScript. Ele entra quando a página precisa reagir ao visitante, como abrir o menu em tela pequena.
const botao = document.querySelector(".menu-botao");
const menu = document.querySelector("nav");
botao.addEventListener("click", () => {
const aberto = menu.classList.toggle("aberto");
botao.setAttribute("aria-expanded", aberto);
});
O atributo defer na tag script faz o navegador carregar o arquivo sem travar a leitura da página. O aria-expanded avisa ao leitor de tela se o menu está aberto ou fechado.
Como publicar no GitHub e na Cloudflare
Publicar é o passo que mais assusta quem começa, e é o mais curto. A documentação da Cloudflare descreve o caminho para um site sem framework.
- Crie um repositório vazio no GitHub.
- Na pasta do site, rode git init, git add, git commit e git push para enviar os arquivos.
- No painel da Cloudflare, abra Workers & Pages e escolha criar uma aplicação.
- Na aba Pages, importe o repositório do GitHub.
- Em comando de build, use exit 0, porque não há nada para compilar.
- Em pasta de saída, informe a pasta onde está o index.html.
- Publique. O site ganha um endereço com final pages.dev.
Depois disso, cada novo envio ao repositório gera uma nova publicação. A página de limites do Pages informa 500 builds por mês, até 20.000 arquivos por site e arquivos de até 25 MiB no plano grátis. A mesma documentação da Cloudflare recomenda começar projetos novos pelo Workers, que também serve arquivos estáticos. Os detalhes estão em Cloudflare Pages e em como usar o GitHub para criar sites.
O GitHub Pages é outra opção para publicar. A documentação do GitHub, porém, diz que ele não serve como hospedagem grátis para tocar um negócio online. Para site de empresa, use a Cloudflare ou uma hospedagem paga.
Erros comuns de quem está começando
| Erro | O que acontece | Como corrigir |
|---|---|---|
| Salvar como .txt | O navegador mostra o código como texto | Confira a extensão .html |
| Esquecer a meta viewport | A página aparece encolhida no celular | Inclua a tag no head |
| Caminho de imagem errado | A foto não aparece | Confira pasta, nome e maiúsculas |
| Tag sem fechamento | O layout sai torto | Feche cada tag que abriu |
| Imagem enorme | A página demora a carregar | Reduza e converta para WebP |
| Falta de index.html na raiz | Erro 404 depois de publicar | Mova o arquivo para a raiz |
Antes de publicar, abra cada página no celular de verdade, clique em todos os links e leia os textos em voz alta. Erro de digitação no telefone de contato custa cliente.
Quando o HTML puro não é o melhor caminho
HTML puro serve bem para site institucional, página de serviço, cardápio, portfólio e landing page. Ele fica rápido, tem pouca coisa para atacar e não depende de plugin. O código é seu e muda de lugar quando você quiser.
O cenário muda quando o site precisa de área de login, carrinho de compras ou centenas de páginas que outra pessoa vai editar todo dia. Aí um sistema com painel, como o WordPress bem cuidado, ou uma loja virtual pronta, pode fazer mais sentido. Repetir menu e rodapé em dezenas de arquivos também cansa: nesse ponto, um gerador de site estático resolve.
O pilar criar sites sem WordPress compara os caminhos. Se a dúvida é sobre o que vem antes do código, a resposta sobre o que é preciso para criar um site lista domínio, conteúdo e hospedagem. O índice completo do tema está na resposta do Mundo Criação de Sites, e o panorama do portal começa pela resposta.
Não quer fazer sozinho?
A gente cria o seu site em HTML puro sem cobrar pela criação. A condição é contratar uma hospedagem de sites da HostGator em ciclo anual pelo link do MundoBlá e depois chamar no WhatsApp. O MundoBlá recebe uma comissão da HostGator quando você contrata pelo link, sem custo extra para você.
Hospedagem e domínio você paga direto à HostGator. O escopo do site é combinado no WhatsApp antes de começar, e o código fica guardado no GitHub.
Em outros Mundos
Se você quer ir além do HTML e aprender a programar, o Mundo Programação reúne guias de linguagens e lógica para iniciantes.
Perguntas frequentes
O que é HTML?
HTML é a linguagem de marcação que descreve a estrutura de uma página: títulos, parágrafos, imagens, links e listas. O navegador lê essas marcações e monta o conteúdo na tela. A aparência fica com o CSS e o comportamento interativo com o JavaScript, cada um no seu arquivo.
Preciso pagar algum programa para criar um site em HTML?
Não. Um editor de texto e um navegador bastam para escrever e testar a página. Editores de código gratuitos ajudam porque colorem as tags e apontam erros de digitação. O que pode ter custo depois é o domínio e, se você escolher, uma hospedagem paga.
Por que o arquivo principal se chama index.html?
Porque servidores e plataformas abrem o index.html quando alguém acessa a raiz do site ou de uma pasta. A documentação da Cloudflare avisa que um erro 404 na publicação costuma vir da falta desse arquivo na raiz. Use letras minúsculas e evite espaços nos nomes de arquivo.
O que o doctype faz no começo da página?
O doctype avisa o navegador que o documento segue o padrão atual de HTML. Segundo a MDN, ele é um resquício histórico, mas precisa estar no topo para o resto funcionar direito. A forma curta, com a palavra html depois do doctype, é a recomendada hoje.
Para que serve o meta charset utf-8?
Ele informa ao navegador a codificação de caracteres da página. Com utf-8, acentos, cedilha e til aparecem certos. A MDN lembra que não existe motivo para deixar de declarar a codificação, porque isso evita letras estranhas no texto em português e em outros idiomas.
O que é a meta viewport e por que ela é obrigatória?
A meta viewport diz ao celular para usar a largura real da tela. Sem ela, a MDN explica que navegadores móveis desenham a página numa largura virtual de cerca de 980 pixels e encolhem tudo. A recomendação é sempre incluir a tag no head.
Preciso saber CSS para ter um site apresentável?
Para publicar, não. Para o site parecer profissional, sim, pelo menos o básico: cores, fontes, espaçamento e colunas. Com poucas regras de CSS você já organiza a página. O resto você aprende conforme surge a necessidade, sem precisar dominar a linguagem antes de começar.
Quando preciso de JavaScript em um site HTML?
Quando a página precisa reagir ao visitante: abrir um menu no celular, validar um campo ou carregar dados de um arquivo. Um site institucional funciona sem nenhuma linha de JavaScript. Comece sem ele e acrescente só o trecho que resolve um problema real da página.
Como organizo as pastas de um site em HTML?
Deixe o index.html na raiz, cada página em um arquivo próprio e separe css, js e img em pastas. Essa ordem facilita achar os arquivos e evita caminho quebrado. Os nomes devem ser curtos, em minúsculas e sem acento, para funcionar em qualquer servidor.
Posso ter mais de uma página em um site HTML?
Pode. Cada página é um arquivo .html com o próprio head e body. Você liga uma à outra com a tag a e o caminho no atributo href. O cuidado é repetir o menu e o rodapé em cada arquivo, ou usar um gerador de site estático para isso.
O que é o GitHub e por que guardar o site lá?
O GitHub hospeda repositórios Git, que guardam o código com o histórico de cada mudança. Segundo a documentação do GitHub, o Git é um sistema de controle de versão que rastreia alterações em arquivos. Se algo quebrar, você volta a uma versão anterior sem perder trabalho.
Como publico o site HTML na Cloudflare?
Envie o código para um repositório no GitHub e conecte esse repositório ao Pages, no painel da Cloudflare. Para HTML puro, a documentação manda usar exit 0 como comando de build e apontar a pasta dos arquivos. Cada novo envio ao repositório gera uma nova publicação.
Publicar na Cloudflare tem limite no plano grátis?
Tem. A página de limites do Pages informa 500 builds por mês e até 20.000 arquivos por site no plano grátis, com arquivo de até 25 MiB. Para um site institucional isso costuma sobrar. Confira a documentação antes, porque os limites podem mudar.
Posso usar o GitHub Pages em vez da Cloudflare?
Pode, para projetos pessoais e de documentação. O GitHub Pages publica HTML, CSS e JavaScript direto de um repositório. A documentação do GitHub diz que ele não serve como hospedagem grátis para tocar um negócio online, então para empresa a Cloudflare ou uma hospedagem paga encaixam melhor.
Como vejo a página enquanto escrevo o código?
Abra o index.html no navegador e recarregue a aba a cada vez que salvar. Se a mudança não aparecer, force o recarregamento com Ctrl e F5. Deixe o editor de um lado da tela e o navegador do outro para acompanhar cada alteração.
HTML é uma linguagem de programação?
Não. HTML é uma linguagem de marcação: descreve o que é cada parte do conteúdo, sem decisões nem repetições. A lógica fica com o JavaScript. Isso não diminui o HTML, que é a base de toda página da web e o primeiro passo de quem cria sites.
Vale criar o site sozinho ou pedir para alguém?
Depende do seu tempo e do que o site precisa fazer. Uma página simples sai em uma tarde com este passo a passo. Se o negócio precisa de mais páginas, formulário e domínio configurado, pedir ajuda poupa retrabalho, e o MundoBlá cria o site sem cobrar pela criação.
Fontes e data de verificação
MDN Web Docs, sintaxe básica de HTML, MDN Web Docs, meta viewport, MDN Web Docs, design responsivo, GitHub Docs, sobre o GitHub e o Git, GitHub Docs, GitHub Pages, Cloudflare Docs, publicar site estático, Cloudflare Docs, limites do Pages, Cloudflare Docs, Pages. Conferido em 5 de novembro de 2026.Referências
- MDN Web Docs, sintaxe básica de HTML. Disponível em: https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content/Basic_HTML_syntax.
- MDN Web Docs, meta viewport. Disponível em: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/name/viewport.
- MDN Web Docs, design responsivo. Disponível em: https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/CSS_layout/Responsive_Design.
- GitHub Docs, sobre o GitHub e o Git. Disponível em: https://docs.github.com/en/get-started/start-your-journey/about-github-and-git.
- GitHub Docs, o que é o GitHub Pages. Disponível em: https://docs.github.com/en/pages/getting-started-with-github-pages/what-is-github-pages.
- Cloudflare Docs, publicar site estático no Pages. Disponível em: https://developers.cloudflare.com/pages/framework-guides/deploy-anything/.
- Cloudflare Docs, limites do Pages. Disponível em: https://developers.cloudflare.com/pages/platform/limits/.
- Cloudflare Docs, visão geral do Pages. Disponível em: https://developers.cloudflare.com/pages/.
Fontes conferidas em 05 de novembro de 2026.