Membership CTA
A full-bleed member signup band rendered above the site footer on every page. Editorial copy lives on a Ghost page; the pricing column adapts automatically to whether paid plans are connected; delete the page to hide the band site-wide.
The Membership CTA is a full-bleed dark section that sits above the site footer on every page — homepage, posts, archives, tag pages, the bookmarks page. It carries editorial copy on the left and an adaptive price + signup form on the right. Designed to be the recurring conversion moment across the site, editable without touching template code.

How the band is composed
The band has two columns:
- Left column — eyebrow stamp, optional issue line, headline (with one accent phrase wrapped in
<mark>), and body paragraphs. All sourced from a Ghost page with slugmembership-cta. - Right column — an adaptive price block plus the signup form. The price block switches automatically between a Paid-plan band (when paid plans are connected) and a Free-plan band (when they aren't). Both variants share the same left-column editorial copy and the same signup form.
You only ever author the left column. The right column fills itself from your Ghost membership setup. If you don't author the page, the band doesn't render at all — see Hiding the band below.
Editorial copy lives on a Ghost page
The four left-column slots are mapped one-to-one to fields on a Ghost page (not a post) with the slug membership-cta.
| Page field | Slot in the CTA | Notes |
|---|---|---|
custom_excerpt | Eyebrow stamp (top-left) | e.g. Membership · Meridian |
meta_description | Issue line (top-right of left column) | Optional — e.g. Independent since 2003 |
meta_title | Trial badge override (right column eyebrow) | Optional. When set, replaces the auto-derived trial badge. See Trial wording inside the Paid-plan tab below. |
html (body) | Headline + body | One <h2> followed by one or more <p> |
Membership CTA Page - Editor

Membership CTA Page - Meta data

Create the page
In Ghost Admin, go to Pages → New page. Title it whatever you like — the title isn't rendered.
Set the slug to membership-cta
In Page settings, set the Page URL to membership-cta. The page does not need to be linked from your nav; it's a content source, not a destination.
Fill the meta fields
In Page settings:
- Excerpt (which becomes
custom_excerpt) → your eyebrow. - Meta description → your optional issue line.
- Meta title → your trial badge override. Leave it blank to let the band auto-derive the badge from your tier's trial length.
Author the body in the editor
Type the headline as a normal Heading 2 in the Ghost editor, then write the body paragraphs underneath. Use the highlight action on the few words you want as the accent phrase — see the next section for the shortcut.
Publish
Click Publish. The band will pick up your copy on the next page render across the site.
Highlighting a phrase in the headline
The accent phrase — the few words you want italicized and tinted with your accent colour inside the otherwise plain headline — is created with Ghost's native highlight action, which emits a <mark> tag.

How to highlight in the Ghost editor
Type the headline as a normal Heading 2.
Select the words you want as the accent phrase.
Apply highlight:
| Platform | Shortcut |
|---|---|
| macOS | ⌘ + Option + H |
| Windows / Linux | Ctrl + Alt + H |

The selection gains Ghost's default yellow highlight in the editor; Meridian's CSS swaps that for italic + accent-colour text on the rendered page.
You can highlight multiple ranges in the same headline if needed, though one accent phrase usually reads better than two.
Highlight is also in the toolbar
The same action lives in the editor's floating text-format toolbar — select your phrase and click the highlighter icon. The keyboard shortcut is just faster once you know it.
Which variant your readers see
The right column has two automatic variants. Meridian picks one for you based on whether paid plans are purchasable on your site (memberships enabled and Stripe connected and at least one active public paid tier exists). You don't toggle this — it follows your Ghost settings.
When it appears
The Paid-plan band renders when paid plans are purchasable — memberships enabled, Stripe connected, and at least one active public paid tier with a monthly price.

What it shows
- A trial badge at the top of the column (see Trial wording below).
- The cheapest active public paid tier's monthly price as the headline number. If you have multiple paid tiers, the lowest monthly price wins.
- Below it, the yearly equivalent (
Billed $X yearly) and a "save N%" line computed client-side frommonthly_price × 12versusyearly_price. If the yearly price doesn't actually save money, the line self-removes — no awkward "save 0%". - The signup form (magic-link email + submit) and a fine-print line including a Compare plans link to Ghost Portal.
You don't need to touch any theme setting for pricing. Open Settings → Membership → Tiers in Ghost Admin and the band reflects whatever you set up there.
Trial wording
The trial badge text follows this precedence:
- If the
membership-ctapage's Meta title field is set, the badge shows that text verbatim — your custom phrase, exactly as typed. - Otherwise, if your cheapest paid tier has trial days configured, the badge shows the localised string with the day count substituted:
Start your {days}-day trial. The{days}placeholder is filled at render time from the tier'strial_daysvalue, so the wording updates the moment you change the tier in Ghost. The locale key is"Start your {days}-day trial"inlocales/en.json— translators substitute the placeholder, not the number. - Otherwise, the badge falls back to a neutral
Membershipeyebrow.
The Meta-title override is useful when your trial wording differs from a simple day count — for example, "Free for the first month" or a campaign-specific phrase. Leave it blank to let the badge stay in sync with your tier automatically.
When it appears
The Free-plan band renders whenever paid plans aren't purchasable on your site — Stripe isn't connected yet, you haven't created a public paid tier, or your paid tier has no monthly price. It also covers the in-between state during site setup when memberships are on but Stripe configuration is still pending.

What it shows
- A
Free membershipeyebrow at the top of the column. - A large
Free / foreverprice block, mirroring the layout of the paid variant so the right column never feels collapsed. - The same signup form and the
start free with select storiesfine-print link. - The left column carries on exactly as authored — your headline, body, eyebrow, and accent phrase all render unchanged.
This replaces a pre-1.6.0 quirk
Before v1.6.0, the band would show the paid price column even before Stripe was configured, leaving a "$0 / month" or stale-looking price stamp at launch. The Free-plan band is the explicit, designed state for that period — and for sites that intentionally don't sell paid memberships.
The variant is decided server-side per render — there's no flash between states, and the signup form works the same way in both.
Hiding the band
The band hides itself entirely under any of these conditions:
- The
membership-ctapage is missing or unpublished — this is the admin-controlled opt-out. Delete the page (or set it back to draft) and the band disappears from every page on the site immediately. No theme setting required. - Memberships disabled — if you've turned off memberships site-wide (Ghost Admin → Settings → Membership → "Subscription access" set to Nobody), the band doesn't render.
- Viewer is a paid member — paying members never see the band. They've already converted.
In every case the footer flows together as if the band had never been authored.
Free members still see it
Free members and logged-out visitors both see the Membership CTA. Only paying members get the band suppressed, individually.
Deleting is the opt-out
There's no theme toggle for the Membership CTA. The Ghost page IS the toggle — delete or unpublish membership-cta to hide the band, re-publish to bring it back.
When to use this vs. the post-page CTA
Two member CTAs ship in Meridian:
- Membership CTA (this page) — full-bleed band above the footer on every page. Heavy, editorial, conversion-focused.
- Post-page member CTA — a signup invitation at the end of stories a logged-out reader can open in full. On members-only stories the paywall shows the prompt instead, so the two never stack. Copy is set via theme settings, not a Ghost page. See Site wide settings → Member CTA headline / body.
They're complementary. The footer band is the editorial-tone pitch readers see on every page they land on; the post-page CTA is the reader-just-finished-an-article moment.
Reader controls
How Meridian's reader controls work — a masthead popover with text size and Light/Dark/System appearance, remembered per reader and synced across tabs.
Preferred source on Google
Add Meridian's end-of-article Google preferred source card — copy lives on a Ghost page with slug preferred-source; publish to show it, draft to hide.