Contact Forms in ghost issue

I have been going through the process of building ghost website and mainly ghost contact forms
though the web app is clean fast responsive beautiful design but lack this basic functionality of being able to create a simple contact form or integrate a contact form with the app. You are under the mercy of paid embedded services from other sites that clutter your website . While i was thinking to switch to ghost from wordpress I started thinking may be this is not a good idea at the moment and for personal blog I dont want to pay the ghost pro untill i know for sure my website generate a traffic or needed more important features but in my view contact forms are basic functionality.
No plugins available or built in integration app to allow you to add forms to your ghost blog.
There are so many limitations on the ghost application

2 Likes

Hi Allamiro, thanks for your post! There are literally hundreds of integrations for Ghost which you can easily find here:

Including, but not limited to multiple free and paid contact/survey form plugins and services here:

https://ghost.org/integrations/surveys-forms/

There are very few limitations ;)

3 Likes

I Love Ghost CMS, Because It’s Very Smart Then Other CMS. But There Are Some Little Limation in Ghost, I Hove Ghost Developers Thinking About The Mater And Will Add Some Features. If Ghost Add Some Features , As Like As

  1. Native Comment
  2. Native Contact Form
  3. Custom Field
  4. Custom Post Type

Ghost CMS will be World’s Number One Popular CMS.

3 Likes

It’s true, in Ghost you don’t have the many options in WordPress. I have two blogs, one WP (professional), one Ghost (my personal/professional), so I constantly work with and around both.

Now, on contact and sign-up forms: I tried a few plug-ins in WP, but I found they were all clumsy, or slow (seconds to upload, external scripts, clashing themes). So much so that I started to write my own HTML forms, and just send the data to the form data collection services.

Eventually, I ditched the services, and just keep the data in Google Sheets. It’s fast, and the data is mine, and it’s free.

I use the same approach in Ghost, for sign-ups and for my contact form — I just write HTML. see my contact form on Contact Dana Hooshmand for example. Feel free to steal the code!

6 Likes

Any link to a tutorial about doing this?

Thanks!

1 Like

can you elaborate more on what you mean by sending the data from data collection services?

By “send the form to data collection services” I meant to a database with an API. I use Zapier + Google Sheets. You can also just use Google Sheets with a Google Apps Script API, but I find Zapier more flexible because I can connect other steps easily, like mailing people.

@pascal I’ll put together a guide on my code. (also I’ll clean it up… It had some ugly bits in it)

2 Likes

Here, I put a tutorial together in case anyone else is looking @pascalandy: Beautiful Forms in Ghost — Using HTML

It forced me to clean up the code (as best I can), too. So, thanks for asking!

5 Likes

Well thank you too!

I created my own solution - without external services, which I’m happy to share with you.

  1. Tutorial: Contact Forms in Ghost — Without External Services

  2. Github repo: ghost-contact-form

I’m happy to extend it, if you have any specific needs.

7 Likes

If I were the Ghost team I would implement something like this into core, making it use the env variables already existing there in the config .json file. :slight_smile:

2 Likes

While the idea of building a contact form feature directly into Ghost can seem like a good idea, it does come with overhead. Managing, server configuration, spam handling and form validation can come with a lot of headache.

We’ve recently put together a tutorial on how to add a contact form to a Ghost theme using Formspree, a service that’s free to use and comes with a variety of features which can provide a very custom experience for you and people using your forms:
https://ghost.org/tutorials/adding-a-contact-form/

The drawback of the method outlined in the docs (besides requiring handlebars templating knowledge) is that email addresses are being sent to formspree. Maybe you could enhance your docs by hinting towards solutions that do not share visitor’s contact informations with external services the site owner does not have control of.

Using tools like Formspree are more accessible to people with varying developer knowledge. Asking people to use a templating language is more approachable than asking them to setup, and maintain, a self-hosted solution.

Rather than making assumptions about peoples knowledge I prefer docs that inform me about my options and have a little discussion about the pros/cons as well as hinting towards alternatives. Especially if it comes to dealing with sensitive data like visitors’ email addresses.

Yes, but we don’t want to depend on external services and have to pay for services, and let external services spy our contacts.

Having a post endpoint to receive the data from the form and a destination mail address where the system sends the fields and data would be good enough.

1 Like

Great good option.

I will try to fork the repo in order to make some changes and provide a configuration interface to the forms service and let you config differente form destinations associated with differente email.

I will have to learn more about node.js and javascript/java.

Thank you

Agree mate. Cant believe Ghost does not offer a native contact form like yours, so simple.
I’m not coder and so I did the same thing just with a Google Form because I have no other option at this stage unless I want to pay some company $x per month