Set up paid newsletters in Ghost with Stripe and Members
Learn how to configure Ghost’s Members and Newsletter system to launch a paid newsletter with Stripe, from tier creation to access control verification.
14 Jul 2026, 10:54 UTC

Why paid newsletters need a built‑in solution
Many publishers start with a free mailing list, then want to offer premium issues or member‑only archives. Adding a third‑party membership plugin often means juggling separate user databases, syncing posts, and handling billing callbacks. Ghost’s Members and Newsletter feature keeps subscribers, posts, and payments inside the same system, so the editorial workflow stays in one place.
How Ghost handles members and paid tiers
Ghost stores members in its own database table. A member can have a free or paid status, and paid status is tied to a Stripe subscription through a webhook that Ghost provides. When a member signs up via the Portal UI, Ghost creates a Stripe customer, attaches the selected price, and updates the member record when the webhook confirms a successful payment. Access control is enforced at the theme layer with Handlebars helpers like {{#if @member}} and {{#has tier="premium"}}.
Worked example: launching a $5/month premium newsletter
- In Ghost Admin, go to Settings → Membership → Stripe and connect your Stripe account (you need API keys with permission to create customers and subscriptions).
- Still under Membership → Tiers, click “Create tier”. Name it “Premium”, set the monthly price to $5, choose the currency, and toggle “Paid”. Save.
- Optional: edit the email template for the welcome message under Settings → Membership → Email templates to mention the premium benefit.
- Create a new post, set its visibility to “Paid members only” and select the Premium tier. Publish.
- Visit the front end as a logged‑out user; the post should not appear in the listing and attempting to open the URL shows a prompt to subscribe.
- Log in with a member who has an active Premium subscription; the post should be visible and readable.
Where to run and checks:
- Admin UI changes are made in Ghost Admin > Settings > Membership. Required permission: Administrator role in Ghost.
- After connecting Stripe, use the Stripe Dashboard → Developers → Webhooks to verify that Ghost’s webhook URL (shown in Admin) receives a “customer.subscription.created” event when you test a subscription with Stripe’s test mode.
- Check the member record: in Admin → Members, find a test member, open their details, and confirm the “Stripe Customer ID” field is populated and the tier shows as Premium.
- Preview the post: use the eye‑icon in the editor, then open the preview in an incognito window to see the public view, and log in via the Portal to see the member view.
Risks: if the webhook secret is mismatched, Stripe events are ignored and members never gain paid status, leading to access‑denial complaints. Always test with Stripe’s test keys before switching to live mode. Email deliverability for the welcome and subscription messages depends on your SMTP or transactional provider; misconfigured DNS (SPF/DKIM/DMARC) can land those emails in spam.
Trade‑off and limitation
The built‑in system keeps everything inside Ghost, which simplifies backups and upgrades, but it does not handle tax calculation or VAT MOSS; you must manage tax reporting yourself or use a Stripe add‑on. The Portal UI is functional but limited to the default styling; deep customisation requires overriding the Portal templates via code injection or building a custom front end that calls the Members API.
Actionable next steps
- Open Ghost Admin → Settings → Membership and confirm the Stripe connection page is present.
- Create a test tier in Stripe test mode, save it, and create a post restricted to that tier.
- Use a test card number (e.g., 4242 4242 4242 4242) in the Portal to complete a subscription and verify the member record updates.
- After confirming the flow, switch to live Stripe keys, update the webhook secret, and monitor the first live subscription.
- Document the tier price, currency, and any tax considerations in your internal publishing checklist.
With the Members and Newsletter feature configured, you can run a paid newsletter without leaving Ghost, keeping your content, subscribers, and revenue in a single, version‑controlled platform.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.