Mundos
Mundo Criação de Sites

Como criar sites profissionais sem banco de dados

Resposta rápida

Você cria um site profissional sem banco de dados guardando o conteúdo em arquivos: páginas em HTML ou Markdown e listas, como serviços, preços e equipe, em arquivos JSON. Tudo fica num repositório no GitHub e é publicado como site estático. Para site institucional, portfólio, cardápio e blog, o banco não faz falta. Ele passa a ser preciso quando o site grava dados dos visitantes ou mostra algo diferente para cada pessoa. O caminho completo está em criar sites sem WordPress.

Rápido: coloque textos em Markdown e listas em JSON, gere as páginas com um gerador estático e só acrescente banco quando houver login, pedidos ou cadastro.

Ler artigo completo Quero meu site grátis
Neste artigo
  1. Por que tantos sites usam banco sem precisar
  2. Onde o conteúdo fica num site sem banco
  3. Como usar JSON no lugar do banco
  4. E o formulário de contato?
  5. Quando o banco de dados passa a ser preciso
  6. Como fica a rotina de atualização
  7. Cuidados de quem dispensa o banco
  8. Não quer montar sozinho?
  9. Em outros Mundos

Por que tantos sites usam banco sem precisar

Sistemas como o WordPress guardam tudo num banco de dados, até o texto da página "Sobre nós", que muda uma vez por ano. A MDN explica que, no site dinâmico, as páginas são criadas inserindo dados do banco em modelos HTML. Isso acontece a cada visita, a menos que haja cache.

Para um blog com milhares de posts e uma equipe de autores no painel, o modelo faz sentido. Para a padaria do bairro, com cinco páginas e um cardápio, é estrutura demais. O banco precisa de senha, backup, atualização e uma hospedagem com suporte a ele.

O que o site guarda Com banco de dados Sem banco de dados
Texto das páginas Tabela no MySQL Arquivo HTML ou Markdown
Lista de serviços e preços Tabela no MySQL Arquivo JSON
Fotos Pasta no servidor Pasta no repositório
Histórico de mudanças Revisões no banco, se ativadas Commits no Git
Backup Exportar banco e arquivos O repositório já é o backup

Onde o conteúdo fica num site sem banco

Pense no site como uma pasta organizada. Cada tipo de conteúdo tem o seu lugar, e tudo vai para o GitHub. Segundo a documentação do GitHub, o Git é um sistema de controle de versão que rastreia as mudanças nos arquivos.

meu-site/
  index.html
  sobre.md
  posts/
    2026-11-abrimos-aos-domingos.md
  _data/
    servicos.json
    equipe.json
  img/

Textos corridos vão em Markdown, um formato de texto simples em que um jogo da velha vira título. Dados que se repetem com a mesma forma, como cada serviço com nome, descrição e preço, vão em JSON.

Como usar JSON no lugar do banco

A MDN descreve o JSON como um formato de texto para dados estruturados, baseado na sintaxe de objetos do JavaScript. Um arquivo de serviços fica assim:

[
  { "nome": "Limpeza de estofados", "descricao": "Sofá de 2 e 3 lugares", "destaque": true },
  { "nome": "Limpeza de colchão", "descricao": "Solteiro, casal e king", "destaque": false }
]

Há três jeitos de transformar esse arquivo em página.

  1. No navegador, com JavaScript. A MDN mostra como ler o arquivo com fetch e converter a resposta com response.json(). O script monta a lista na tela depois que a página carrega.
  2. Na geração do site. Um gerador como o Eleventy lê o JSON antes da publicação e escreve o HTML já com a lista. A documentação do Eleventy explica que cada arquivo JSON da pasta _data vira um dado global, com o nome do arquivo como chave.
  3. Na mão, para listas curtas. Com três serviços, escrever direto no HTML é o mais simples.

No primeiro jeito, o JSON precisa estar numa pasta que vai para o ar, como dados/ na raiz do site. A pasta _data do Eleventy não é publicada.

const resposta = await fetch("/dados/servicos.json");
const servicos = await resposta.json();
document.querySelector("#servicos").innerHTML = servicos
  .map((s) => `<li><strong>${s.nome}</strong>: ${s.descricao}</li>`)
  .join("");

O segundo jeito costuma ser o melhor. A página chega pronta, sem esperar script, e os buscadores leem a lista no HTML. No Eleventy, o arquivo _data/servicos.json fica disponível como servicos em qualquer modelo. O guia de geradores de sites estáticos com Eleventy mostra o projeto do zero.

E o formulário de contato?

Formulário não exige banco. A MDN explica que o atributo action do elemento form indica o endereço que processa o envio, e o method define se os dados vão como GET ou POST.

<form action="/api/contato" method="post">
  <label for="nome">Nome</label>
  <input id="nome" name="nome" required>
  <label for="msg">Mensagem</label>
  <textarea id="msg" name="mensagem" required></textarea>
  <button type="submit">Enviar</button>
</form>

O endereço /api/contato pode ser uma função que recebe os dados e manda um e-mail, sem guardar nada. A Cloudflare cita o tratamento de envio de formulário entre os usos do Pages Functions, que roda código no servidor sem servidor dedicado. O passo a passo está em funções dinâmicas com Cloudflare Workers.

Para o negócio local, um botão de WhatsApp costuma resolver o contato sem formulário nenhum.

Quando o banco de dados passa a ser preciso

A MDN lista o que o código no servidor permite fazer: personalizar o conteúdo para cada usuário, guardar preferências, restringir acesso a usuários autorizados e manter sessões de quem está logado. Quando o seu site precisa de uma dessas coisas, ele precisa de dados gravados em algum lugar.

Sinal Precisa de banco? Por quê
Visitante cria conta e faz login Sim Senhas e perfis precisam ser gravados
Pedidos, estoque ou agendamento Sim Os dados mudam a cada ação do cliente
Comentários próprios nos posts Sim, ou serviço externo Alguém precisa guardar as mensagens
Busca em milhares de itens Em geral sim Ler um JSON gigante pesa na página
Uma equipe edita pelo painel todo dia Costuma ajudar Painel com banco facilita para quem não usa Git
Cardápio, serviços, equipe, preços Não JSON ou Markdown resolvem
Formulário de contato Não Função envia o e-mail

Chegar a um desses sinais não obriga a refazer o site. A parte estática continua, e só o trecho dinâmico chama uma função ligada a um banco. A Cloudflare descreve o D1 como um banco gerenciado e sem servidor, com a semântica SQL do SQLite, que você acessa a partir do Workers e do Pages.

Como fica a rotina de atualização

Imagine uma clínica de estética que muda a tabela de procedimentos duas vezes por ano e publica um aviso por mês. Sem banco, a rotina é curta e cada passo deixa rastro no histórico do Git.

  1. Abra o arquivo procedimentos.json no editor ou no próprio site do GitHub.
  2. Troque o texto ou acrescente o item novo, seguindo o mesmo formato dos outros.
  3. Salve com um commit que diga o que mudou, como "atualiza tabela de procedimentos".
  4. Aguarde a plataforma de publicação gerar a nova versão.
  5. Abra o site no celular e confira a lista.

Se algo sair errado, você volta ao commit anterior e o site antigo reaparece. Não existe backup de banco para restaurar nem versão de plugin para desfazer. Quem prefere não tocar em arquivo pode combinar que a pessoa que criou o site faça essas trocas.

Cuidados de quem dispensa o banco

  1. Nunca coloque dados de clientes, senhas ou chaves num JSON publicado. Tudo na pasta pública pode ser baixado.
  2. Proteja a conta do GitHub com senha forte e autenticação em dois fatores.
  3. Mantenha o JSON enxuto: dezenas ou poucas centenas de itens.
  4. Valide o JSON antes de publicar. Uma vírgula a mais quebra a lista inteira.
  5. Registre cada mudança com um commit que diga o que mudou.

Os detalhes de proteção estão em segurança de sites estáticos. Se você ainda está decidindo entre estático e dinâmico, a resposta sobre sites estáticos compara os dois modelos. O pilar criar sites sem WordPress junta tudo, e o índice está na resposta do Mundo Criação de Sites. Para outros temas, comece pela resposta.

Não quer montar sozinho?

A gente cria o seu site em HTML puro, sem banco de dados e sem plugin, 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.

Em outros Mundos

Se você quer entender bancos de dados para o dia em que o site precisar de um, o Mundo Tecnologia explica os conceitos sem jargão.

Perguntas frequentes

Dá para ter um site profissional sem banco de dados?

Dá. Site institucional, página de serviços, portfólio, cardápio e blog funcionam com o conteúdo guardado em arquivos HTML, Markdown ou JSON. O banco só entra quando o site precisa gravar ou mostrar dados diferentes para cada visitante, como login, pedidos ou cadastro de clientes.

Onde fica o conteúdo se não há banco de dados?

Em arquivos de texto dentro da pasta do site. As páginas ficam em HTML ou Markdown, e listas como serviços, preços ou equipe ficam em arquivos JSON. Tudo isso vai para um repositório no GitHub, que guarda o histórico de cada mudança feita no conteúdo.

O que é JSON?

JSON é um formato de texto para dados estruturados. A MDN o descreve como um formato baseado na sintaxe de objetos do JavaScript, útil para transmitir dados pela rede. Ele organiza informações em pares de nome e valor e em listas, que pessoas e programas conseguem ler.

Como mostrar os dados de um JSON na página?

Você pode ler o arquivo com fetch no navegador e montar o HTML com JavaScript, como mostra a MDN. A outra forma é usar um gerador como o Eleventy, que lê o JSON durante a geração e já entrega a página pronta. A segunda forma é melhor para buscadores.

Qual a vantagem de não ter banco de dados?

Menos peças para manter e proteger. Sem banco, não há senha de MySQL para vazar, consulta para otimizar nem backup de banco para agendar. O site inteiro cabe num repositório, e voltar a uma versão anterior é questão de restaurar um commit no Git.

Site sem banco de dados é mais rápido?

Costuma ser, porque o servidor entrega o arquivo pronto, sem consultar nada antes de responder. A diferença aparece mais em hospedagens simples e em picos de acesso. Imagens pesadas e scripts de terceiros, porém, deixam qualquer site lento, com ou sem banco.

Formulário de contato precisa de banco de dados?

Não necessariamente. O formulário envia os dados para o endereço do atributo action, segundo a MDN. Esse endereço pode ser uma função que manda um e-mail ou repassa a mensagem, sem guardar nada. A Cloudflare cita o envio de formulário entre os usos do Pages Functions.

Como atualizo preços e serviços sem banco?

Edite o arquivo JSON ou Markdown, registre a mudança com um commit e envie ao GitHub. A plataforma de publicação gera a nova versão do site. Quem não quer abrir o código pode editar o arquivo pelo próprio site do GitHub, direto no navegador.

Um blog funciona sem banco de dados?

Funciona. Cada post vira um arquivo Markdown, e um gerador de site estático monta a página do post, a lista de posts e o feed. Comentários exigem um serviço externo ou uma função. Para quem publica algumas vezes por semana, o modelo atende bem.

Quando o site passa a precisar de banco de dados?

Quando ele precisa gravar dados enviados pelos visitantes e mostrar de volta, ou quando cada pessoa vê algo diferente. A MDN cita acesso restrito a usuários autorizados e sessões de quem está logado. Área do cliente, pedidos, estoque e agendamento entram nesse grupo.

Loja virtual funciona sem banco de dados?

O catálogo funciona: cada produto pode sair de um arquivo JSON. Carrinho, pagamento e estoque que baixa a cada venda precisam de um sistema que grave dados. Lojas pequenas costumam usar pedido pelo WhatsApp. Com volume de vendas, uma plataforma de e-commerce costuma compensar.

Posso acrescentar um banco depois?

Pode. O site continua estático, e só a parte que precisa de dados chama uma função ligada a um banco. A Cloudflare descreve o D1 como um banco gerenciado e sem servidor, com a semântica SQL do SQLite, acessível a partir do Workers e do Pages.

Quantos itens cabem num arquivo JSON?

Não há um número fixo, mas o arquivo inteiro é baixado ou lido de uma vez. Para dezenas ou poucas centenas de itens, como serviços ou produtos de catálogo, funciona bem. Quando a lista cresce a ponto de pesar na página, é hora de paginar ou usar um banco.

WordPress sempre usa banco de dados?

Sim. O WordPress guarda posts, páginas, usuários e configurações num banco MySQL ou compatível e monta cada página com PHP. Por isso ele pede uma hospedagem com PHP e banco. Cache pode entregar páginas prontas, mas o painel continua dependendo do banco.

Site sem banco de dados é seguro?

Ele elimina uma porta de ataque comum, que é a consulta ao banco manipulada por quem invade. Ainda assim, a conta do GitHub precisa de senha forte e autenticação em dois fatores. Chaves de API nunca devem ficar no código público do repositório.

Preciso saber programar para manter um site assim?

Para trocar textos e preços, não: editar um arquivo Markdown ou JSON é parecido com preencher uma lista. Para mudar o layout ou criar uma página nova, um pouco de HTML e CSS ajuda. Se não quiser mexer, quem criou o site pode cuidar das mudanças.

Arquivo JSON com dados sensíveis pode ficar no site?

Não. Tudo o que está na pasta publicada pode ser baixado por qualquer visitante. Dados de clientes, senhas e chaves nunca entram em JSON público. Se o site precisa lidar com esse tipo de dado, ele precisa de um servidor e de um banco protegidos.

Fontes e data de verificação

MDN Web Docs, introdução ao lado servidor, MDN Web Docs, JSON, MDN Web Docs, elemento form, Eleventy, dados globais, Cloudflare Docs, Pages Functions, Cloudflare Docs, D1, GitHub Docs, sobre o GitHub e o Git. Conferido em 5 de novembro de 2026.

Referências

  • MDN Web Docs, introdução ao lado servidor. Disponível em: https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/First_steps/Introduction.
  • MDN Web Docs, trabalhando com JSON. Disponível em: https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON.
  • MDN Web Docs, elemento form. Disponível em: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form.
  • Eleventy, arquivos de dados globais. Disponível em: https://www.11ty.dev/docs/data-global/.
  • Cloudflare Docs, Pages Functions. Disponível em: https://developers.cloudflare.com/pages/functions/.
  • Cloudflare Docs, D1. Disponível em: https://developers.cloudflare.com/d1/.
  • 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.

Fontes conferidas em 05 de novembro de 2026.

Carregando avaliações… — visitas
Escrito por

Redação MundoBlá

Equipe editorial

Equipe que pesquisa, escreve e revisa os guias do MundoBlá. Todo conteúdo cita fontes oficiais e mostra a data da última conferência. Perfis de especialistas reais entram aqui só quando houver pessoa verificada.

Quero meu site grátis