# Add basic contact form functionality to Ghost

**URL:** <https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905>\
**Category:** Ideas\
**Created:** [April 15, 2018, 12:49pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905 "2018-04-15T12:49:30Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![dsecareanu](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/dsecareanu/32/413_2.png) [@dsecareanu](https://forum.ghost.org/u/dsecareanu)\
**Post date:** [April 15, 2018, 12:49pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/1 "2018-04-15T12:49:30Z")

</div>

I think that Ghost already has the basic components in place to bring in a very simple contact form:

- subscribers (it already collects emails)
- subscribers list (can save a message in that list)
- email (it can send notification emails)

Could just create another function additional to subscribe, such as contact, for example, which would function just like subscribe, but would add another data point: the message. Thus, this contact could just be a subscription in which the subscriber also leaves a message and which gets saved in the subscribers list (no email delivered, at least until the anti-spam feature is not in) in the following form:

- email
- message
- subscription date
- status

A simple anti-spam feature could be added via the Google ReCaptcha API (should not be that complicated and should most probably satisfy the requirements of 80% of the users) and then the message could be delivered via email as well (with a default “Message from your Ghost site” subject line or something similar).

Just my 2 cents. 🙂

---

<div class="post-metadata">

**Author:** ![anon42105189](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@anon42105189](https://forum.ghost.org/u/anon42105189)\
**Post date:** [April 16, 2018, 12:46pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/2 "2018-04-16T12:46:56Z")

</div>

I would also love to see that feature added. 🙂

---

<div class="post-metadata">

**Author:** ![Juan](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/juan/32/25_2.png) [@Juan](https://forum.ghost.org/u/Juan)\
**Post date:** [October 1, 2018, 1:58am UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/4 "2018-10-01T01:58:58Z")

</div>

In the meantime, for contact forms there are also for example Cognito Forms, Google Forms, Kontactr, etc.

---

<div class="post-metadata">

**Author:** ![allamiro](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/allamiro/32/4429_2.png) [@allamiro](https://forum.ghost.org/u/allamiro)\
**Post date:** [September 5, 2019, 3:49pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/5 "2019-09-05T15:49:55Z")

</div>

its important to have contact function i think its a must for any CMS or blog

---

<div class="post-metadata">

**Author:** ![DavidDarnes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daviddarnes/32/3533_2.png) [@DavidDarnes](https://forum.ghost.org/u/DavidDarnes)\
**Post date:** [September 5, 2019, 4:21pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/6 "2019-09-05T16:21:22Z")

</div>

We’ve got a few ways in which you can integrate a form 🙂  
[https://ghost.org/integrations/surveys-forms/](https://ghost.org/integrations/surveys-forms/)

---

<div class="post-metadata">

**Author:** ![allamiro](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/allamiro/32/4429_2.png) [@allamiro](https://forum.ghost.org/u/allamiro)\
**Post date:** [September 5, 2019, 7:03pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/7 "2019-09-05T19:03:10Z")

</div>

I have seen those integrations but it would help if its natively built on ghost that can be activated or deactivated according to the need of the site owner instead of having to use all these services that require you to sign up and give your information

---

<div class="post-metadata">

**Author:** ![DavidDarnes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daviddarnes/32/3533_2.png) [@DavidDarnes](https://forum.ghost.org/u/DavidDarnes)\
**Post date:** [February 19, 2020, 5:06pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/8 "2020-02-19T17:06:55Z")

</div>

Hey everyone 👋. We’ve been working on our extensive list of guides and tutorials. We’ve just added a tutorial on how to add a contact form to your Ghost theme:  
[https://ghost.org/tutorials/adding-a-contact-form/](https://ghost.org/tutorials/adding-a-contact-form/)

Hope people file this helpful ✌

---

<div class="post-metadata">

**Author:** ![giacomosilli](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/giacomosilli/32/3403_2.png) [@giacomosilli](https://forum.ghost.org/u/giacomosilli)\
**Post date:** [March 10, 2020, 9:50pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/9 "2020-03-10T21:50:43Z")

</div>

Hi @DavidDarnes,  
I was reading this tutorial to add a contact form.  
is it my problem or has the “Template” field been removed from the page creation options? I do not see it.

I solved it by directly adding the form in an html card of the page

Isn’t there a method to send an email directly without using an external service?

---

<div class="post-metadata">

**Author:** ![DavidDarnes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daviddarnes/32/3533_2.png) [@DavidDarnes](https://forum.ghost.org/u/DavidDarnes)\
**Post date:** [March 11, 2020, 8:44am UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/10 "2020-03-11T08:44:37Z")

</div>

The template field will only appear if you’ve created a new `.hbs` file with the prefix of `custom-` in the name. Adding directly is fine too 🙂, it’s just not as re-usable. There are method but it either requires more self management or modifying the Ghost codebase, or a combination of both

---

<div class="post-metadata">

**Author:** ![ymzkala](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ymzkala/32/7056_2.png) [@ymzkala](https://forum.ghost.org/u/ymzkala)\
**Post date:** [March 29, 2020, 8:33pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/11 "2020-03-29T20:33:13Z")

</div>

I wish comments were enabled in these tutorials. I am a beginner with front end web stuff and ghost themes. A couple of comments/questions:

- Where do I insert the CSS - the screen.css file?
- The action URL is provided by formspree after you sign up and create a form on their site
- The tutorial says we are creating a custom post template, but we are editing the page.hbs. Is page.hbs itself a custom post template?
- Where in the page.hbs file do I insert the {{{block “form-area”}}}? I don’t know the implication of putting it above/below the {{#post}}

Thanks in advance,

---

<div class="post-metadata">

**Author:** ![DavidDarnes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daviddarnes/32/3533_2.png) [@DavidDarnes](https://forum.ghost.org/u/DavidDarnes)\
**Post date:** [March 30, 2020, 8:59am UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/12 "2020-03-30T08:59:56Z")

</div>

No need for comments on the tutorials, by posting on the forum you are already in the right place for asking questions!

- As long as the CSS file is used in the theme then any `.css` can contain the form styles. Which theme are you customising?
- As you’ll be using the Formspree as a service then yes you’ll need an account, but they use a standard method of creating action URLs as shown in the tutorial
- `custom-page-with-form.hbs` _is_ the custom template, which is inheriting the code from the `page.hbs` template
- You can put the contact form block anywhere in the template file, it really depends on where you want the form to appear on the page

Hope this clears things up for you!

---

<div class="post-metadata">

**Author:** ![Crypto\_Fireside](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/crypto_fireside/32/16734_2.png) [@Crypto\_Fireside](https://forum.ghost.org/u/Crypto_Fireside)\
**Post date:** [August 9, 2022, 11:14pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/13 "2022-08-09T23:14:52Z")

</div>

Should be offered to Ghost pro subscribers. Surprised it isn’t.

---

<div class="post-metadata">

**Author:** ![vanjungg](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/vanjungg/32/4254_2.png) [@vanjungg](https://forum.ghost.org/u/vanjungg)\
**Post date:** [August 10, 2022, 4:43pm UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/14 "2022-08-10T16:43:24Z")

</div>

i use this from [Hooshmand.net](http://Hooshmand.net)

> **[Beautiful Forms in Ghost — Using HTML](https://hooshmand.net/html-contact-forms-in-ghost/)**
>
> Creating beautiful contact forms in Ghost using pure HTML.

easy to use and working well!

---

<div class="post-metadata">

**Author:** ![tiberiumihai](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/tiberiumihai/32/19145_2.png) [@tiberiumihai](https://forum.ghost.org/u/tiberiumihai)\
**Post date:** [August 25, 2022, 10:47am UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/15 "2022-08-25T10:47:27Z")

</div>

Now that we have native comments in ghost, it would be interesting to see if we can use that functionality to also build a contact page.

This is what I’m thinking:

- if we are able to specify to the {{comments}} helper to not list the comments and to only add the input handler to create new comments, and
- if we are able to create a “private” page (allowed to be viewed only by the admins) in which the {{comments}} helper is used to listing all those comments to be managed,  
then we can create a simple and private contact page ourselves.

There are a few ifs, but I think this is doable and it might be in a ghost type way for a lot of themes out there. What do you think?

---

<div class="post-metadata">

**Author:** ![sturmsucht](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/sturmsucht/32/40778_2.png) [@sturmsucht](https://forum.ghost.org/u/sturmsucht)\
**Post date:** [June 14, 2026, 6:53am UTC](https://forum.ghost.org/t/add-basic-contact-form-functionality-to-ghost/905/16 "2026-06-14T06:53:48Z")

</div>

bringing some activity into this. also wondered why Ghost has no build in contact form.

no guides please to add a third party. I’m just curious and really things this should be a basic function.
