Add a Form Backend to Your Gatsby Static Site

Gatsby generates lightning-fast static sites, but static sites can't process form submissions on their own. FormsList bridges that gap by providing a managed form backend that pairs perfectly with Gatsby's React-based architecture. Since Gatsby sites are pre-rendered at build time and deployed as static files, you need an external service to handle form data. FormsList provides a simple HTTP endpoint that your Gatsby form can POST to, with no serverless functions, Gatsby plugins, or third-party form plugins needed. FormsList works with Gatsby sites hosted anywhere — Gatsby Cloud, Netlify, Vercel, AWS S3, or any CDN. Just import your React form component, point it at your FormsList endpoint, and you have a fully functional form with spam protection, notifications, and integrations.

Setup Gatsby with FormsList

1

Create a FormsList endpoint

Sign up at FormsList and create a new form to get your endpoint URL.

const FORM_URL = "https://formslist.com/f/YOUR_FORM_ID";
2

Create a form page component

Add a React form component to your Gatsby pages directory. Use fetch to POST form data to your FormsList endpoint.

// src/pages/contact.tsx
import React, { useState } from "react";

export default function ContactPage() {
  async function handleSubmit(e) {
    e.preventDefault();
    await fetch("https://formslist.com/f/YOUR_FORM_ID", {
      method: "POST",
      body: new FormData(e.currentTarget),
    });
  }
  return <form onSubmit={handleSubmit}>...</form>;
}
3

Deploy and activate integrations

Deploy your Gatsby site and configure email notifications, Slack alerts, or Google Sheets in the FormsList dashboard.

Why use FormsList with Gatsby?

No Gatsby plugin or serverless function needed
Works with Gatsby's React component architecture
Compatible with any Gatsby hosting (Gatsby Cloud, Netlify, Vercel)
Built-in spam protection
File upload support
Real-time submission notifications

Frequently Asked Questions

Ready to collect form submissions?

Set up your form backend in under a minute. No server required, no complex configuration — just a simple endpoint for your forms.