envelope-open-textSubscribe

circle-check

The Subscribe page is the dedicated place where visitors can create a Ghost member account on your site — either via Ghost Portal (overlay) or via a custom inline Subscribe form, depending on your theme setting.

Subscribe page in Crimson

How to create the Subscribe page in Crimson?

To create Subscribe page, you do not need to create anything inside Ghost. Just upload the routes.yaml file and Crimson will create the custom Subscribe page.

circle-check

URL and route setup

For Subscribe page, we have following routes.yaml configuration.

This tells Ghost: when someone opens /subscribe/, render subscribe.hbs.

circle-exclamation

Settings that control the page behavior

This is your theme toggle that decides how people sign up:

  • ON → open Ghost Portal subscribe (overlay) using Portal links (#/portal/subscribe/ or data-portal="subscribe"). Portal link behavior is supported directly by Ghost.

  • OFF → show a custom inline subscribe form that Ghost handles via data-members-form="subscribe".

circle-check

B) Ghost Admin setting: “Who should be able to subscribe to your site?”

In Ghost Admin → Settings → Membership → Access, Ghost lets you choose:

  1. Anyone can sign up

  2. Paid-members only

  3. Invite-only

  4. Nobody

Ghost Admin settings to control Membership Access

Ghost exposes this to themes via:

  • @site.members_enabled → true if access is not set to “Nobody”

  • @site.members_invite_only → true if access is set to “Only people I invite”


Behavior summary

The Subscribe template has 4 main branches:

1) If visitor is already logged in (@member)

Redirect to Account page

  • Portal account if use_portal_links is ON → /account/#/portal/account/

  • Normal account if OFF → /account/

This ensures members never see a subscribe page again.


2) If site is invite-only (@site.members_invite_only)

Membership access is set to Invite-only

✅ Show an invite-only message:

Subscribe page when membership access is set to Invite-only

…and provide a Sign in link (which opens Portal Sign in if use_portal_links is ON, via data-portal="signin"). Portal links + data-portal are a standard Ghost feature.

circle-exclamation

3) If memberships are enabled (@site.members_enabled)

This means access is either:

  • Anyone can sign up, or

  • Paid-members only

Membership enabled in Ghost settings

Now use_portal_links decides the experience:

If use_portal_links is ON (Portal mode)

  • The template sets: window.location.hash = '/portal/subscribe/'

  • Then it renders a simple page with a Subscribe button that includes data-portal="subscribe"

Result: the Portal subscribe overlay opens on /subscribe/ using the Portal route pattern.

Subscribe portal popup when use_portal_links is turned on
circle-check

If use_portal_links is OFF (Custom form mode)

The template shows an inline form:

Subscribe page when membership access is enabled

Ghost handles this form automatically:

  • data-members-form="subscribe" sends a subscribe email for new members, and if the email already exists, Ghost sends a signin email instead.

circle-exclamation

For "Paid-members only" - Custom pages show FREE plan too


4) If memberships are disabled (@site.members_enabled is false)

This corresponds to Ghost Admin access = Nobody.

Ghost Admin Setting disabling membership access

Subscribe page will not render a sign-up UI. Instead it redirects:

  • Portal sign-in hash if use_portal_links ON

  • Otherwise /signin/

Last updated