The Ghost Themes Developer Hub

Welcome to the Ghost Themes developer hub. You'll find comprehensive guides and documentation to help you start working with Ghost Themes as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Helper Overview

Ghost has a number of built in helpers which give you the tools you need to build your theme. Helpers are classified into two types: block and output helpers.

Block Helpers have a start and end tag E.g. {{#foreach}}{{/foreach}}. The context between the tags changes and these helpers may also provide you with additional properties which you can access with the @ symbol.

Output Helpers look much the same as the expressions used for outputting data e.g. {{content}}. They perform useful operations on the data before outputting it, and often provide you with options for how to format the data. Some output helpers use templates to format the data with HTML a bit like partials. Some output helpers are also block helpers, providing a variation of their functionality.

Custom theme helpers

We will be creating a way to add custom helpers in future with apps. Apps are not a thing yet, but it's already tracked on our internal feature board.

If you have an idea for a new core helper, which could be useful for other developers as well, please raise an idea in our forum.

We don't recommend forking gscan, because you would have to hack Ghost core.

Helper Listings

There are a number of different types of helper in Ghost. The types give some background information on how the helpers work or what they do, each helper has a list of types in its documentation which will link back here. For more information on the different expressions you may see wrapped in curly braces within Ghost themes, see the handlebars expressions guide.


{{foreach}}, {{has}}, {{is}}, {{get}}, {{content}}, {{excerpt}}, {{tags}}, {{author}},
{{img_url}}, {{navigation}}, {{pagination}},
{{url}}, {{date}}, {{plural}},
{{encode}}, {{asset}},
{{body_class}}, {{post_class}},
{{ghost_head}}, {{ghost_foot}},
{{meta_title}}, {{meta_description}}, {{next_post}} & {{prev_post}}, {{log}}, {{if}}, {{unless}}


Required helpers must be included in a theme. Any theme which does not use all of the required helpers are considered invalid themes.

{{asset}}, {{body_class}},
{{post_class}}, {{ghost_head}},


Block helpers require both an opening and closing tag like {{#has}}{{/has}}. A full explanation of block helpers can be found in the Handlebars section.

{{foreach}}, {{has}}, {{is}}, {{author}}


These helpers make use of Promises (asynchronous operations) as part of their work behind the scenes. This can cause limitations, and there is a known issue with Async helpers not working when they are nested.

{{get}}, {{next_post}}, {{prev_post}},
{{ghost_head}}, {{ghost_foot}},
{{amp_ghost_head}}, {{amp_content}}


Query helpers perform a request to the API to get extra data for your theme. When using a Query helper, you will get access to additional data to that listed in the context table.

{{get}}, {{next_post}}, {{prev_post}}




This means the helper was added by Ghost, rather than being part of Handlebars


AMP helpers are specifically made for amp posts. You'll find the documentation on the AMP feature page.


These helpers are core to the Handlebars templating language, meaning you may find more documentation about them elsewhere.


Template helpers have a special partial template in Ghost core which they use to render their output. This template can be overridden by including a correctly named template in the partials folder of your theme. Details of the template are always documented with the helper.

{{navigation}}, {{pagination}}


Output helpers are simple helpers which aid with common tasks when outputting data for themes, like listing tags. They often have options for configuring the output.


Format helpers provide tools for nicely formatting bits of data, like dates. They often have options for configuring how the data is formatted.

Helper Overview