Formularios de contacto para Gatsby

Añade un formulario de contacto a tu sitio de Gatsby sin Netlify Forms. Es un componente de React simple que hace POST a Formpaste, así que funciona en cualquier host sin detección de formularios en tiempo de build ni función serverless. Pruébalo en vivo o copia el código.

Cómo crear un formulario en Gatsby

  1. 1

    Crea un formulario en tu panel de Formpaste y copia su clave de acceso.

  2. 2

    Copia el componente de React de arriba en una página o componente de Gatsby.

  3. 3

    Reemplaza YOUR_ACCESS_KEY_HERE con tu clave de acceso, luego compila y despliega.

Prompt para tu agente de programación con IA

Add a Formpaste contact form to my Gatsby site without Netlify Forms. Use a React component with an onSubmit that POSTs as application/x-www-form-urlencoded (URLSearchParams) to https://api.formpaste.com/submit with a hidden access_key input. No Netlify Forms, no serverless function.

O conecta el servidor MCP de Formpaste con Claude Code, Codex, Cursor, Claude Desktop, VS Code o cualquier cliente mcp-remote. Ver la guía de configuración.

No necesitas Netlify Forms

Los tutoriales de Gatsby suelen recurrir a Netlify Forms, pero eso ata el formulario al hosting de Netlify y depende del análisis de HTML en tiempo de build para registrar el formulario. Hacer el POST a Formpaste desde un componente elimina ambas restricciones: el formulario es solo markup y un fetch, así que funciona tanto si despliegas en Netlify como si no.

Un componente de React normal

Gatsby es React, así que el formulario es un componente con un onSubmit que hace POST al endpoint de Formpaste. Sin plugin de Gatsby, sin función serverless, sin ruta /api: copias el componente, agregas tu clave de acceso, y las solicitudes llegan a tu bandeja de entrada.

Build estático, POST externo

Gatsby genera archivos estáticos y el formulario hace POST a un endpoint externo, así que el sitio se mantiene totalmente estático y desplegable en cualquier lugar. Nada en el formulario requiere SSR ni funciones.

Cómo funciona

Tres pasos simples para que los envíos de formularios lleguen a tu bandeja de entrada.
Crea tu formulario, apunta la URL de action al endpoint de Formpaste y añade tu clave de acceso.

1

Crea tu formulario

Regístrate, verifica tu correo y crea una clave de acceso en tu panel.

2

Copia el código

Pega el fragmento de arriba en tu proyecto. Elige CSS o Tailwind para que combine con tu sitio.

export function ContactForm() {
  async function onSubmit(e) {
    e.preventDefault();
    const form = new FormData(e.currentTarget);
    await fetch("https://api.formpaste.com/submit", { method: "POST", body: new URLSearchParams(form) });
  }

  return (
    <form onSubmit={onSubmit} className="mx-auto flex w-full max-w-md flex-col gap-4 rounded-xl border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-800 dark:bg-gray-950">
      <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE" />
      <label className="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Nombre
    <input type="text" name="name" placeholder="Tu nombre" required className="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
      <label className="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Correo electrónico
    <input type="email" name="email" placeholder="tu@ejemplo.com" required className="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
      <label className="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Mensaje
    <textarea name="message" required className="min-h-28 rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100"></textarea>
  </label>
      <button type="submit" className="w-full rounded-md bg-gray-900 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-gray-800 disabled:opacity-60 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-200">Enviar</button>
    </form>
  );
}
3

Añade tu clave de acceso

Reemplaza el marcador por tu clave de acceso para empezar a recibir envíos.

<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">

Formularios de contacto para Gatsby FAQ

Pega un formulario. Recibe envíos.

Al instante, sin configurar ningún backend, servidor ni base de datos. 250 envíos/mes gratis, sin tarjeta de crédito.

Lo que obtienes con Formpaste

Sin servidor, sin DNS

Apunta tu formulario a Formpaste: sin backend, sin DNS, sin servidor de correo que mantener.

Spam filtrado automáticamente

Heurísticas más una carpeta de cuarentena que tú controlas. Los mensajes reales siempre llegan.

Cuarentena que tú controlas

Los envíos sospechosos llegan a una carpeta que revisas: nada se descarta en silencio.

Creado para agentes de IA

Un servidor MCP que tu agente de código llama para crear un formulario y configurarlo.

Componentes para copiar y pegar

Código de formulario accesible para copiar y pegar en HTML, React, TypeScript, JavaScript y Astro.

Panel sencillo

Gestiona formularios, bandeja de entrada, cuarentena y entrega desde un solo lugar.

Mas formularios de Gatsby

Otras plataformas