Gatsby newsletter form

Add a newsletter signup to your Gatsby site without Netlify Forms. One email field in a React component that posts to Formpaste, so subscribers land in your inbox or your email tool. Works on any host.

How to build it

  1. Create a form in your Formpaste dashboard and copy its access key.
  2. Copy the React component above into a Gatsby page or component.
  3. Replace YOUR_ACCESS_KEY_HERE with your access key, then build and deploy.

Prompt for your AI coding agent

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

Or connect the Formpaste MCP server to Claude Code, Codex, Cursor, Claude Desktop, VS Code, or any mcp-remote client. See the setup guide.

Gatsby gotchas

Gatsby sites often reach for Netlify Forms, but you do not need it. A Formpaste form is a plain React component that posts to an endpoint, so it works whether or not you deploy on Netlify, with no build-time form detection.

You do not need Netlify Forms

Netlify Forms ties your form to Netlify hosting and its build-time HTML parsing. Posting to Formpaste from a component works on any host - Netlify, Gatsby Cloud, Cloudflare Pages, anywhere - and there is nothing to detect at build time.

It is a normal React component

Gatsby is React, so the form is a component with an onSubmit that fetches the Formpaste endpoint. No gatsby-specific plugin and no serverless function of your own.

Static build, external POST

Gatsby outputs static files and the form posts to an external endpoint, so the site stays fully static and deployable anywhere. No SSR or functions are required for the form to work.

Handle the response in state

The endpoint returns JSON. Await the fetch and show your own success state, or set a redirect URL in the dashboard for a no-JS thank-you page.

What to get right

One field converts best

A newsletter form should ask for email only. Every extra field lowers signups.

Confirm before you celebrate

Show a subscribed message on success. If you need double opt-in, send the confirmation from your email tool, not the form.

Push to your email tool

Forward submissions to your ESP with a webhook so new subscribers land where you send campaigns.

How it works

Three simple steps for form submissions to land in your email inbox.
Create your form, set your form's action URL to Formpaste's endpoint, and add your access key.

1

Create your form

Sign up, verify your email, and create an access key in your dashboard.

2

Copy the code

Paste the snippet above into your project. Pick CSS or Tailwind to match your site.

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">Email
    <input type="email" name="email" placeholder="you@example.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>
      <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">Subscribe</button>
    </form>
  );
}
3

Add your access key

Replace the placeholder with your access key to start receiving submissions.

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

Gatsby newsletter form FAQ

Paste a form. Get submissions.

Instantly without setting up any backend, servers or databases. 250 submissions/mo free - no credit card.

Other Gatsby forms