arrow-right-to-bracketSign Up

The Sign up 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 sign-up form, depending on your theme setting.

Sign Up page in Crimson

How to create the Sign Up page in Crimson?

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

circle-check

URL and route setup

For Sign Up page, we have following routes.yaml configuration.

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

circle-exclamation

Settings that control the page behavior

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

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

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

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 Sign up 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 sign-up page again.


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

Membership access is set to Invite-only

✅ Show an invite-only message:

Sign Up 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/signup/'

  • Then it renders a simple page with a Sign up button that includes data-portal="signup"

Result: the Portal sign-up overlay opens on /signup/ using the Portal route pattern Ghost documents.

Sign Up 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:

Sign Up page when membership access is enabled

Ghost handles this form automatically:

  • data-members-form="signup" sends a signup 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

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

  • Portal sign-in hash if use_portal_links ON

  • Otherwise /signin/

Last updated