MuxForms portfolio contact forms give freelancers and designers a branded hire-me embed on Framer, Webflow, or static sites—reliable inbox and email without PHP mail, mailto links, or per-site Formspree accounts.
Use case
Your portfolio is static on Vercel or Netlify. Your inbox should not depend on the host’s mail() config or a Gmail address buried in a mailto: link.
| Field | Purpose |
|---|---|
| project_type | Filter fit |
| budget | Optional qualification |
| message | Project narrative |
| referral | Attribution |
Freelancers and creatives need a contact path that matches the craft of the portfolio—branded fields, reliable delivery, and a record when a lead says they emailed last week.
MuxForms embed.js styles from your dashboard tokens so the form feels native to your site, not a gray Google Form iframe. Allowlist `www.yourname.com` and localhost; paste one snippet into Framer’s embed, Webflow’s custom code, or Astro’s contact partial.
Keep the schema light for first touch: name, email, project type, message. Optional budget select filters tire-kickers before you schedule a call. A `referral` field credits who sent the client.
When Dribbble, Behance, or a viral post spikes traffic, honeypot and rate limits protect your notify inbox from SEO spam. Turnstile is one toggle if bots get aggressive.
Graduate to quote-requests or agency-client-intake templates on the same account when you open a studio—unlimited forms, one login.
Mobile-friendly embed means art directors can reach you from their phone after scrolling your case studies. No app required.
Submissions live in MuxForms search—not lost if you change hosting or email providers. Export before tax season if you track lead sources.
Create a form named Portfolio — Contact with these fields, then paste the embed on your page. Allow apex + www origins; match embed colors to portfolio; notify your freelance email; optional Turnstile after viral posts.
| Field | Type | Required |
|---|---|---|
| Namename | text | Yes |
| Emailemail | Yes | |
| Companycompany | text | No |
| Project typeproject_type | select | Yes |
| Estimated budgetbudget | select | No |
| Tell me about your projectmessage | textarea | Yes |
| How did you hear about me?referral | text | No |
| Leave blank_hphidden | text | No |
Illustrative preview—wire your form id after signup.
{
"name": "Portfolio — Contact",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "email",
"label": "Email",
"type": "email",
"required": true
},
{
"name": "company",
"label": "Company",
"type": "text",
"required": false,
"placeholder": "Optional"
},
{
"name": "project_type",
"label": "Project type",
"type": "select",
"required": true,
"options": [
"Website",
"Product design",
"Brand",
"Development",
"Other"
]
},
{
"name": "budget",
"label": "Estimated budget",
"type": "select",
"required": false,
"options": [
"Not sure yet",
"< $5k",
"$5k – $15k",
"$15k+"
]
},
{
"name": "message",
"label": "Tell me about your project",
"type": "textarea",
"required": true
},
{
"name": "referral",
"label": "How did you hear about me?",
"type": "text",
"required": false,
"placeholder": "Optional"
}
]
}<div data-form-id="FORM_UUID"></div> <script src="https://www.muxforms.com/embed.js" defer></script>
Then clone the pattern for the next site or app.
Upgrade to Pro