Ghost Membership System — Tiers, Pricing and Stripe Integration
In this tutorial, you'll learn how to set up the Ghost membership system — creating membership tiers with different pricing, integrating Stripe for payment processing, configuring subscription plans, and managing the member portal settings.
What You'll Learn
- How Ghost's membership system works
- Creating membership tiers: Free, Monthly, Yearly
- Setting up Stripe integration for payment processing
- Configuring pricing and subscription amounts
- The Ghost Portal: member signup, login, and account management
- Testing payments in Stripe test mode
- Managing members and subscriptions
- Portal customization: colors, logos, and messaging
- Understanding Ghost's take on membership revenue
Why It Matters
The membership system is Ghost's standout feature. Built into the core, it transforms a simple blog into a revenue-generating publication. WordPress requires multiple plugins (WooCommerce, MemberPress, Paid Memberships Pro) to achieve what Ghost does out of the box. For creators who want to monetize their content without the complexity of managing plugins, Ghost's membership system is the most compelling reason to choose the platform.
Real-World Use
A technology news site launches a paid membership program. They set up three tiers: Free (weekly newsletter, limited articles), Monthly ($9/month, unlimited articles, ad-free), and Yearly ($90/year, everything plus exclusive analysis). They integrate Stripe, configure the Portal with their brand colors, and start accepting payments within an hour. Members sign up through the Portal, manage their subscriptions, and upgrade/downgrade without contacting support.
Learning Path
flowchart LR A["Theme Customization"] --> B["Membership System
You are here"]:::current B --> C["Content Gating"] C --> D["Newsletter Setup"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px
How Ghost Memberships Work
Ghost's membership system is built into the core. It operates on a simple model:
- Tiers: Groups that define access levels (Free, Monthly, Yearly)
- Portal: The front-end interface where members sign up, log in, and manage their accounts
- Stripe: The payment processor that handles subscriptions and billing
- Member access: Per-post visibility settings that enforce which tier can view which content
The Flow
flowchart LR
A["Reader visits site"] --> B{"Sees gated content?"}
B -->|"Yes"| C["Signup prompt appears"]
C --> D{"Choose tier?"}
D -->|"Free"| E["Free member"]
D -->|"Paid"| F["Stripe payment"]
F --> G["Paid member"]
E --> H["Access free content"]
G --> I["Access paid content"]
style F fill:#4ade80,color:#0f172a
style I fill:#38bdf8,color:#0f172a
Setting Up Membership Tiers
Default Tiers
Ghost creates one default tier during installation. You can modify it and add more.
Creating Tiers
Go to Settings > Members > Tiers.
| Field | Description |
|---|---|
| Name | Display name (e.g., "Monthly Premium") |
| Description | Shown in the Portal |
| Price | Subscription amount (set in your currency) |
| Billing period | Monthly or Yearly |
| Currency | The currency for pricing |
| Benefits | List of perks shown in the Portal |
| Welcome page | Optional redirect after signup |
Example Tier Structure
Free Tier:
Price: $0
Access: Public posts, weekly newsletter
Benefits:
- Weekly email newsletter
- Limited free articles
- Community access
Monthly Tier:
Price: $9/month
Access: All content including paid posts
Benefits:
- Unlimited access to all articles
- Ad-free reading experience
- Weekly newsletter
- Member-only community
- Exclusive analysis
Yearly Tier:
Price: $90/year (2 months free)
Access: Same as monthly
Benefits:
- Same as monthly
- 2 months free vs monthly billing
- Annual subscriber badge
Best Practices for Tiers
- Keep it simple: 2-3 tiers maximum. Too many options overwhelm readers.
- Price annually: Offer a yearly discount (typically 15-20% off equivalent monthly). This improves revenue stability.
- Differentiate clearly: Each tier should have clear, distinct benefits. If the difference is unclear, readers choose the cheapest.
- Highlight the best value: Mark your recommended tier with a "Most Popular" or "Best Value" badge.
Stripe Integration
Stripe handles all payment processing. You need a Stripe account (free to create).
Step 1: Create a Stripe Account
Go to stripe.com and create an account. You will be in test mode initially.
Step 2: Get API Keys
In your Stripe Dashboard:
- Go to
Developers > API keys. - Copy the Publishable key (starts with
pk_test_orpk_live_). - Copy the Secret key (starts with
sk_test_orsk_live_).
Step 3: Connect Ghost to Stripe
In Ghost admin:
- Go to
Settings > Members > Stripe. - Click "Connect to Stripe."
- Enter your Stripe publishable key and secret key.
- Alternatively, use the "Connect with Stripe" button for OAuth (simpler).
Step 4: Configure Webhooks
Ghost automatically sets up webhooks when you connect Stripe. These webhooks listen for:
checkout.session.completed— A member completed paymentcustomer.subscription.updated— A subscription changedcustomer.subscription.deleted— A subscription was canceledinvoice.payment_succeeded— A recurring payment succeededinvoice.payment_failed— A payment failed
If you ever need to set up webhooks manually, the URL is:
https://yoursite.com/members/webhooks/stripe/
Step 5: Test in Stripe Test Mode
- In Stripe Dashboard, ensure you are in "Test mode" (toggle at the top).
- Use Stripe test card numbers:
- Success:
4242 4242 4242 4242 - Decline:
4000 0000 0000 0002 - Insufficient funds:
4000 0000 0000 9995
- Success:
- Create a test subscription in Ghost.
- Verify the member appears in Ghost admin.
Step 6: Go Live
When ready for production:
- In Stripe Dashboard, toggle from "Test mode" to "Live mode."
- Copy the live API keys.
- Update the keys in Ghost settings.
- Test with a real card.
Configuring the Portal
The Portal is the member-facing interface for signup, login, and account management. It appears as a modal on your site.
Portal Settings
In Settings > Members > Portal:
Portal Settings:
Signup: Enabled
Signup redirect: (optional URL after signup)
Login: Enabled
Show tiers: All or select tiers
Brand color: #2563EB (matches your site accent)
Icon: Optional Portal icon
Logo: Optional Portal logo image
Support email: support@yoursite.com
Portal Features
- Signup form: Email + name. Stripe payment if paid tier selected.
- Login: Email + magic link (no password needed).
- Account management: View tier, update profile, cancel/subscribe.
- Payment history: View invoices and payment history.
Portal Magic Link Authentication
Ghost uses magic link authentication for members. When a member logs in:
- They enter their email address.
- Ghost sends a magic link to that email.
- Clicking the link logs them in (no password).
This means you need email configured for members to log in. If email is not configured, members cannot receive magic links.
Portal Customization
<!-- The Portal is triggered by this button -->
<button class="portal-button" data-portal="signup">Subscribe</button>
<!-- Custom signup button for specific tier -->
<button data-portal="signup/monthly">Join Monthly</button>
<!-- Portal account page -->
<a data-portal="account">My Account</a>
<!-- Portal signout -->
<a data-portal="signout">Sign out</a>
Managing Members and Subscriptions
In the admin sidebar, click "Members" to see all members.
Member List
The member list shows:
- Name and email
- Tier (Free, Monthly, Yearly, Comped, Canceled)
- Status (Active, Expired, Canceled)
- Join date
- Last seen date
Member Actions
Click a member to:
- View full profile
- See subscription history
- View email engagement
- Add labels for segmentation
- Add internal notes
- Cancel or change subscription
- Comp the member (give free paid access)
- Delete the member
Comping Members
Comped members get paid-tier access without paying. Use this for:
- Founding members (legacy access)
- Beta testers
- Gift subscriptions
- Internal team accounts
To comp a member: click their profile, then "Add complimentary subscription."
Ghost's Revenue Model
Ghost does not take a cut of your membership revenue. Stripe charges standard processing fees (2.9% + $0.30 per Transaction). Ghost(Pro) hosting includes the membership features in your hosting plan.
Common Mistakes
Not testing in Stripe test mode first: Configuring Stripe in live mode and testing with real cards causes unnecessary charges and refunds. Always test with Stripe test mode and test card numbers first.
Forgetting to configure email: Ghost's magic link authentication requires email delivery. If you have not configured email transport, members cannot log in. Configure Mailgun or SMTP before launching memberships.
Creating too many tiers: Offering 5+ tiers confuses readers. They spend too long deciding and may choose nothing. 2-3 tiers (Free, Monthly, Yearly) is the proven sweet spot.
Not setting up webhooks correctly: If Stripe webhooks are not configured, Ghost does not receive payment notifications. Members pay but do not get access. Check webhooks in Stripe Dashboard > Developers > Webhooks.
Gating all content behind paid tiers: Readers need to see some value before paying. If every article is behind a paywall, new visitors leave immediately. Keep 30-50% of content free to attract readers.
Practice Questions
What is the role of Stripe in Ghost's membership system? Answer: Stripe handles all payment processing — subscription creation, recurring billing, payment failures, and invoice generation. Ghost communicates with Stripe via API keys and webhooks to manage the payment lifecycle.
How does the Ghost Portal authenticate members? Answer: The Portal uses magic link authentication. Members enter their email, Ghost sends a unique login link, and clicking the link authenticates them. No password is required. This means email configuration is essential for memberships to work.
What is a comped member in Ghost? Answer: A comped (complimentary) member gets paid-tier access without paying. This is used for founding members, gift subscriptions, beta testers, and internal accounts. The site owner absorbs the cost instead of charging the member.
Challenge: Set up a complete membership system on a local Ghost installation. Create three tiers, configure Stripe in test mode, create a test subscription using Stripe test card 4242 4242 4242 4242, verify the member appears in Ghost admin, test the Portal signup flow, and create a test paid post that only paid members can access.
FAQ
Mini Project
Your task: Set up a complete membership site from scratch.
- Configure Stripe in test mode and connect to Ghost.
- Create three tiers: Free, Monthly ($9), Yearly ($90).
- Customize the Portal with your brand color and logo.
- Create a test post with "Paid members only" access.
- Test the signup flow using Stripe test card 4242 4242 4242 4242.
- Verify the member appears in your member list with the correct tier.
- Test that paid content is visible to the test member but not to a logged-out Visitor.
- Document the entire setup Process as a checklist.
This exercise gives you a working membership site with real payment processing.
What's Next
Now that memberships are set up, learn how to gate content behind them:
Continue to Lesson 21: Content Gating — Access levels, portal, and paid membership content strategies.
Related lessons:
- Newsletter Setup — Send newsletters to members
- Subscriber Management — Manage your audience
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro