senduler

Astro

Astro pages are mostly static HTML — perfect for a plain action form. No client JavaScript required.

HTML form (recommended)

In any .astro page:

---
// src/pages/contact.astro
const endpoint = import.meta.env.PUBLIC_SENDULER_ENDPOINT ?? "https://senduler.com/f/your-key";
---
<form action={endpoint} method="POST">
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <input type="text" name="_gotcha" hidden tabindex="-1" autocomplete="off" />
  <button type="submit">Send</button>
</form>

Set the form's submit behaviour to Redirect in the dashboard and add your thank-you URL, or use _next on the query string.

JSON submit (client island)

If you prefer fetch, set submit behaviour to JSON and use a small client component — see React & JavaScript.

Environment variable

Store your endpoint key in .env:

PUBLIC_SENDULER_ENDPOINT=https://senduler.com/f/your-key

Lock the form to your production domain under Email and privacy → Allowed origins.