Open source · Free to self-host

Contact forms,
without the backend.

Drop one endpoint into your HTML. We receive, store, and email every submission — so you ship the form and move on.

Your site
POST /api/submit
FormRelay
email + store
Your inbox
Zero server setupReal-time dashboardEmail notificationsSpam protectionDomain allowlists

Features

Everything you need, nothing you don't

< 2 min

Instant Setup

Create an endpoint in seconds. Paste one URL in your form action or fetch call — that's the entire integration.

Configurable

Email on Submit

Get notified the moment someone reaches out. Configure any address per form, toggle off any time.

Always on

Built-in Spam Guards

Rate limiting, origin domain allowlists, and honeypot support work out of the box before a single submission.

Integration

One endpoint. Any stack.

contact.htmlHTML
<form
  action="https://formrelay.app/api/submit"
  method="POST"
>
  <input type="hidden"
    name="form_id"
    value="<your-form-id>" />

  <input type="text"
    name="name" placeholder="Name" />
  <input type="email"
    name="email" placeholder="Email" />
  <textarea
    name="message"></textarea>

  <button type="submit">Send</button>
</form>
submit.jsJS
await fetch(
  "https://formrelay.app/api/submit",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      form_id: "<your-form-id>",
      name:    "Jane Doe",
      email:   "jane@example.com",
      message: "Hello!"
    })
  }
)
01

Create a form

Sign up, hit New Form, and grab your unique form ID from the dashboard.

02

Add to your site

Drop the form ID into your HTML action or fetch body. No SDK, no config file.

03

Watch it arrive

Submissions land in your dashboard and email the moment they're received.

Ready to ship your form?

Free to use. Open source. No credit card.