Skip to content
Playbook

Gatsby contact form without Gatsby Functions

Set it up once and every response lands sorted, private, and ready to act on. Make it yours in minutes - no spreadsheets held together with hope.

Who it’s for
teams of every shape and size
How it flows
Someone responds → it lands in one tidy place → the right person follows up
What changes

Fewer dropped balls. More “done.”

The boring parts - sorting, filtering, routing, and keeping data tidy - happen on their own.

Every reply in one place

No more answers scattered across inboxes and tabs. Each response lands in a shared, organized stream your whole team can act on.

Spam stays out, files stay private

Junk is filtered automatically, and any uploads arrive with the limits you set - never as forever-links floating around email.

Goes where your team works

Send each answer to a chat ping, a spreadsheet row, or your contacts - automatically, the moment someone hits submit.

Everyone knows who’s got it

Each response has an owner and a status, so nobody asks “wait, did someone reply to this?” ever again.

Gatsby's static-first approach plus React for hydration is great for content-heavy sites. Forms are the awkward part - you need a backend. Formspring lets you keep the static promise: add the endpoint URL to your form action, ship. No Gatsby Functions, no Netlify Functions, no third-party hooks. Just one URL.

How it works

You sign up at Formspring, create a form, and copy its endpoint URL (https://formspring.io/f/abc123). Drop that URL into your <form action> attribute - that's the entire integration. Submissions go through five spam-protection layers and arrive in your dashboard within seconds. From there, notify the team, send data to Slack, Notion, Airtable, HubSpot, or Sheets, fire signed webhooks, or process via API.

Why this beats custom intake plumbing

A custom contact workflow means parsing form data, validating fields, handling spam, configuring SMTP, storing submissions, routing files, dealing with timeouts, debugging failures, and maintaining all of that. Formspring replaces the routine parts with one endpoint and keeps the technical escape hatches for teams that need them.

Security and privacy

Submissions are encrypted in transit and at rest. Files (if uploaded) sit in private S3-compatible storage and are only accessible via signed URLs from the dashboard. EU-only hosting in data centres in Germany and Finland. DPA included on every paid plan. Per-form retention rules let you auto-delete after N days for GDPR.

When to build it yourself

Three cases where custom intake is still right: (1) you already run the full workflow inside your application, (2) you need extreme low-latency processing (<10ms p99), or (3) compliance requires absolute zero data egress. For most website intake workflows, Formspring is the simpler answer.

Good to know

Frequently asked

Will this work with my gatsby setup?
Yes. Formspring is host-agnostic and framework-agnostic - it's just an HTTP POST endpoint. Whatever gatsby setup you have, it can submit a form.
Do I need to handle CORS myself?
No. Formspring's CORS is configured per-form. Add your site's origin in the dashboard, save, and the endpoint accepts cross-origin POSTs.
How do I customize the response?
Configure a redirect URL per form (default), return JSON for AJAX submissions (set `Accept: application/json`), or render a thank-you page. All three work without code changes.
What about spam?
Five spam-protection layers run by default: honeypot (free, automatic), hCaptcha (optional, free), custom rules (Pro+), Akismet (built-in), and AI moderation (Pro+). Combined detection is significantly higher than any single layer.
Is it free to start?
Yes. 50 submissions/month, 1 form, no credit card, no time limit. Perfect for personal sites, side projects, and proofs-of-concept.

Ready to make this your own? It takes about three minutes.

Start free, drop in your details, and share it today. Add your branding, your team, and your tools whenever you’re ready.

·· no card · 50 submissions / mo · no countdown