Six weeks later: v0.5.0 in the open source repo, a blog that left Ghost, and a founding member's verdict

This is a follow-up to my July post. Six weeks have passed, and quite a lot happened, some of it good, some of it the kind of thing you would rather not write down. I write it down anyway. I build this in public, mistakes included, because I think that earns more trust than any security page can, and because this forum has been part of the road from the start. So think of this as the update, not the pitch.

Yes, you have read the next paragraph before, probably in two other threads. For anyone who has not: PayGlue is a relay between payment providers and Ghost. A purchase through Polar, Lemon Squeezy, PayPal, Paddle, Gumroad, Ko-fi, Creem or Patreon becomes a Ghost member with the right tier, through the Admin API. Cancellations and refunds take the access away again. Your Stripe setup stays untouched. That paragraph has not changed since July. Almost everything behind it has.

Open source: from v0.2.0 to v0.5.0

In July the open source repo matched production for the first time. It also turned out that matching production was not the same as working on your own server: a few things still quietly pointed at my hosted service, and the quickstart broke the install. I know because I followed my own guide and watched it fail. Three releases later that is sorted. You can clone it, run it locally, develop against it, and put it on a server without signing up for anything or talking to me. The first run walks you through setup with a few questions, and the full test suite ships with it. If you want the long version of what open-sourcing a SaaS actually breaks, I wrote that down too, and there is a guide to running it yourself.

Try it, read the code, open an issue, send a pull request: GitHub - PayGlue/PayGlue-OS: PayGlue connects Ghost CMS to your payment provider. · GitHub

The dashboard

The navigation was rebuilt, and the analytics page is where I spend most of my own time now:

  • every webhook event with its status and what it did in Ghost
  • a replay button for the case where you fixed a mapping and want the purchase to run again
  • a health check per provider, so a broken connection shows up before a reader writes to you

The confession: my blog left Ghost

I run a SaaS for Ghost publishers, and my own blog no longer runs on Ghost. It started on a self-hosted Ghost site on a subdomain, which was the obvious choice. It was also the wrong address for Google: everything I wrote was building authority for a subdomain, and search engines treat that as a different site from the one people actually buy from. The blog now lives at PayGlue Blog: Ghost memberships without Stripe, built as static HTML with the rest of the site, and every old address redirects.

The Ghost site did not get switched off. It got a better job: it is the live demo. A real paywall on a real post, a working pricing table with a free tier, a one-time purchase and a subscription, and buy buttons, all wired to a real provider in sandbox mode. You can click through it and watch the member appear, instead of trusting a screenshot. The full reasoning is here.

Since July that blog has grown from 19 to 53 articles. Most of them answer questions from this forum, from Reddit and from support mails:

  • the foreign Stripe account, and why the usual advice is bad
  • moving from Substack to Ghost, including the paying part
  • running two payment providers on one Ghost site
  • what an expired card does to a member’s access

And there is a conversation with Magic Pages about memberships beyond Stripe that some of you will find familiar.

Payments, in practice

The part that took the longest was not adding providers. It was the second month: renewals, cancellations at period end, refunds, cards that expire. Every one of the eight providers announces these differently, and v0.5.0 is the release where they all end up doing the same thing in Ghost. If you only take one sentence from this post, take that one.

If you have 30 seconds, this is the whole product in a video.

And the part that matters most

I asked one of the founding members how it is going. He said I could share his answer, without his name.

The stuck point being upstream is not a complaint about him, by the way. Provider account reviews take time. That is one reason there are eight providers to choose from.

One more thing

While writing this as draft I found @jweatherby thread on Paperwall, pay-per-read for Ghost, built in public and put up here for feedback. A different problem and a different answer, but the same spirit. It is good to see more people doing this: naming a gap and showing what they built before it is polished. The nicest version of this story would be one where nobody needs any of us and Ghost just does what you want out of the box. As we all know, reality does not always follow the plan.

If you made it this far, thank you for your attention. I would rather have an honest conversation than collect feedback, so: ask me anything. Setup, architecture, pricing, the mistakes above, whether it fits your site at all.

And one question back: Who of you here has actually monetised their Ghost blog, and what did the road there look like?

I tried to measure how many Ghost blogs cannot take payments at all, and the number surprised me. Your story would tell me more than the number.

Cheers,
André

#buildinpublic #beyondstripe