FRAMEWORK
Give your Astro site a form backend
Formstork receives the submissions from your Astro form, emails you each one, and keeps every message in a searchable dashboard. No server to run, no backend code to write.
How it works
Astro ships static HTML by default, so your form has markup but no backend to receive what people type. Formstork is the backend that receives the POST. Your form sends its fields to a Formstork endpoint with your access key, and Formstork emails you each submission, sets the visitor's email as the reply-to, and saves the message to a searchable dashboard. Because a plain form needs no client JavaScript, it works in a fully static Astro build, and it also works from an island or an API route if you prefer a client-side fetch. Turn on spam filtering, an autoresponder, or an integration like Slack or Google Sheets whenever you need them.
---
// src/components/ContactForm.astro
// Your access key is public, so it is safe to ship in the markup.
const ACCESS_KEY = "YOUR_ACCESS_KEY";
---
<form action="https://api.formstork.com/submit" method="POST">
<input type="hidden" name="access_key" value={ACCESS_KEY} />
<input type="text" name="name" required />
<input type="email" name="email" required />
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Works with zero JavaScript
Because Formstork receives a normal form POST, your Astro form needs no client-side JavaScript and keeps working in a fully static build. Ship the same fields from an island or an API route when you want a client-side success message instead.
Every message, kept and searchable
Beyond the inbox, Formstork stores each submission in a searchable, taggable dashboard you can filter and export to CSV or JSON. The free plan keeps 250 submissions a month with 90-day retention, and paid plans keep them forever.
Spam never reaches you
A hidden honeypot, a server-side content filter, and optional Turnstile, hCaptcha, or reCAPTCHA keep bots out. Flagged submissions go to your Spam tab and never email you, so your inbox stays clean.
Set it up
- 1Build your form as plain HTML inside an Astro component, with fields like name, email, and message.
- 2Point the form's action at https://api.formstork.com/submit and add your access key as a hidden access_key field (or use the short /f/YOUR_ACCESS_KEY URL).
- 3Submit once to test. The message lands in your inbox and in your Formstork dashboard, with the visitor's email set as the reply-to.
- 4Optional: add a hidden redirect field to send visitors to a thank-you page, or connect an integration like Slack or Google Sheets.
Frequently asked questions
How do I handle form submissions in Astro?
Point your form's action at a Formstork endpoint and add your access key as a hidden field. Formstork receives the POST, emails you the submission, and stores it in your dashboard. Because Astro ships static HTML, this works with no server and no backend code.
Do I need an API route or SSR to receive submissions?
No. A plain form posts straight to Formstork, so a fully static Astro site works with no API route and no SSR. If you prefer a client-side success message, you can still send the same fields with fetch from an island or an API route.
Is it free?
Yes. The free plan includes 250 submissions a month, email delivery, spam filtering, integrations, CSV and JSON export, and a 90-day retention window, with no credit card. Paid plans add more volume, forever retention, autoresponders, and file uploads.
Try Formstork free
250 submissions a month with a full dashboard. No credit card required.
Get your access keyRead the docs