Contact Forms
Contact me form template.
Use this lightweight form when the visitor needs a direct way to contact a person, not a department. It is ideal for portfolios, freelance sites, advisors, and personal landing pages.
Put this template to work
Connect the form to the workflow around it.
The contact forms workflow is only one part of a production form. Use these resources to refine markup, compare backends, and route accepted submissions.
HTML form elements
Choose accessible inputs, textareas, radio groups, selects, and validation patterns for this form.
Free toolHTML form template generator
Generate a complete starting form, then adapt its fields to the workflow on this page.
ComparisonCompare form backends
Review delivery, uploads, webhooks, notifications, and migration trade-offs before launch.
SolutionLead capture forms
Turn structured contact and qualification fields into a sales-ready intake workflow.
SolutionForm notifications
Route accepted submissions to verified email recipients, team chat, or a webhook.
SolutionFile upload delivery
Add upload rules and delivery handling when this workflow needs supporting documents.
Fields
What this form captures
- Name and reply email
- Reason for reaching out
- Short message
- Hidden page/source metadata
Workflow
How to use it with FormsFort
- Deliver messages to your verified email inbox.
- Add a honeypot and rate limits for public portfolio pages.
- Use redirect fields for a custom thank-you page.
- Keep field names simple for email readability.
Copy-paste HTML
Backend-ready form code.
Replace YOUR_ACCESS_KEY with your FormsFort public access key, then deploy the form on your site.
<form action="https://api.formsfort.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="hidden" name="subject" value="New personal contact message" />
<label for="name">Name</label>
<input type="text" id="name" name="name" autocomplete="name" required />
<label for="email">Email</label>
<input type="email" id="email" name="email" autocomplete="email" required />
<label for="topic">Topic</label>
<input type="text" id="topic" name="topic" placeholder="Project, press, consulting..." />
<label for="message">Message</label>
<textarea id="message" name="message" rows="6" maxlength="3000" required></textarea>
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
<button type="submit">Send message</button>
</form> Production notes
Make it reliable before launch
- Submit from the real production domain and confirm delivery logs show the expected origin.
- Keep hidden fields for routing and context, not secrets. Public access keys are identifiers.
- Use allowed domains, honeypots, rate limits, and optional CAPTCHA for public forms.
- Test uploads, webhook payloads, spreadsheet rows, and autoresponder copy before publishing.
FAQ
Common questions
Can this work on a static portfolio?
Yes. The browser posts directly to FormsFort, so GitHub Pages, Netlify, Vercel, Astro, and plain HTML sites do not need server code.
Related templates
Build the next form in the workflow.
Contact form templates
Use these templates when the main job is starting a conversation and routing it to the right inbox or workflow.
Contact FormsInquiry form template
Use this inquiry form when you need more structure than a simple contact form. Topic and priority fields help route messages before anyone reads the full note.
HTML ContactHTML contact form templates
Contact forms with clean field names, accessible labels, honeypots, and backend-ready submission behavior.