Add a Form Backend to Your Astro Site — Ship Less JavaScript

Astro's zero-JavaScript-by-default philosophy means your forms should be simple too. FormsList provides a form backend that works perfectly with Astro's HTML-first approach — no client-side JavaScript required for basic form submissions. For static Astro sites, simply use a plain HTML form with the action attribute pointing to your FormsList endpoint. For interactive forms with client-side validation and feedback, use an Astro island with your preferred framework (React, Vue, Svelte) and submit via fetch. Either way, FormsList handles the backend. FormsList is especially well-suited for Astro's content-focused use cases — blogs, documentation sites, marketing pages, and portfolios. Add a contact form, feedback widget, or newsletter signup without pulling in a heavy framework or setting up API endpoints.

Setup Astro with FormsList

1

Get your FormsList endpoint

Create a free FormsList account and set up a form. Copy the endpoint URL.

https://formslist.com/f/YOUR_FORM_ID
2

Add the form to an Astro page

Create an Astro page with a plain HTML form. Set the action to your FormsList endpoint. No frontmatter script or client JS needed.

---
// src/pages/contact.astro
---
<form action="https://formslist.com/f/YOUR_FORM_ID" method="POST">
  <input name="name" required />
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>
3

Configure and deploy

Set up email notifications or integrations in the FormsList dashboard. Deploy your Astro site to Vercel, Netlify, or Cloudflare Pages.

Why use FormsList with Astro?

Zero JavaScript — works with plain HTML forms
Compatible with Astro islands for interactive forms
Works with all Astro deployment targets
HTML-first approach matches Astro's philosophy
Built-in spam protection
Custom redirect URL after submission

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.