Raw HTML Contact Form (no CSS, no JavaScript)
A working HTML contact form with no CSS, no JavaScript, no framework — just semantic markup and an action URL. Use as a starting point or for accessibility audits.
Most contact-form tutorials front-load CSS and JavaScript before the underlying HTML is correct. The bare-HTML version is the right starting point — semantic <label> + <input> pairs, native validation attributes, a real <button type="submit">. Style it later. The raw version is also useful for accessibility audits — if it works with no CSS, your form is structurally sound.
- →Basic contact form · 4 fields
- →HTML, JS, React, PHP, cURL outputs
- →One POST endpoint, no SDK
- →Honeypot + classifier, no CAPTCHA
See exactly what your visitors see — and you’ll receive.
Left: the rendered form, fully interactive in a sandboxed iframe. Right: the email and dashboard view that lands the moment a visitor submits.
Every submission becomes an email plus a dashboard row. The fields below are the exact payload your form will send. Reply-to is wired to the visitor’s email so hitting reply goes back to them.
Iframe is sandboxed — submit doesn’t actually fire. Get your access key to wire it up live.
Generate, embed, receive.
Three actions stand between you and your first lead. None of them require a backend, a database, or a CAPTCHA library.
Use semantic HTML
Every input has a <label> with `for` matching the input's id. Inputs use native types: text, email, tel, url. Required fields have `required`. The button is `<button type="submit">`, not a div with onclick.
Add the splitforms action
Set `action="https://splitforms.com/api/submit"` and `method="POST"`. The form works as plain HTML — no JavaScript, no fetch, no AJAX.
Style later
Once the bare HTML is correct, add CSS. Tailwind, plain CSS, CSS-in-JS — all of them work because the markup is semantic.
Five outputs. One backend.
HTML by default. Click open the language you ship in — every variant POSTs to the same /api/submit endpoint.
Replace YOUR_ACCESS_KEY with the key from your dashboard. That’s the only edit.
One template. Every framework.
The same field set works on every framework splitforms supports. HTML, React, Next.js, Vue, Astro, Hugo, WordPress — same POST, same backend.
Things people ask before they ship.
Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.
Ship your raw html contact form (no css, no javascript) in 60 seconds.
1,000 free submissions per month. No credit card. Copy the snippet, paste your access key, watch leads land in your inbox.