Generate a free splitforms key
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Contact Form (with phone) · Astro
Name, email, phone, company, reason — for B2B inquiries that need qualification. Free for 200 submissions total — no backend, no SDK, no plugin.

Copy-paste code
Replace YOUR_ACCESS_KEY with your splitforms key, paste into a Astro page, and ship. No build-time integration required.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New detailed contact submission">
<label for="name">Full name *</label>
<input id="name" type="text" name="name" placeholder="Jane Builder" required>
<label for="email">Work email *</label>
<input id="email" type="email" name="email" placeholder="[email protected]" required>
<label for="phone">Phone *</label>
<input id="phone" type="tel" name="phone" placeholder="+1 415 555 0142" required>
<label for="company">Company</label>
<input id="company" type="text" name="company" placeholder="Acme Inc">
<label for="reason">What's this about? *</label>
<select id="reason" name="reason" required>
<option value="">Choose…</option>
<option>Sales / pricing</option>
<option>Partnerships</option>
<option>Press / media</option>
<option>Support</option>
<option>Careers</option>
<option>Other</option>
</select>
<label for="message">Message *</label>
<textarea id="message" name="message" placeholder="Give us context — links, dates, deal size, anything we should know." required></textarea>
<!-- honeypot — bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>Astro + Contact Form (with phone)
Astro's static-first architecture means your form HTML ships pre-rendered with zero client JavaScript — perfect for fast page loads, but it also means you can't call a server-side endpoint on static hosts. splitforms is designed for exactly this: the browser POSTs directly to our edge endpoint, so the form works on Netlify, Cloudflare Pages, Vercel, or any static host without an Astro API route. The contact form (with phone) is pure HTML — no <script> tag, no client component, no island. Astro's view transitions and partial hydration don't interfere with the form submission because it uses a standard browser POST.

Contact Form (with phone) fields
The posted payload contains full name, work email, phone, company, what's this about?, message. Required fields are full name, work email, phone, what's this about? and message. Rename, remove, or add your own — splitforms accepts any name you POST.

Template playbook
Phone fields suffer from format chaos — users type +1 555 123 4567, (555) 123 4567, 555.123.4567, 5551234567. Three options: accept anything and normalize server-side (best for international), use a pattern attribute for client-side validation (good for US-only), or apply a JavaScript mask that formats as the user types (highest conversion, more code). splitforms accepts any format and your form's UX is whichever approach fits your audience.

Setup
Three actions stand between you and your first contact form (with phone) submission — no backend, no database, no CAPTCHA library.
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Drop the form snippet into a Astro page, component, or layout. Replace YOUR_ACCESS_KEY with the key from your dashboard. The form action is a hard-coded URL — no env vars or build-time wiring needed.
Dashboard updates live on Free. Free includes owner email delivery; Starter adds signed webhooks, CSV export, Slack/Discord forwarding, and BCC to your team.
How SplitForms works
Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

Point your form to your unique SplitForms endpoint. That's it.

We instantly capture and organize every submission in your inbox.

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

No credit card required. Set up in under 60 seconds.
Connect & automate
SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js. And with Stripe connected, your forms can take payments too.

Trusted by indie teams and agencies shipping forms worldwide
Testimonials
40 quotes on record — from indie hacks to agency migrations.
“I had an AI agent build a lead-capture flow, and splitforms was the backend it chose on its own through MCP. It just worked end to end.”
“Switched from Web3Forms because I wanted a real dashboard, not just an email relay. Same simplicity, far more once the lead arrives.”
“The autoresponder lets us send a clean confirmation email to every applicant automatically. Candidates feel looked after and we don't lift a finger.”
“I teach a web dev course and tell every student to use splitforms for their portfolio contact form. Free, no card, and they learn how a real API works.”
“Exports are a single click to CSV with every field intact. Reconciling leads against our CRM stopped being a Monday-morning chore.”
“I evaluated five form backends in an afternoon. splitforms was the only one whose docs didn't hide the pricing or the rate limits. That earned the signup.”
Common questions
Yes. The form is plain HTML with a single POST endpoint, so it runs on any Astro site without server-side code, plugins, or SDKs. Drop the snippet into a Astro page or component and submissions land in your splitforms dashboard.
Free for 200 submissions total — no credit card, no trial. Pro is $5/mo for 5,000 submissions, and there's a one-time $59 3-year plan (15,000 submissions/mo for 36 months). The same pricing applies regardless of which framework hosts the form.
Yes. The template ships with sensible defaults (full name, work email, phone, company…) — add, remove, or rename any of them. Splitforms accepts whatever fields you POST.
A hidden honeypot field catches dumb bots, and a tuned classifier scores the rest. You only see real submissions in your dashboard. No CAPTCHA, no friction for human users — and it works the same on Astro as on any other framework.
Yes. Webhooks are available on paid plans, with auto-formatted payloads for Slack, Discord, and WhatsApp (via CallMeBot). Or send raw signed JSON to any URL — Zapier, n8n, your own server. Configure in the splitforms dashboard.
Yes — the form posts directly to splitforms from the browser, so no server is involved. Works on Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3, or any plain Apache host.
Two reasons. (1) Mobile keyboards: tel triggers the numeric keypad, dramatically reducing typos. (2) Accessibility: screen readers announce the field type, helping users with assistive tech understand what's expected. The 'no desktop benefit' is a feature, not a bug — the behavior matches user intent.
Depends on your audience. International contact forms should accept any format (use a permissive pattern + server-side normalization). US-only forms can use a strict pattern that matches `(555) 123-4567`. Either way, splitforms accepts whatever format the user submits — the validation is for UX, not data integrity.
Yes — listen for both `input` and `paste` events, and reformat on every change. The pattern only validates on submit, so the mask gives live feedback as the user types or pastes.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime