Uma das perguntas mais frequentes de quem está migrando do WordPress: "Como vou ter um formulário de contato se não tenho banco de dados?"
É uma dúvida legítima. No WordPress, o Contact Form 7 salva as mensagens no banco de dados e envia por e-mail. No JAMstack, não há banco de dados — então como funciona?
A solução: serviços de formulário
Existem serviços gratuitos que recebem os dados do formulário e encaminham para o seu e-mail. O mais simples é o Formspree.
Como usar o Formspree
- Acesse formspree.io e crie uma conta gratuita.
- Crie um novo formulário e copie o endpoint gerado (algo como
https://formspree.io/f/xrgjkpzq). - No seu site, o formulário HTML fica assim:
<form action="https://formspree.io/f/SEU_ID" method="POST"> <input type="text" name="nome" placeholder="Seu nome" required /> <input type="email" name="email" placeholder="Seu e-mail" required /> <textarea name="mensagem" placeholder="Sua mensagem" required></textarea> <button type="submit">Enviar</button> </form>
Quando alguém envia, o Formspree recebe os dados e encaminha para o e-mail cadastrado. Zero configuração de servidor.
Alternativas gratuitas
| Serviço | Plano gratuito | Diferenciais |
|---|---|---|
| Formspree | 50 envios/mês | Mais simples, muito usado |
| Web3Forms | 250 envios/mês | Mais generoso no free |
| Netlify Forms | 100 envios/mês | Se hospedar na Netlify |
| Basin | 100 envios/mês | Proteção anti-spam incluída |
E o anti-spam?
No Contact Form 7, você adiciona o reCAPTCHA. Nos serviços acima, você pode usar um honeypot — um campo oculto que robôs preenchem e humanos não:
<input type="text" name="_gotcha" style="display:none" />
O Formspree ignora automaticamente envios onde esse campo está preenchido.
Quando faz sentido ter um banco de dados
Se você precisar de funcionalidades avançadas — como salvar os leads, filtrar, exportar CSV — aí sim compensa adicionar um banco. O Supabase oferece um PostgreSQL gratuito com API REST pronta.
Mas para 90% dos casos de uso — alguém que quer entrar em contato — o Formspree resolve com três linhas de HTML.
No JAMstack, a regra geral é: use serviços externos para o que não precisa estar no seu código. Formulários são um exemplo perfeito.