htmlcontact

HTML Forms Straight to Email

Paste one URL. Get submissions in your inbox and the tools you already use. No backend to build.

Free to start · No credit card required

How it works

Three steps. Done.

Your form stays plain HTML. We handle the backend.

01

Create a Form Key

Get a unique form URL in your dashboard.

02

Paste HTML

Use it as the action in any HTML form.

03

Receive submissions

Form submissions go straight to your inbox.

Your forms. Connected.

Collect responses on your site. Send them to the tools you already use.

Google Sheets

Turn new responses into spreadsheet rows. New fields become columns automatically.

Explore Google Sheets

Slack

Bring new inquiries into the channel your team already checks. Keep the next follow-up in sight.

Connect Slack

Webhooks

Make a form response the start of your next workflow. Send signed data to your app or automation.

Explore webhooks
OpenAI ChatGPT & Codex

Manage forms from ChatGPT.

Create a form. Check its setup. Review responses. All from your conversation.

Connect your agent

A normal POST form is enough.

html.contact receives the form post, stores the submission, applies source and spam checks, then sends email from your dashboard settings.

Method
POST
Browser key
hc_pub_ only
Fields
Named inputs
Minimum form /f/hc_pub_REPLACE
<form action="https://html.contact/f/hc_pub_REPLACE" method="POST">
  <label for="email">Email</label>
  <input id="email" name="email" type="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" required></textarea>

  <button type="submit">Send</button>
</form>
  • HTML
  • Astro
  • Next.js
  • React
  • Vue
  • Nuxt
  • GitHub Pages
  • Cloudflare Pages
  • Netlify
  • Vercel
  • Webflow
  • Framer
  • Carrd
  • WordPress
  • Shopify
  • Lovable
  • Bolt
  • Replit
  • v0
  • Cursor
  • Claude

Plain HTML and static hosts

Paste the action into a .html file or any static deploy that can render form markup.

GitHub Pages, Cloudflare Pages, Netlify, Vercel

Frameworks

Render the same native form from your component. No client SDK or backend route is required.

Astro, Next.js, Nuxt, React, Vue

AI-built sites

Tell the builder to keep method="POST" and put only the public hc_pub_ endpoint in browser code.

Lovable, Bolt, Replit, v0, Cursor, Claude Artifacts

Site builders

Use the builder's custom form action when it lets you set the POST endpoint directly.

Webflow, Framer, Carrd, WordPress, Shopify

Build before you pay

Attachments, recipient routing, Slack, webhooks, and MCP access are included from the start. Paid plans add submission volume as your site grows.

Free includes the backend you keep.

Build, test, and ship the real setup before accepted volume becomes a billing question.

Free
250 accepted submissions
Use the same backend you will keep in production.
Paid
More accepted volume
Upgrade only when traffic makes the limit matter.
Create your form
  • Endpoint + domains A production form URL with allowed domains and local testing support.
  • Routing + recipients Verified inboxes, CC/BCC routing, and reply-to handling.
  • Attachments Accept one real uploaded file per valid submission.
  • Spam + logs Server-side screening, blocked reasons, and clean submission history.
  • Exports + API CSV, JSON, public posts, and private form/submission APIs.
  • Slack + webhooks Keep leads flowing into your team's channel or your own app.
  • MCP access Create, check, and troubleshoot forms from your AI agent.
Adam Albastov
"As a backend engineer, of course I could set up email. But html.contact makes it so fast and I prefer having everything organized in one place."
Adam Albastov Founder, Narkis.ai

Add email in minutes.

No server. No plugin. No backend code.

Create your form