Astro
Astro component with a plain HTML form. No client-side JavaScript needed — the browser handles the POST natively.
One-liner
--- // src/pages/contact.astro // One-time setup: curl -X POST https://gopigeon.dev/new -d 'recipient=you@example.com' const ENDPOINT = "https://gopigeon.dev/f/f_abc123def456xyz0"; --- <html> <body> <form action={ENDPOINT} method="POST"> <input type="text" name="name" required /> <input type="email" name="email" required /> <textarea name="message" required></textarea> <button type="submit">Send</button> </form> </body> </html>
How it works
The frontmatter block defines the endpoint constant at build time. Astro injects it into the rendered HTML action attribute. When the user submits, the browser issues a standard form-encoded POST directly to gopigeon — your Astro site is never part of the request path, so there is no function invocation, no server budget burn, no cold-start latency.
This makes Astro the cheapest possible integration: zero bytes of client JS, zero server compute, and a form that works the moment the page ships.
The email you passed as recipient above gets a one-click claim link on the first real submission — that is how you become the authenticated owner.