Get your free access key
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. The Free plan includes 500 submissions total, no credit card.
Contact form · Ghost
Updated · plan facts checked against /pricing
Paste one HTML card into any Ghost page and every message lands in your inbox and dashboard — no plugin, no theme edit, no members portal.

Plain HTML in a Ghost card — nothing to install or keep updated.
A honeypot and form_loaded_at time-trap screen bots before your inbox.
Accepted submissions are saved to your dashboard before owner notification email is attempted; delivery time and inbox placement depend on provider and recipient settings.
Copy-paste ready
Drop this into a Ghost HTML card, replace YOUR_ACCESS_KEY, and publish. That's the whole integration — no plugin, no theme edit, no server.
<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 message from Ghost blog">
<input type="hidden" name="form_loaded_at" id="form_loaded_at">
<label>Name</label>
<input type="text" name="name" required>
<label>Email</label>
<input type="email" name="email" required>
<label>Topic</label>
<select name="topic">
<option value="editorial">Editorial</option>
<option value="advertising">Advertising</option>
<option value="collab">Collaboration</option>
</select>
<label>Message</label>
<textarea name="message" rows="4" required></textarea>
<!-- Honeypot: must stay empty -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>
<script>
document.getElementById('form_loaded_at').value = Date.now();
</script>Setup
No theme edit, no plugin. Paste one HTML card and publish — these are the five steps, whether it goes on a page or a post.
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. The Free plan includes 500 submissions total, no credit card.
In Ghost Admin, edit any page or post, click the + button, and add an HTML card.
Paste the form HTML above into the HTML card and replace YOUR_ACCESS_KEY with your real access key.
Leave the small <script> tag under the form in place — it timestamps the page load (form_loaded_at) so splitforms can reject bot submissions that arrive too fast.
Publish the page. Submissions now land in your splitforms dashboard and your inbox — email notifications are free on every plan.
Why Ghost needs this
Ghost is a publishing platform first — its data model is built around posts, tags, and memberships, not lead capture. The closest thing in stock Ghost is the members/subscription portal, which registers free or paid subscribers, not general reader messages. Rather than fork your theme or run a server just to handle one POST request, most publishers paste an HTML card pointed at a hosted form backend like splitforms — nothing to maintain, and it works on every Ghost host, including managed Ghost(Pro).

Spam control
The code above ships two traps: a honeypot field that must stay empty (bots fill every field; real visitors never see it) and a form_loaded_at timestamp that flags submissions sent faster than a human could type. splitforms also rate-limits at 6 per minute and 20 per 15 minutes, per IP per form, and applies server-side content heuristics — so most Ghost blogs never need a CAPTCHA at all.

Beyond email
On Pro ($5/mo) and above, connect the native Slack, Notion, Google Sheets, Airtable, Discord, Telegram, WhatsApp, or Mailchimp integration — or add a generic webhook, signed with HMAC-SHA256 — and every submission is forwarded the moment it arrives. Want a separate list that isn't tied to Ghost membership? A newsletter signup form collects addresses straight into your dashboard. Want the full walkthrough? Follow the step-by-step Ghost contact form tutorial.

How SplitForms works
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

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
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Questions
Edit any Ghost page or post, switch to the HTML card, and paste an HTML form that points to a hosted form backend like splitforms (action="https://splitforms.com/api/submit"). No Ghost theme edit or plugin required — publish the page and the form is live.
No. Ghost ships a members/subscription portal for paid and free member sign-ups, but no native contact form. Most publishers add one with an HTML card pointed at a hosted form backend, since building a working submit handler in Ghost's theme layer isn't practical for most sites.
Yes, but it's a separate thing from Ghost's own memberships. Ghost's built-in members feature already handles subscribers who get your posts by email. A splitforms form is for a different list — for example, occasional announcements — and Mailchimp has a native 1-click integration; other tools connect via a generic webhook (on paid plans, from $5/mo).
Yes. splitforms' Free plan includes unlimited forms, 500 submissions total, spam filtering, the dashboard, and email notifications to your inbox — no credit card. If your blog outgrows that, Pro is $5/month for 5,000 submissions a month plus webhooks and integrations, and Annual is $49/year for 15,000 a month.
No. The form is plain HTML sitting in an HTML card — it posts directly from the visitor's browser to splitforms and never touches your theme files. Switching themes, updating Ghost, or moving hosts doesn't affect it, and there's no plugin to keep updated.
The code above includes two built-in traps: a botcheck honeypot field that must stay empty (bots fill every field; real visitors never see it) and a form_loaded_at timestamp that flags submissions sent faster than a human could type. splitforms also rate-limits at 6 per minute and 20 per 15 minutes, per IP per form, and applies server-side content heuristics automatically, so most sites don't need a CAPTCHA at all.
Yes, on Pro ($5/mo) and above. Connect the native Slack, Notion, Google Sheets, Airtable, Discord, Telegram, WhatsApp, or Mailchimp integration in your dashboard, or add a generic webhook, and every submission is forwarded the moment it arrives — no Zapier account needed for those native ones.
Simple pricing
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
For side projects and indie devs.
Every paid feature, for agencies and growing products.
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
No credit card required on Free • Cancel anytime • Full pricing and FAQ