right-to-bracketSign In

Crimson includes a dedicated Sign in page that works in two modes:

  1. Portal mode (Ghost Portal popup) → controlled by the custom setting use_portal_links

  2. Custom form mode (inline sign-in form) → uses Ghost’s members form attributes

It also includes a safety feature: if a logged-in member visits /signin/, they are redirected to the Account page using the correct mode.

Sign In page in Crimson

How to create the Sign In page in Crimson?

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

circle-check

URL and route setup

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

What this does: It tells Ghost that when someone opens https://example.com/signin/, Ghost should render signin.hbs as the template.

circle-exclamation

How Ghost member sign-in works

Ghost member authentication is passwordless. Members sign in using an email-based flow (magic link) and can also use one-time login codes depending on how the form is configured.

Crimson supports both:

  • Portal sign-in (popup UI handled by Ghost Portal)

  • Theme sign-in form using data-members-form="signin"


Crimson’s signin.hbs checks the custom setting:

  • ON (true) → use Portal screens (popup experience via #/portal/... and data-portal attributes)

  • OFF (false) → use the custom inline sign-in form (data-members-form="signin")

This lets you choose between a “Portal-first” site experience vs a “fully theme-styled” experience.

Sign In Page when Using Portal Links
Sign In Portal Popup
circle-check

Behavior summary

Visitor state
use_portal_links
What they see on /signin/
What happens

Logged in (@member exists)

ON

Nothing (no page UI)

Immediate redirect to {{@site.url}}/account/#/portal/account/

Logged in (@member exists)

OFF

Nothing (no page UI)

Immediate redirect to {{@site.url}}/account/

Logged out

ON

Sign-in heading + Sign in button + Sign up link

Page sets hash to #/portal/signin/ to automatically open Portal sign-in

Logged out

OFF

Sign-in heading + Sign up link + inline email form

Ghost handles form submit and emails a magic link (+ one-time code if enabled)


  • Portal popups for sign in/sign up/account

  • A consistent Portal UI across the whole site

  • Portal customization to apply everywhere (Portal settings + design)

  • A fully theme-designed sign-in experience (inline form)

  • A “no popups” approach for authentication pages

  • Direct control over layout and content on /signin/


Troubleshooting

chevron-right/signin/ shows 404hashtag
  • Confirm the route exists in routes.yaml

  • Upload routes.yaml again and restart/reload theme routes (especially on self-hosted)

  • Ensure the template name matches exactly: template: signin

chevron-rightSign-in emails aren’t being receivedhashtag
  • Member sign-in requires working email delivery

  • On self-hosted sites, ensure mail is configured (mail is one of the core required setup items).


FAQs

chevron-rightWhy redirect logged-in users away from /signin/?hashtag

Because a signed-in member doesn’t need the sign-in screen. Crimson sends them straight to the Account experience (Portal account or theme account).

chevron-rightCan I change where logged-in users are redirected?hashtag

Yes — edit the two <script>window.location = ...</script> lines at the top of signin.hbs (just make sure the destination route exists to avoid loops).

Last updated