> For the complete documentation index, see [llms.txt](https://docs.themeupstudio.com/crimson/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.themeupstudio.com/crimson/custom-pages/account.md).

# Account

The **Account page** is where logged-in members can view their membership information and manage their subscription (if they are a paid member). In Crimson, this page is designed to be “smart” — it shows different content depending on whether the visitor is:

* **Not logged in**
* **Logged in as a free member**
* **Logged in as a paid member**

This document explains how it works, how to set it up, and what to expect.

<figure><img src="/files/3toMuRiITVZRlt6M1yB9" alt=""><figcaption><p>Account page in Crimson</p></figcaption></figure>

### What the Account page is

In Ghost, “membership” is the system that lets readers create an account, sign in, and (optionally) pay for a subscription.

In Crimson, the **Account page** is the place where members can:

* See their **member details** (name/email and access level)
* If paid: see their **active subscription plan details** and manage billing/cancellation
* If free: see an **upgrade section** with membership pricing so they can upgrade

***

### How the Account page is set up in Crimson

Crimson includes an Account template and a route for it.

#### The URL for the Account page

The theme route maps the Account page to: `/account/`

This is not something you create as a regular Ghost “Page” in the editor.\
It’s a **theme template route**, meaning the theme provides the layout automatically.

#### What you need to do

To make the Account page function correctly, you mainly need to ensure:

1. **Membership is enabled** in Ghost
2. (If you offer paid plans) **Stripe is connected** and **tiers are set up**
3. Your site’s navigation (optional) links to so members can find it `/account/`
4. You have uploaded `routes.yaml` file.

{% hint style="success" %}
Read more on how to [Upload routes.yaml file](/crimson/getting-started/upload-routes.yaml-file.md)
{% endhint %}

***

### What members see on the Account page

#### A) Visitor is **not logged in**

If someone visits `/account/` while not logged in, Crimson will not show a blank account page. Instead, it redirects them to **Sign in**.

What happens next depends on your theme setting `use_portal_links` (explained below).

#### B) Visitor is logged in as a **Free member**

Free members will see:

1. **My Account** heading
2. **Member details**
   * Name (if available)
   * Email
   * Access level (shown as Free)
3. An **Upgrade your plan** section
   * This section displays membership pricing so the free member can upgrade to a paid plan.

<figure><img src="/files/dRqlgHIEF15qLqFahPCy" alt=""><figcaption><p>Account Page for FREE members</p></figcaption></figure>

In other words, the Account page becomes a gentle “control panel + upgrade screen” for free members.

#### C) Visitor is logged in as a **Paid member**

Paid members will see:

1. **My Account** heading
2. **Member details**
3. **Plan / subscription details**, such as:
   * Plan type / tier name
   * Price and billing interval (monthly/yearly)
   * Subscription status (active, cancelled, etc.)
   * Start date
   * Renewal date (or expiry date if cancelling at period end)
   * Masked card info (last 4 digits)

They also typically get controls for:

* **Edit Billing Info**
* **Cancel subscription** (or continue subscription if previously cancelled)

This turns the Account page into a true membership management area.

<figure><img src="/files/esJx3JDBuRM3ID7G3V5z" alt=""><figcaption><p>Account Page for Paid Members</p></figcaption></figure>

***

### Member details section

The “Member details” area is meant to reassure users that they are logged in and show their access level clearly.

<figure><img src="/files/szk02wAXJ1poXIIj847A" alt=""><figcaption><p>Member Details Section</p></figcaption></figure>

#### Typical fields shown

* **Name** (if the member has one)
* **Email** (the email used for membership login)
* **Access**
  * Free member → shown as “Free plan”
  * Paid member → shown as “Premium plan” (or similar wording)

***

### Subscription/Plan details section

If a member has an active paid subscription, the Account page shows plan information so they can understand what they’re paying for and manage it.

<figure><img src="/files/NEtFTWYZ6abP9Z2CvCKs" alt=""><figcaption><p>Plan details section</p></figcaption></figure>

#### Common items shown and what they mean

* **Plan Type**: the tier or plan name they subscribed to
* **Price**: amount + billing interval (month/year)
* **Status**: usually “active”, but may show other states depending on Ghost/Stripe
* **Started on**: when the subscription began
* **Renews on / Expires on**
  * If the member has scheduled cancellation, it may show an expiry date instead of renewal
* **Card used**: shows only last 4 digits (safe to display)

#### Billing management buttons

* **Edit Billing Info**
  * Sends the member into Ghost’s billing management flow (typically managed by Ghost + Stripe)
* **Cancel subscription**
  * Lets the member cancel according to Ghost’s cancellation rules (often “cancel at end of billing period”)

***

### Upgrade experience

If the logged-in member is free, Crimson shows pricing cards directly on the Account page under an “Upgrade your plan” section.

<figure><img src="/files/RImVvikt1xicQn3EFCxP" alt=""><figcaption><p>Upgrade section for FREE members</p></figcaption></figure>

#### What this does

* It saves the member from hunting for your Membership page again.
* It creates a clear “you’re logged in, here are your upgrade options” flow.

#### Where pricing comes from

Pricing is based on your **Ghost membership tiers**, configured in:

* **Ghost Admin → Settings → Membership → Tiers**

If you haven’t created tiers (or haven’t connected Stripe for paid tiers), the upgrade section won’t work as expected.

***

### Behavior based on `use_portal_links`

Crimson has a theme setting: `use_portal_links`&#x20;

{% hint style="success" %}
More details in [Site-wide Settings](/crimson/custom-settings/site-wide-settings.md)
{% endhint %}

This affects what happens when someone needs to sign in.

#### If `use_portal_links` is **enabled**

* Visiting `/account/` while logged out will open/trigger **Ghost Portal sign-in flow** (Portal is Ghost’s built-in membership modal UI).

#### If `use_portal_links` is **disabled**

* Visiting `/account/` while logged out will redirect the user to the site’s **Sign in page** at `/signin/`

***

### Troubleshooting

<details>

<summary><code>/account/</code> shows a 404 error</summary>

**Most common causes**

* Your active theme routes don’t include the `/account/` route.
* You uploaded the theme but didn’t apply the correct routes configuration.

**Fix**

1. Ensure you are using Crimson as the active theme.
2. Confirm your routes include `/account`/.
3. Save/reload routes in Ghost Admin if you manage routes there.

</details>

<details>

<summary>Account page keeps redirecting me to sign in (even after I signed in)</summary>

**Most common causes**

* You are not actually logged in (session expired, cookie blocked, etc.).
* Browser privacy settings or extensions are blocking cookies/scripts needed for membership.

**Fix**

1. Try in an incognito/private window (with extensions disabled)
2. Ensure cookies are allowed for your site
3. Sign in again from `/signin/` (or Portal) and then revisit `/account/`

</details>

<details>

<summary>Paid member can’t see their plan details</summary>

**Most common causes**

* The member is logged in, but does not have an active paid subscription.
* Stripe connection or tier setup is incomplete.

**Fix**

1. In Ghost Admin, open the member record and confirm they are marked as a paid member with an active subscription
2. Confirm Stripe is connected (Settings → Membership)
3. Confirm paid tiers exist and are configured correctly

</details>

<details>

<summary>“Edit Billing Info” / “Cancel subscription” doesn’t work</summary>

**Most common causes**

* Stripe is not connected (required for paid subscription management).
* Portal scripts are being blocked (if your flow uses Portal).

**Fix**

1. Verify Stripe connection in Ghost Admin
2. Disable ad/script blockers and test again
3. Test in a different browser

</details>

<details>

<summary>Free members don’t see upgrade pricing</summary>

**Most common causes**

* No tiers exist in Ghost (or only free tier exists).
* Membership is disabled in Ghost.

**Fix**

1. Enable Membership in Ghost Admin
2. Create at least one paid tier (and connect Stripe if needed)

</details>

***

### Quick checklist

* Membership enabled in Ghost
* (If paid) Stripe connected + at least one paid tier created
* `/account/` route available on the site
* set `use_portal_links` according to your preferred sign-in experience
* Member is actually logged in (for account details to show)
