Point any HTML form at one endpoint. 500 free submissions — no card, no time limit — and unlimited forms.
Create free accountDisclosure: splitforms publishes this guide and is one of the options in it. There is no overall ranking: options are listed alphabetically and each use case names the tool whose published plan fits it best. Figures for Formspree, Jotform, Tally, Typeform and Web3Forms were read from each vendor's own pricing page on October 10, 2026 (sources at the end). We give no prices for Google Forms or Notion forms; check their pages.
What do freelancers need from a contact form?
Many form-tool roundups are written for SaaS teams running A/B tests and HubSpot integrations. A freelancer's contact form has one job: turn a stranger's curiosity into a qualified discovery call without filling your inbox with tire-kickers. Five things matter most:
- Project intake fields. Budget bracket, timeline, deliverables, project type. These qualify leads before you reply, so a $500 budget for a 3-month build can self-disqualify.
- File uploads. Clients send PDFs, brand guidelines, Figma exports and reference screenshots. If the form can't accept files, the brief moves into a long email chain.
- Auto-reply with a calendar link. The minutes after a submission are the highest-intent moment in the funnel. A "thanks, here's my Cal.com link" auto-reply can convert that intent before they contact other freelancers.
- Low cost. You are a business of one, so a recurring tool cost comes straight out of margin. For most freelancers a contact form should be free or close to it.
- Fit inside your portfolio site. Your portfolio is your sales page, and the form lives inside it. Iframe embeds can look out of place next to a custom design.
How do the options compare for freelancers?
Listed alphabetically. Jotform, Tally, Typeform, Formspree and Web3Forms figures were read from each vendor's pricing page on October 10, 2026; "see pricing page" means we have not verified a figure.
| Tool | Free tier | Cheapest paid | File uploads on free | Embed in portfolio | Best for |
|---|---|---|---|---|---|
| Formspree | 50 a month | Personal: $15/month ($10 billed yearly), 200 a month | No (file storage starts on Personal) | Native HTML | Developers already using it |
| Google Forms | Free | Not applicable | Yes, respondents must sign in to Google | Link or iframe | Surveys and simple intake |
| Jotform | 5 forms, 100 submissions a month | Bronze: $39/month ($34 billed yearly), 1,000 a month | Yes, 100 MB total upload space | Link or embed | Template gallery, payments |
| Notion forms | Tied to your Notion plan | See pricing page | See Notion docs | Link or embed | Leads as rows in a Notion database |
| splitforms | 500 total, one-time, no card | Pro $5/month (5,000 a month) or Annual $49/year | No (paid plans) | Native HTML | Form in your own site, cheap webhooks |
| Tally | Unlimited forms and submissions (fair use) | Pro: $29/month ($24 billed yearly) | Yes, 10 MB per file | Link or embed | Free visual builder |
| Typeform | 10 responses a month | Basic: $39/month ($28 billed yearly), 100 a month | No (Basic and up) | Link or embed | Polished questionnaires |
| Web3Forms | 250 a month | Pro: $149/year or $15/month, 10,000 a month | No (Pro and up) | Native HTML | Largest metered free tier |
Which option is best for each use case?
Each row names the tool whose published plan fits that use case best, based on the figures above.
| Your situation | Pick | Why |
|---|---|---|
| A free hosted form with uploads and webhooks, no site code | Tally | Unlimited forms and submissions under fair use, 10 MB uploads and webhooks on the Free plan. |
| The largest monthly free tier on an HTML form | Web3Forms | 250 submissions a month, unlimited forms and domains. |
| The largest one-time free allowance | splitforms | 500 submissions in total, no card, no expiry. |
| A polished, one-question-at-a-time questionnaire | Typeform | Branching logic is free; Free is 10 responses a month, so busy forms need a paid tier. |
| A large template gallery or payment fields | Jotform | Big template library and 40+ payment gateways; the free Starter plan allows 5 forms. |
| Free survey-style intake, already in Google Workspace | Google Forms | Free and unlimited; submissions go to Google Sheets. |
| Leads should become rows in a Notion database | Notion forms | Submissions land directly in your Notion workspace. |
| A form in your own site with an auto-reply and uploads for one low price | splitforms Pro | $5/month for 5,000 submissions, with auto-reply, 5 MB uploads and signed webhooks. |
| You already use Formspree and only need a few submissions | Formspree | 50 a month free; there is no need to switch until you hit the cap or need webhooks. |
The options in detail, alphabetically
Formspree: the long-standing form backend
Formspree uses the same action-URL approach as splitforms. Free is 50 submissions a month with 30 days of history. Personal is $15/month ($10 billed yearly) for 200 submissions, and webhooks and autoresponders start on Professional at $30/month ($20 billed yearly). A good fit if you already use it. To compare or move, see migrate from Formspree or splitforms vs Formspree.
Google Forms: free surveys and simple intake
Free, unlimited, and connected to Sheets. The form is a Google-hosted page or iframe, so it won't match your site's design, file uploads require respondents to sign in with a Google account, and the confirmation email is generic Google copy. It suits client surveys after a project better than a portfolio contact form. See Google Forms alternatives for business.
Jotform: template gallery and payments
Jotform has a large template library, including many freelancer intakes. The free Starter plan is 5 forms, 100 submissions a month and 100 MB of upload space, with Jotform branding. Bronze is $39/month ($34 billed yearly) for 25 forms and 1,000 submissions a month and removes the branding. It fits freelancers who want a visual builder and a big template gallery. See JotForm alternatives.
Notion forms: submissions as database rows
Notion added native forms in 2024. If your client pipeline already lives in Notion, submissions arriving as rows in a database is the appeal. Embedding is link- or iframe-based, and the available limits depend on your Notion plan, so check Notion's pricing page. You can get the same outcome with an HTML form and a webhook; see form to Notion.
splitforms: a form backend for forms in your own site
splitforms publishes this guide. Free is 500 submissions in total (one-time, no card, no expiry) with unlimited forms and email notifications. Pro is $5/month for 5,000 submissions a month, with auto-reply, file uploads (5 files of 5 MB each per submission) and HMAC-signed webhooks. Annual is $49/year for 15,000 a month. Spam filtering is a honeypot, time trap and rule-based smart spam filtering.
You paste a plain HTML form into your site (Webflow, Framer, Astro, Next.js, Astro, React) so it takes your CSS. Trade-offs: it is not a visual form builder, uploads and webhooks are paid, and there is no hosted form page, so you need a site to put the form on. Webhooks reach Notion or Airtable.
Tally: free hosted builder with uploads and webhooks
Tally has a Notion-style builder and an unlimited free plan under fair use. Free includes 10 MB file uploads, webhooks and the API. Pro is $29/month ($24 billed yearly) and removes the "Made with Tally" badge, adds custom domains and team features. The form is a tally.so link or an iframe embed, so it may not match your portfolio CSS. A good fit if you want a visual builder with zero setup. See Tally alternatives.
Typeform: polished one-question-at-a-time forms
Typeform's format suits long-form intake where the one-question-at-a-time flow earns its keep. Free is 10 responses a month; Basic is $39/month ($28 billed yearly) for 100 responses and is where file uploads and webhooks start. Branding removal starts on Plus. Pricing is per response, so busy forms move up tiers. See Typeform alternatives.
Web3Forms: the largest metered free tier
Web3Forms is an access-key endpoint for static sites. Free is 250 submissions a month with unlimited forms and domains and 30 days of history. Pro is $149/year or $15/month for 10,000 submissions a month and includes file uploads. See splitforms vs Web3Forms.
When is splitforms not the right choice?
- You need a free plan with uploads or webhooks. On splitforms both are paid (Pro, $5/month). Tally Free includes uploads and webhooks, and Basin Free includes uploads.
- You want an allowance that resets monthly. splitforms Free is 500 submissions once, not per month. Web3Forms gives 250 a month and Formspree 50.
- You don't have a site to put the form on. splitforms is a backend for HTML you host yourself. Tally, Typeform or Google Forms give you a hosted form page.
- You want a visual form builder. splitforms takes a pasted HTML form. Tally, Typeform and Jotform are visual builders.
- You need EU data residency. splitforms hosts data in the US under Standard Contractual Clauses (see the DPA). Tally stores data in Europe.
- You need a CRM, not just a form inbox. splitforms is not a CRM. Its dashboard is a lightweight submission inbox, and you send leads to Notion, Airtable or a real CRM with a webhook.
How does a form backend fit a freelancer workflow?
Here is one way to set it up if you use a form backend like splitforms:
- Portfolio site in Astro, Next.js, Framer or Webflow, whatever you're fastest in.
- Native HTML contact form styled to match your site, posting to your backend (template below).
- Autoresponder with a one-paragraph message and your Cal.com or Calendly link (a paid-plan feature on splitforms).
- Webhook to Notion for a searchable lead database (webhooks are paid on splitforms).
- Webhook to Slack or Discord for an instant phone notification when a lead lands. See Discord notifications.
- Honeypot field for spam protection without captcha friction. See honeypot vs reCAPTCHA.
Cost: $0 until your 500 free submissions are used. After that, Pro is $5/month or Annual is $49/year. If you want the webhook and upload parts without paying, Tally's Free plan includes both.
Copy-paste freelancer intake form (splitforms-ready)
This form has the five qualifying fields (project type, budget, timeline, description, file upload), a redirect and a honeypot. Drop it into your site, swap YOUR_ACCESS_KEY for your real key from splitforms.com/login, and you're live.
<form action="https://splitforms.com/api/submit"
method="POST"
enctype="multipart/form-data">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="hidden" name="subject" value="New project inquiry" />
<input type="hidden" name="redirect" value="https://yoursite.com/thanks" />
<label>Your name
<input type="text" name="name" required />
</label>
<label>Email
<input type="email" name="email" required />
</label>
<label>Company / brand (optional)
<input type="text" name="company" />
</label>
<fieldset>
<legend>Project type</legend>
<label><input type="radio" name="project_type" value="website" required /> Website</label>
<label><input type="radio" name="project_type" value="branding" /> Branding</label>
<label><input type="radio" name="project_type" value="app" /> App / product</label>
<label><input type="radio" name="project_type" value="other" /> Other</label>
</fieldset>
<fieldset>
<legend>Budget</legend>
<label><input type="radio" name="budget" value="under-3k" required /> Under $3k</label>
<label><input type="radio" name="budget" value="3-10k" /> $3k – $10k</label>
<label><input type="radio" name="budget" value="10-25k" /> $10k – $25k</label>
<label><input type="radio" name="budget" value="25k-plus" /> $25k+</label>
</fieldset>
<label>Timeline
<select name="timeline" required>
<option value="">Pick one</option>
<option value="asap">ASAP (under 2 weeks)</option>
<option value="1-month">Within a month</option>
<option value="quarter">This quarter</option>
<option value="flexible">Flexible</option>
</select>
</label>
<label>Tell me about the project
<textarea name="message" rows="6" required></textarea>
</label>
<label>Brief, mood-board, or reference (optional, 5 MB max)
<input type="file" name="brief" accept=".pdf,.png,.jpg,.fig,.zip" />
</label>
<!-- honeypot -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
<button type="submit">Send inquiry</button>
</form>Style it with your existing CSS. The form is plain HTML with no library and no iframe. The file field needs a paid splitforms plan; on Free the message still arrives and the file is dropped, so remove that field if you stay on Free. If you're on Next.js or React, the same shape works inside a component; see the Next.js form backend guide for the client-side fetch version.
Common mistakes freelancers make with contact forms
- Asking for too much. Phone number, address, company website, how-did-you-hear-about-me: every extra field can cost you conversions. Five fields is a sensible target.
- No budget field. You will spend hours replying to leads with unrealistic expectations. A budget radio with brackets filters this without making the lead type a number.
- No auto-reply. The lead refreshes, sees nothing and may assume the form broke. A short autoresponder or a thank-you page fixes this.
- Generic "message" field with no prompt. Instead of
Message, label the textareaTell me about the project — what does success look like?and you'll get briefs instead of one-liners. - Sending to a personal Gmail. Use a forwarder or dedicated address.
hello@yourname.comlooks like a business. - No spam protection. A bare form gets hit by scripted bots. A simple honeypot stops many of them for free. See the spam protection guide.
- Form never tested in production. Submit a test through the live form every time you redesign. See how to test form submissions.
- Hidden behind a "Get in touch" modal. Make the form a real page or a visible section; modals can hurt mobile usability and SEO.
Contact form guides for other industries
Next steps
- Grab a free access key: splitforms.com/login. No credit card.
- Pre-wired template: free HTML contact form.
- Compare splitforms head-to-head: vs Formspree, vs Typeform, vs Tally, vs JotForm.
- Wire submissions into your CRM: Notion, Airtable, Google Sheets.
- More reading: /blog, cheapest form-to-email service, best free form backend services.
- Plan, security, deliverability: /faq, /docs, /api-reference.
FAQ
Is this guide biased toward splitforms?
splitforms publishes this guide and is one of the options in it, so read it as vendor-written. To keep it checkable there is no overall ranking: tools are listed alphabetically, each use case names the option whose published plan fits it best (often not splitforms), competitor figures come from each vendor's own pricing page, and a section lists when splitforms is not the right choice.
What fields should a freelancer contact form actually have?
Five fields cover most intake: name, email, project type (radio or select), budget range (radio with brackets like $1–3k, $3–10k, $10k+) and a project description textarea. Add a single optional file upload for briefs or references. More fields cost you cold leads; fewer make it harder to qualify. A budget radio filters out unrealistic requests before they reach your inbox.
Why not just use Google Forms — it's free?
Google Forms is free and fine for surveys and internal intake. For a portfolio, the trade-offs are design and delivery: it is a hosted page or iframe that won't match your site's styling, submissions go to a Google Sheet, file uploads require respondents to sign in with a Google account, and the confirmation email is generic. If the form is your main conversion point, an HTML form posting to a backend, or a Tally embed, gives you more control.
Can splitforms handle file uploads for project briefs?
Yes, on paid plans when Storage is connected. Current limits are 5 files per submission and 5 MB per file, which covers PDFs, Figma exports, brand guidelines and reference images, and retained files are exposed through signed links. If you need uploads on a free plan, Tally Free accepts files up to 10 MB and Basin Free includes 100 MB of uploads. Web3Forms offers uploads from its Pro plan.
How do I auto-reply with my calendar link?
On splitforms, auto-reply is a paid-plan feature: turn on the autoresponder in the dashboard, write a short message and paste your Cal.com or Calendly link, and every lead gets an email confirming receipt with a booking link. Other tools handle it differently, so check whether a free plan includes it. You can also send people to a thank-you page with your booking link through a redirect field.
How long will 500 free splitforms submissions last a freelancer?
It depends on your traffic. The 500 is a one-time total with no expiry, not a monthly allowance. If your site gets a few dozen inquiries a month it lasts many months; if it gets a handful, years. When you outgrow it, Pro is $5/month for 5,000 submissions a month and Annual is $49/year for 15,000 a month. If you prefer an allowance that resets, Web3Forms gives 250 a month on its free plan.
Do I need a separate CRM, or is the splitforms dashboard enough?
For a small number of active leads, the dashboard works as a lightweight inbox: searchable submissions, tags, status and paid-plan CSV export. For more than that, send submissions to Notion, Airtable or Sheets with a webhook and let your real CRM live there; see the Notion and Airtable tutorials in /blog. Webhooks are a paid splitforms feature (Pro, $5/month). Tally includes webhooks on its Free plan, and Formspree starts them on Professional ($30/month, $20 billed yearly).
Can I embed the form inside my Webflow / Framer / Squarespace portfolio?
Yes. splitforms is action-URL based, so any HTML form can POST to it. In Webflow, set the action URL in the form settings. In Framer use a Code component. In Squarespace use a Code Block. The form uses your site's own styles because it is a native form on your page; splitforms is just the backend that receives the POST. Hosted builders like Tally and Typeform embed through an iframe or script instead.
What about Typeform — clients love how it looks?
Typeform's one-question-at-a-time format is polished, and branching logic is free. The catch for a freelancer is the response cap: Free is 10 responses a month, and Basic is $39/month ($28 billed yearly) for 100 responses. It fits long-form intake where the format earns its keep. If you want a similar step-by-step feel on a budget, you can build one in HTML with show/hide and post it to a form backend.