The last two posts showed a paywall cut and a handful of buttons. This one is the bigger piece: an actual pricing table, the kind you'd put on a membership page, with multiple tiers side by side.

Here's the thing about pricing tables and Ghost. Ghost itself has tiers, and Ghost's native Stripe integration covers monthly and yearly subscriptions just fine. More recently Ghost also added donations, which is a nice addition, but a donation in Ghost is really just a generated link, not a tier, not something tied to membership logic. It doesn't grant access to anything, it's a one-off payment that happens to live next to your content.

What you can't do with native Ghost is mix a free tier, a one-time payment tier, and a subscription tier into one coherent table that all does the same thing underneath: makes someone a member.

So that's what we built below.

If the table feels a bit cramped

Ghost is intentionally limited on the design side. Content always renders inside the same reader block, regardless of which theme you're running. In practice that means a pricing table can end up looking a little tight depending on your theme. That's exactly what the button below is for, it opens the same table in a larger overlay, no theme changes required. We love the K.I.S.S. principle.

What's actually happening when someone clicks

The free tier looks the most boring and is in some ways the most interesting. Click it, and there's no payment provider involved at all. The request goes straight through our API, and the person lands as a free member in Ghost immediately. No checkout screen, no redirect, nothing to confirm. It's the same outcome as if you'd manually added them in the Ghost admin, just automated "mostly".

Of course you need to enter your Name and your email for obvious reasons.

The one-time tier is a single payment that, once confirmed by the provider, grants membership the same way. No recurring billing behind it, no subscription to cancel later. Someone pays once, they're in.

The two subscription tiers, monthly and yearly, behave closer to what Ghost's native Stripe integration already does. Recurring charge, membership stays active as long as payment goes through, access gets revoked automatically if it doesn't. The difference is just which payment provider is doing the charging behind the scenes.

Why this matters more than it sounds

From the reader's side, none of this looks unusual. They see a pricing table, they pick a tier, they end up with access. What's different is everything happening underneath: the free path skips payment entirely, the one-time path doesn't lock anyone into anything recurring, and the subscription paths aren't tied to Stripe specifically. Each tier can sit on whatever payment provider actually fits, while all of them land in the same place, as a Ghost membership tier behaving the way you'd expect.

Ghost's own tiers and Stripe handle a lot of this already, and if monthly or yearly Stripe subscriptions cover what you need, there's no reason to reach for anything more. This is for the cases sitting outside that: a genuinely free tier that doesn't need payment plumbing at all, or a one-time purchase that isn't really a subscription pretending to be one.

One more thing we're planning once this blog actually launches for real: a pay-what-you-want tier alongside the fixed ones. Same idea as the one-time tier above, except the reader picks the amount instead of us fixing it. We'll write about it properly once it's live here ourselves.

Still in private beta, still figuring out the rough edges. If something about how this table behaves looks off, tell us.


Pic by Nathan Dumlao on Unsplash

You’ve successfully subscribed to PayGlue
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.