Ghostcn
Skip to Content
Guides

Integrate with Ghost

Use native content, membership, search, comments, and pagination.

Ghostcn installs Handlebars partials. Ghost supplies the page context and native helpers. Use post components inside a post or post loop and author cards inside an author context:

{{#foreach posts}}
    {{> "components/post-card"}}
{{/foreach}}

{{#post}}
    {{> "components/post-header"}}
{{/post}}

Membership and pricing

Pricing Table uses active public Ghost tiers and their actual currencies, prices, and benefits. Portal links target the tier and billing interval. Membership blocks respect disabled, invite-only, restricted signup, and paid membership settings, and can legitimately render nothing.

Newsletter Form uses native member-form attributes. If signup terms require consent, the component opens Portal. Signed-in members don’t receive another signup form.

Render the paywall once

Do not output protected post HTML outside Ghost’s access checks. A custom CTA after native protected {{content}} can duplicate the paywall.

The starter uses partials/content-cta.hbs for one custom paywall, preserving Ghost’s access checks and public preview. Merge that pattern into an existing theme instead of stacking a second CTA below protected content.

Pagination

Ghost’s {{pagination}} helper uses the copied partials/pagination.hbs automatically. Call the partial directly instead when passing styles:

{{> "pagination" pagination class="my-12" buttonClass="rounded-xl"}}

Search, Portal, and comments

These services come from Ghost, not the playground. Keep {{ghost_head}} and {{ghost_foot}} in the layout. Ghostcn classes don’t style the separate UI owned by those services.

Validate in a real publication

gscan checks compatibility, not whether every layout and membership path behaves as intended. Also test real posts, editor cards, free/paid access, restricted signup, navigation by keyboard, small screens, and light/dark/automatic modes on your target Ghost version.

Edit this page on GitHub

Was this helpful?

On this page