Contact form for Carrd websites
Carrd's native form widget needs a Pro Standard plan AND a Mailchimp/SendGrid/Basin integration to actually email you. Skip both. Set the form Type to "Custom" and point it at the splitforms endpoint — 60 seconds, 1,000 free submissions per month.
What your Carrd contact form actually looks like.
Drop-in form backend with spam filtering, signed webhooks, and a real submissions dashboard. The same code in this preview is what you copy into your Carrd project — no SDK, no plugin, no PHP.
- ✓1,000 submissions per month, free forever
- ✓Honeypot + AI spam classifier on every plan
- ✓Signed webhooks to Slack, Discord, your server
Ship a Carrd contact form without a backend.
No SDK, no PHP, no plugin. Your form posts standard FormData to one URL — submissions land in your inbox.
Get your free access key
Verify your email and your access key is generated instantly. Free for 1,000 submissions per month, forever.
By signing up, you agree to our terms and privacy policy.
Drop in the Carrd code
Copy the Carrd snippet on the right and paste it into your project. Replace YOUR_ACCESS_KEY with the key from step 1.
Submissions land in your inbox
Hits your dashboard and email in seconds. Forward to Slack, Discord, Sheets, Notion, or any signed webhook URL.
Try it now — no signup, no key.
This is a styled HTML preview of what your Carrd form will look like. Submitting opens a confirmation, no real request is sent.
Your Carrd form posts FormData to /api/submit. Splitforms validates the access key, runs the spam classifier, and forwards the parsed submission to your inbox plus the dashboard.
- →14ms median round-trip from the edge.
- →Honeypot + classifier, no CAPTCHA.
- →Per-domain key locking out of the box.
{
"access_key": "sk_live_4f9a_••••",
"name": "Maya Iyer",
"email": "maya@studio71.co",
"message": "…"
}How to ship this without regrets.
Five rules that make the difference between a form that works in the demo and a form that survives launch traffic.
- 01
Use the native Form widget, not an Embed. The widget styles automatically and gives you Carrd's mobile-optimized layout for free.
- 02
Set every field's Custom name explicitly: `name`, `email`, `message`. Otherwise Carrd auto-generates `name-1`, `name-2` and your inbox shows submissions with mystery field labels.
- 03
Lock the splitforms access key to BOTH your `*.carrd.co` URL and your custom domain. Carrd serves both, and a key locked to one will reject submissions from the other.
- 04
Use Carrd's built-in success message for confirmation — skip the redirect field. One-pagers don't need a separate /thanks page; a success blip is friendlier.
- 05
Use the hidden honeypot `botcheck` field. Carrd one-pagers attract bots because they're easy to scrape — splitforms' built-in spam classifier handles them.
What bites people who skip the docs.
Worth a 60-second skim before you ship to production. Each one has caused a Carrd support ticket at least once.
Pro Standard plan still required for Custom form Type
Carrd's free plan and Pro Lite don't expose the Form widget at all. Pro Standard ($19/yr) unlocks the Form widget with Type → Custom. Splitforms doesn't change Carrd's plan requirements — it just fills in the backend that Carrd doesn't ship.
Embed element forms don't inherit Carrd's site styles
If you paste raw HTML via an Embed element, your form will look like browser-default — no Carrd typography, no site colors. Use the native Form widget for styling, then add a hidden access_key field via Custom fields.
Carrd's success message + splitforms redirect can fight each other
Carrd's Form widget has a built-in success message that shows on 2xx response. If you also set a redirect field in the form, the user sees the success blip then redirects mid-message. Pick one: redirect via splitforms OR Carrd's success text.
The form widget's Field labels don't match input names by default
Carrd uses friendly labels like 'Your name', but the actual input name attribute is name-1 or similar unless you set Custom in the field settings. Set the Custom name to name, email, message — splitforms uses the input names as keys in your inbox.
Mobile preview shows the form, but submission requires publish
Carrd's Designer preview never actually POSTs the form. To test, publish the site (Carrd publishes free to a *.carrd.co subdomain) and submit from the live URL. Lock the splitforms access key to that subdomain in the dashboard.
Carrd's Pro Plus password protection blocks the splitforms POST silently
If your one-pager sits behind Carrd's Pro Plus password gate, the page itself loads only after a session cookie is set — but Carrd's password layer also adds a Referer-Policy: no-referrer header to outbound form posts. Splitforms's domain-locked access keys verify the Origin header, which becomes null under that policy, so legitimate submissions get rejected as off-domain. Either disable password protection on the contact page specifically, or set the access key to allow null origins (NOT recommended for production — anyone can replay the key from any page).
How Carrd handles forms without splitforms.
The shape of the problem before splitforms enters the picture — and the gap it fills for Carrd specifically.
Carrd's Form widget requires Pro Standard ($19/year) just to exist on the page, and even then it doesn't deliver email itself — the form 'works' by posting to an external integration: Mailchimp, SendGrid, Basin, Formspree, etc. So the question isn't 'native vs splitforms' but 'which third-party backend do you wire up?'. Mailchimp is overkill (and surprisingly expensive once your list grows); Basin and Formspree limit free submissions; SendGrid requires DNS verification. Splitforms is the same shape of integration (Type: Custom, Method: POST, Action: a URL) at a better free tier and with built-in spam filtering. Carrd's Form widget settings don't change.
Two ways to ship splitforms on Carrd.
Pick the pattern that matches your constraints — JS budget, key-exposure tolerance, server-side opacity. Both produce the same result.
Pattern A — native Form widget set to Custom type
In the Form widget's settings, set Type to Custom, Method to POST, Action to the splitforms URL. Add a hidden field access_key via the Custom Fields tab. Carrd handles the styling and mobile layout; splitforms handles delivery.
Pattern B — Embed element with full HTML control
Drop an Embed element into a Carrd section and paste raw HTML. Loses Carrd's auto-styling but lets you add a honeypot, multi-field validation, or custom redirect. Useful for waitlist or job-application forms that exceed the Form widget's capability.
Shipping Carrd + splitforms to production.
Host-specific gotchas, env-var conventions, and the boring-but-load-bearing details for putting this on the public internet.
Carrd publishes to a *.carrd.co subdomain on every plan; Pro Standard adds a custom domain. The form posts to splitforms from the browser, so neither subdomain nor custom domain matters for delivery. Lock the splitforms access key to BOTH the *.carrd.co URL and your custom domain — Carrd serves the same content under both, with different Origin headers. Carrd's Designer preview never actually POSTs; you have to publish (free) and submit from the live URL to test. Embed elements bypass Carrd's CSS, so the form will look browser-default unless you inline styles.
splitforms vs native carrd.
What you get for free vs what you build, pay for, or do without.
Things developers ask before they integrate.
Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.
Ship your Carrd contact form in 60 seconds.
1,000 free submissions per month. No credit card. Lock the access key to your domains, paste the snippet, watch submissions land in your inbox.
