Skip to content

How to Add a Contact Form to Your Ghost Site

An Aspire Themes customer asked how to add a contact form to a new Ghost publication. Ghost does not include a contact form, but you can add one to a page with an HTML card and Formspree.

This guide creates the Formspree form, embeds it on a Ghost page, and adds that page to the site navigation.

Create the Contact Page

In Ghost Admin, open Pages, click New page, and give the page a title such as Contact.

Create the Contact Page
Create the Contact Page

Create the Contact Form

Create a form in Formspree, then copy its endpoint from the Formspree Integration page. Replace {form_id} below with the ID from that endpoint.

<form action="https://formspree.io/f/{form_id}" method="POST">
  <label for="contact-name">Name</label>
  <input id="contact-name" type="text" name="name" required>

  <label for="contact-email">Email</label>
  <input id="contact-email" type="email" name="email" required>

  <label for="contact-message">Message</label>
  <textarea id="contact-message" name="message" required></textarea>

  <button type="submit">Send</button>
</form>

In the Ghost editor, add an HTML card.

Add HTML Block
Create the Contact Page

Paste the form code into the card, replace the form ID, and publish the page.

Form Code

Submit a test message from the published page, then confirm that Formspree receives it.

Form submission notification
Form submission notification

Add the Page to the Blog Navigation

The last step is to add the contact page to the blog navigation. Go to Settings → Site → Navigation, add an item with a label and the page slug, then click Save.

Ghost Navigation

You can add fields or style the form to match your theme. Each field you want Formspree to save must have a name attribute.

More from the Blog

Latest Ghost Themes