Home / Contact form for a website
Contact forms, no backendYou want visitors to be able to message you, and you want those messages in your inbox - without building a backend, wiring up an email API, or standing up a server. Here's how to add a contact form to any website, static or not, in about five minutes.
A contact form is just an HTML form - but the moment someone hits submit, that data has to go somewhere. Traditionally that means a backend: a server or serverless function that receives the POST, validates it, and sends you an email. On a static site (GitHub Pages, Vercel, Netlify, a plain HTML page) you don't have one, so people reach for a form service.
Mektup does the receiving-and-emailing part for you, and because it's built on a real email platform, the submission doesn't just get logged somewhere - it becomes an actual email in a mailbox you own.
You create a form in Mektup and pick which mailbox it should deliver to. Mektup gives you a public access key. You put a normal HTML form on your site, point it at Mektup's submit endpoint, and include that key as a hidden field. That's it - no backend, no API key in your code, no server to keep online.
<form action="https://api.usemektup.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="text" name="name" placeholder="Your name" required>
<input type="email" name="email" placeholder="Your email" required>
<textarea name="message" placeholder="Your message" required></textarea>
<!-- Honeypot: hidden from people, catches bots. Leave it empty. -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>
Submit that, and the message lands in your inbox. The form's HTML and styling are entirely yours - Mektup only provides the endpoint and the key, and never injects any markup or scripts into your page.
Each submission arrives as a real email in the mailbox you chose, with Reply-To set to the person who filled in the form - so you just hit Reply and your response goes straight to them. Read and reply in Mektup's webmail, or in Outlook, Apple Mail, or your phone over IMAP. Because it's ordinary email, you can search it, file it, and forward it like anything else in your inbox.
The example above includes a honeypot field named botcheck: a real person never sees or fills it, but bots do, and Mektup silently drops any submission where it's filled. Submissions are also rate-limited, so a script can't hammer your form. No CAPTCHA to bolt on for basic protection.
If you've used Web3Forms, Formspree, or similar, the shape here is familiar: a public access key in a plain HTML form. The difference is where it lands. Those services relay your submission to an email address. Mektup delivers it into a real mailbox on your own domain - the same inbox you already read - so leads live alongside your other mail instead of in a separate dashboard. And the same account gives you email for the domain, not just the form.
Forms are included with every Mektup account, starting on the free plan (1 domain, 1,000 emails a month). Since form submissions are delivered as email, they simply use your normal sending allowance. See the full pricing.
Point a normal HTML form at Mektup's submit endpoint and include your form's access key as a hidden field. No server or backend is needed, so it works on static hosts like GitHub Pages, Vercel, or Netlify.
Into a real mailbox you own. Each submission arrives as an email in your Mektup inbox with Reply-To set to the person who filled the form, so you can reply straight to them.
No. The access key is a public token, safe to ship in your site's HTML, exactly like Web3Forms. It only allows submitting to that one form. If a form gets abused, you rotate the key.