Hi! I’ve been working on a pay-per-read product called Paperwall (paperwall.io), and the Ghost integration is now live!
The basic idea is pretty simple: instead of asking every reader to subscribe before they can read any premium articles, Paperwall lets them unlock individual posts. Readers create one Paperwall account, add a payment method once, and can then unlock articles across any other registered publications. Charges are accumulated and billed monthly, so the payment experience stays lightweight.
For publishers, the goal is to make this easy to try without having to rebuild the site or change the membership model. The Ghost integration works through Code Injection and adds a Paperwall unlock option alongside the existing Ghost paywall. After a reader unlocks a post, Paperwall uses the Ghost Admin API to fetch and render the article for that reader.
A few things I cover in the write-up:
Why the wallet model is different from older “pay $X for this post” attempts
How the Ghost integration fits into the existing upgrade/paywall experience
Why Paperwall uses standardized “Tickets” for pricing
How sandbox mode works for testing before going live
What readers see when they unlock an article
I also talk a bit about why an Admin API key is necessary. The post explains how it’s used, what it’s limited to, and the precautions around storage and access.
Full write-up here: Pay-per-read on Ghost(I was cheeky and used the article to demo how it works)
If you run a Ghost publication and want to experiment with paid access that sits somewhere between “free” and “subscribe,” I’d love feedback. I’m especially interested in whether the integration feels like it belongs in the Ghost paywall flow, or whether there are parts of the setup that still feel too heavy.
First of all: respect for shipping this. Pay-per-read on Ghost has been tried a few times and most attempts quietly died, so putting a new take out there and asking for feedback in public takes some nerve. Good to see.
I recognise the idea from Acta, which I ran on one of my blogs a while back. Back then you had to edit the .hbs template and add a route in the theme, and every theme update was a small gamble. A snippet in the header that swaps the truncated post after the unlock is a much lower bar. Cool that it works this way now.
Two things from a publisher’s seat, meant as notes from one builder to another, not as a verdict:
I tried your demo. “Read this article for free” sends me to a Paperwall sign-in first, Google or email code, before I see a word. I understand why the wallet needs that. But it means every reader who unlocks something on my blog becomes your user, not my member. They never show up in Ghost, I cannot email them, and if Paperwall changes its terms one day the relationship goes with it.
That is the part I would think hardest about. One idea: let an unlock also create a free member in the publisher’s Ghost, with the reader’s consent. You already hold the Admin key, so the reader would land on both sides, and publishers would have a much easier time saying yes.
The payout goes through Stripe. A good part of the Ghost crowd runs without Stripe, either because it is not available in their country or because they sell through a merchant of record for tax reasons. Is a second payout route on your list?
I work on the neighbouring problem with Product, memberships through the payment provider a publisher already has, for it.
Thanks for checking it out, I really appreciate the insights! I made some quick updates to that unlock page which hopefully makes the initial experience more welcoming and informative.
The Acta comparison makes sense, though I think the bigger issue with that model is not only the theme fragility, but the economics of selling articles one transaction at a time. That tends to push prices up, adds friction per article, and makes it harder to scale.
Paperwall is going for a slightly different take: a shared network of publications where readers have one account, prices can stay low, and access works across registered publications with straightforward integration and payouts.
On the member/email point, I get it - that’s a potential future lead. But I’m cautious about making every unlock create a Ghost member, even with consent. Part of the trust model for readers is that they can pay to read individual articles without quietly being added to every publication they sample. The publisher is still capturing revenue they would likely have missed, and there are better moments later (after the article, on repeat reads, through Paperwall recommendations), to point a reader back toward subscribing.
Paperwall should help publishers monetize readers who would’ve otherwise bounced, while still preserving reader trust and creating a path back to the publisher’s own subscription funnel over time.
On payouts, Stripe is just the first route because it was the fastest thing to ship. I agree a second payout path matters if this is going to work for more of the Ghost ecosystem, and your direction makes a lot of sense.
Really appreciate you trying it and writing this up. Sounds like Product is working near the same problem from another angle, so I’d be interested to compare notes.
Fair points, and the reader trust argument is better than mine. I was looking at it purely from the publisher side. You are right that quietly adding someone to a list because they paid for one article breaks the deal they thought they were making, and the later moments you describe are the more honest place for that.
The shared account across publications is the part I underrated. It changes the unit economics against one-off article sales, and it gets around the thing that usually kills micropayments, which is that nobody enters card details for 40 cents.
Shipping Stripe first makes sense. The thing that caught me out was that the constraint turned out to be geography rather than provider preference. Stripe is unavailable in a lot of countries, and those publishers are often the ones who need an extra revenue path most. That is how I ended up in this corner in the first place.
Good luck with it, I am curious where it goes. Same wall, different side, so ping me if you hit something interesting.