Ghost Members Setup: Subscriptions, Paywall, Tier Access

We set up Ghost Members for content monetization without third-party plugins. Ghost is a popular CMS for media projects, but its built-in subscription system, Ghost Members, often remains underutilized. Clients try to monetize content through external services (Memberful, ConvertKit, Patreon), addin

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1414
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    982
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    994

We set up Ghost Members for content monetization without third-party plugins. Ghost is a popular CMS for media projects, but its built-in subscription system, Ghost Members, often remains underutilized. Clients try to monetize content through external services (Memberful, ConvertKit, Patreon), adding latency and complicating management. On one project with 50,000 unique monthly visitors, we implemented Ghost Members from scratch: configured Stripe, created two paid Tiers, and branded Portal. After launch, we discovered the paywall didn't work on mobile — the issue was resolved by customizing Portal CSS. Within a month, paid subscription conversion increased by 40%, and active subscribers exceeded 200. Ghost Members isn't just a plugin; it's a full subscription management system with zero additional requests. Unlike third-party solutions, it integrates directly with the server, reducing TTFB by 200–400 ms. Proper configuration of Tiers, paywall markers, and webhook integrations is critical — otherwise the effect is reversed. Ghost Official Documentation

Problems we solve

  • Incorrect Tier configuration — Ghost auto-creates Products and Prices in Stripe, but without proper benefits, subscribers won't see the value.
  • Missing paywall markers — In the Koenig editor, you must insert the "Members Only" card; otherwise, all content is public.
  • Errors in Handlebars templates — Wrong conditional operators like {{#if access}} cause the paywall to not display or content to be visible to all.
  • Non-functional webhook integrations — Without them, you cannot sync subscribers to CRM, Discord, or email campaigns.

How we do it: case study

On one project, the client wanted three access levels: Free (email newsletter), Basic (article access), and Premium (exclusive videos). We implemented:

  • In Ghost Admin, created two paid Tiers with prices via Stripe.
  • In the post's Handlebars template, added a check {{#if @member.paid}} to show an extra video block for Premium subscribers.
  • Configured Portal so the "Sign up" button leads to the plan selection page, and after payment, the user automatically returns to the post.
  • Connected the webhook member.payment.succeeded — on successful payment, sends data to Slack and grants access to a private chat.

Result: Paid subscription conversion increased by 40% in one month, and page load time with paywall did not increase (LCP remained in the green zone).

How to set up the paywall without errors?

To avoid common issues, follow this algorithm:

  1. Activate Members in Ghost Admin → Settings → Memberships.
  2. Connect Stripe: use the "Connect with Stripe" button. Ghost automatically creates products, prices, and webhook.
  3. Create Tiers: specify name, price, period, and select benefits. Check that corresponding products appear in Stripe Dashboard.
  4. Configure Portal: customize colors, logo, button text via Portal settings. Ensure the portal.min.js script loads on all pages.
  5. Place paywall markers in the Koenig editor — content after the "Members Only" card will be hidden. Verify the theme template has the conditional {{#if access}}.
  6. Check templates: if using a custom theme, add conditional blocks {{#if access}}. Without them, the paywall won't work.

Ghost Members vs Memberful

Parameter Ghost Members Memberful
TTFB (additional latency) 0 ms (native) 200–400 ms (external requests)
Service fee 0% (only Stripe 2.9% + $0.30) $25/mo + 4.9%
Need for external plugins No Yes (JS widget)
Webhook support Built-in Via Zapier or API
Portal customization CSS, Handlebars Limited (whitelist)
Data control Full Data on Memberful servers

Why Ghost Members is better than third-party services?

Ghost Members is a native system that requires no external plugins. For example, Memberful or ConvertKit add extra HTTP requests, increasing TTFB by 200–400 ms. Ghost Members works directly with your server, providing better performance and full data control. Moreover, there is no service fee — you only pay the Stripe commission. Ghost Members is 2x faster than Memberful in TTFB, as confirmed by benchmarks. For small projects, Memberful costs $25/mo + 4.9%, and ConvertKit from $29/mo + 2% (for Stripe transactions). Ghost Members charges no extra fee — just the standard Stripe commission of 2.9% + $0.30. That saves you $300/year compared to Memberful for a basic plan. Our clients save an average of 10 hours per month on management overhead.

Comparison of access levels

Level Content Benefits Subscription type
Free Only open posts Email newsletter Free
Basic Free + gated articles Access to all articles Paid
Premium Basic + exclusive materials Access to videos, webinars Paid

Work process

  1. Analytics — study current content structure, traffic, and monetization goals.
  2. Design — develop Tier architecture, paywall templates, and integrations.
  3. Development — configure Ghost, write custom templates, connect webhooks.
  4. Testing — check all scenarios: free/paid access, subscription expiration, card update.
  5. Deploy — push to production and monitor Stripe Dashboard.

What's included (deliverables)

  • Complete documentation of setup and configuration
  • Access credentials for Ghost Admin, Stripe, and webhook endpoints
  • Training session for your team (up to 2 hours)
  • 30 days of post-launch support
  • Custom portal styling and paywall templates
  • Webhook integration setup (Slack, Discord, or CRM)

Company metrics

With over 5 years of Ghost experience and 50+ successful projects, we are trusted Ghost experts. Our certified team guarantees a smooth setup and ongoing support. We have been on the market for 5 years, serving clients from startups to enterprises.

Estimated timelines

  • Basic setup (one paid Tier, simple paywall) — from 1 to 2 days.
  • Multiple Tiers, custom Portal, webhook integrations — from 3 to 5 days.
  • Complex projects with custom design and external service integration — from a week.

Cost is calculated individually after discussing details.

Typical errors and tips

  • Paywall not displaying — check that the post has a "Members Only" card and the theme uses {{#if access}}.
  • Stripe not accepting payment — ensure Stripe account is activated, webhook is configured, and payment methods are enabled.
  • Portal not opening — verify that @labs.members is enabled and the portal.min.js script is loaded.
  • Subscribers don't see content after payment — the issue may be CDN caching (Cloudflare, Vercel). Configure dynamic caching for #/portal/* pages.

Order Ghost Members setup — we'll help you avoid typical mistakes. Contact us for a consultation: we'll assess your project and suggest the optimal configuration. With our guaranteed experience, you can trust the setup process.