Templates
13 forms you can copy and paste.
Contact forms, surveys, uploads and widgets, each one a complete HTML document with the endpoint and the honeypot already wired in. Swap the access key for yours and it works.
Basic HTML contact form
Name, email, message. No JavaScript at all.
HTML · CSS
Ajax contact form
Posts with fetch and swaps in a success message in place.
HTML · CSS · JavaScript
JavaScript form validation
Inline per-field errors before anything is sent.
HTML · CSS · JavaScript
Multi-column contact form
Two columns on desktop, one on a phone, with a subject select.
HTML · CSS
Masked phone input
Formats a phone number as it is typed, and posts the digits.
HTML · CSS · JavaScript
Contact form with dark mode
Follows the visitor’s system theme with one media query.
HTML · CSS
Raw contact form (no CSS)
Unstyled markup, so your own stylesheet decides how it looks.
HTML
Multi-step NPS survey
A 0–10 score, then one follow-up question.
HTML · CSS · JavaScript
Multi-step survey form
One question per screen, with a progress bar, built in Vue.
Vue · HTML · CSS
Contact form popup
A modal contact form on a button, in Alpine and Tailwind.
TailwindCSS · Alpine.js · HTML
Popover feedback widget
A corner button that opens a small feedback panel.
TailwindCSS · Alpine.js · HTML
File upload form
ProA plain form with a file input and the right encoding.
HTML · CSS
JavaScript file upload form
ProDrag and drop, a size check, and an upload progress bar.
HTML · CSS · JavaScript
Pick one, paste it, get the email.
An access key takes about a minute to create, and every template above works with it unchanged.