Eleventy outputs static HTML, so a contact form just needs its action set to a FormSubmit endpoint. Keep the endpoint in global data and render the form from an include.
1. Global data
{
"url": "https://example.com",
"formsubmitEndpoint": "https://formsubmit.app/f/YOUR_FORM_ID"
}2. Include
<form action="{{ site.formsubmitEndpoint }}" method="POST">
<label>Name <input type="text" name="name" required></label>
<label>Email <input type="email" name="email" required></label>
<label>Message <textarea name="message" rows="5" required></textarea></label>
<input type="hidden" name="_redirect" value="{{ site.url }}/thanks/">
<input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>3. Page
---
layout: base.njk
title: Contact
---
{% include "contact-form.njk" %}Add a thanks.md page for the redirect, then configure the allowlist and notifications.