Furrow Forms

Platform CMS · works with Furrow Forms

Contact forms for Ghost sites

Members and newsletters are native; the contact form is Furrow.

paste this into your agent

Fetch furrowforms.com/ai and set up a contact form backend for my Ghost site.

agent-readable recipe: /forms-for/ghost.md

prefer clicking? start in the dashboard

contact.hbs (or Settings → Code injection)
<form action="https://api.furrowforms.com/s/fp_k7m2" method="POST">
  <input type="text" name="_gotcha" style="display:none" tabindex="-1" />
  <input type="hidden" name="_ft" value="" />
  <script>document.currentScript.previousElementSibling.value = Date.now();</script>
  <input name="name" type="text" required />
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button>Send</button>
</form>

The gap

Why Ghost sites need a form backend

Ghost is superb at what it chose to be: publishing, memberships, newsletters. What it deliberately doesn’t include is a general-purpose contact form — the "work with me" form, the sponsorship enquiry, the support request. And on Ghost(Pro) you can’t deploy server code to catch one yourself. Furrow Forms is the clean fit: a plain HTML form in your theme or a code-injection block, posting to a managed endpoint that filters spam, stores the submission, and emails you. No plugin system required — which is good, because Ghost doesn’t have one.

01

Portal signs up members; it doesn’t take messages

Ghost’s native forms feed Members — subscriptions, not conversations. An enquiry form needs its own backend, and Furrow is one POST away in any Handlebars template.

02

Ghost(Pro) means no custom server code

Managed hosting is worth it, but it closes the DIY route. A Furrow-backed form is pure frontend markup — it works identically on Ghost(Pro) and self-hosted Ghost.

03

Theme edits shouldn’t be form maintenance

Recipients, thank-you URL, spam policy, and webhooks live on the Furrow project — change them in the dashboard or over the API without touching your theme or re-uploading a zip.

Two ways in

Set it up yourself, or don’t

Hand it to your agent

[ recommended ]

Furrow’s whole control plane is an API and MCP server. Paste this prompt into Claude Code, Cursor, or any agent — it does the rest:

paste this into your agent

Fetch furrowforms.com/ai and set up a contact form backend for my Ghost site.
  1. 1.Registers the account over POST /api/register — you read one 6-digit email code
  2. 2.Provisions the site: client, project, and forms in one idempotent bootstrap_site call
  3. 3.Pastes the generated snippet into your codebase
  4. 4.Fires test_webhook and verifies the signed delivery

Or do it by hand

  1. 01Create a free account and a project for your publication.
  2. 02Add the form to a page using an HTML card, or to a custom template in your theme.
  3. 03Set your domain, notify email, and thank-you URL once on the project.
  4. 04Publish. Members keep flowing through Portal; messages flow through Furrow.

free tier: 100 subs/mo · unlimited forms · full API + MCP · pricing →

FAQ

Ghost + Furrow Forms, answered

How do I add a contact form to a Ghost site?

Add a plain HTML form — via an HTML card on a page, code injection, or a theme template — with its action pointed at a Furrow Forms endpoint. No server code is needed, so it works on Ghost(Pro) and self-hosted installs alike.

Doesn’t Ghost already have forms?

Ghost’s built-in forms are for member signup and newsletter subscription through Portal. There is no native general-purpose contact form, and no plugin system to add one — which is why a form backend is the standard answer.

Will this work with my Ghost theme?

Yes — the form is plain markup and inherits your theme’s styling like any other HTML. Style it with your theme’s classes; the honeypot field stays hidden, and Furrow handles what happens after the POST.

The form backend your agent can run.

paste this into your agent

Fetch furrowforms.com/ai and set up forms for this site.

Setup for agents →