AdvancedPages you can build

Contact page

A working contact form in one setting: paste a form-service URL and readers can write to you, with the confirmation appearing in place. The sidebar is yours to write in the editor.

Two columns: a form on the left, and on the right whatever you write in the page body. Ghost has no form handling of its own, so the form posts to a form service, and pasting that service's address into one setting is the entire setup.

Create the page

Go to Pages → New page and give it a title, for example Say hello.

In the editor's settings panel, set Template to Contact.

Write the sidebar in the body (see below), then publish.

Contact page - Editor

Contact page

Contact page

Contact page

What each field becomes

FieldOn the page
Primary tagThe small label above the heading. Falls back to the word Contact
TitleThe heading, and the subject line on the emails you receive
ExcerptThe line under the heading
BodyThe sidebar on the right

Turning the form on

Create a form at a service such as Formspree, Basin or Getform, and point it at your own email address.

Copy the endpoint URL, for example https://formspree.io/f/abcdwxyz.

In Ghost, go to Settings → Design & branding → Customize → Theme → Site wide and paste it into Contact form endpoint. Save.

Send yourself a test message.

The endpoint setting

What readers see

Three fields: name, email and message. No subject line and no dropdown, because the page title is already the subject of the email you receive.

When a message is delivered, the form is replaced in place by a short confirmation in your site's language. The reader stays on your page and is never sent to a stranger's thank-you screen.

The confirmation in place of the form

Without an endpoint

Leave the setting blank and the form is replaced by a tidy email card, using the support address from Settings → Portal. It looks deliberate rather than broken, which makes it a reasonable permanent choice if you would rather just publish an address.

Which services work

A note on spam protection

The form carries a hidden field that real people never fill in and bots usually do, named the way Formspree expects (_gotcha). Basin and FormSubmit look for a differently named field, so their built-in trap will not catch anything here. Both offer their own spam filtering, which is worth switching on in their dashboard.

The sidebar

The page body becomes the right-hand column, and Quiet restyles the usual editor blocks to suit a narrow space:

In the bodyIn the sidebar
A headingA small uppercase label
A paragraphQuiet secondary text
A listA stack of lines, without bullets
A list item that is only a linkAn accented row
A callout cardA soft panel in your accent colour
An imageSits at the column's full width

Good things to put there: how quickly you reply, what you would rather not be asked, your postal address, links to the places you are already reachable.

Leave the body empty and the form takes the full width of the page.

The sidebar

Without JavaScript

The form is a real HTML form, so it still submits: the reader lands on the form service's own confirmation page rather than staying on yours. Nothing is lost except the polish.

If a message cannot be sent

On a network failure, Quiet shows the reader a line in your own language rather than the service's English, and arms the form to submit the ordinary way if they press send again. It never claims a message was delivered when it was not, and it never sends twice.