Subscription billing for publishers looks cheap until it isn’t
In Short:
- Publishers keep building their own subscription billing because the first version looks like a weekend’s work on top of Stripe. It usually is.
- The cost never shows up in the build. It shows up as edge cases: double billing, a leap year, a tax rule, a renewal spike on the same day the site goes viral, and the developer who understood it all having left.
- On WordPress, the layer worth owning is the product: the site, the paywall and access rules, the integrations. Rent the billing engine underneath it.
“It’s just a Stripe API. How hard could it be?”
I’ve heard that line from CTOs, from founders, and at least once from a finance manager about to hook a home-made billing system into production. It’s not a silly question. Stripe’s API is excellent, and charging a card is the easy part. It’s the next five years that cost you.
I sat down with Jen Matichuk from Memberful to talk this through. Memberful has been selling memberships for creators and publishers for 13 years, and it’s the subscription engine we most often put under WordPress sites for TCC clients, so I wanted her view on where subscription businesses go wrong.
The video has the details, including Jen’s map of the market and where Memberful is heading. This is the argument we kept coming back to.
We’ve seen the Frankenstein up close
Some years ago I gave a talk at WordCamp Sydney on the four ways publishers build digital subscriptions:
- Buy an enterprise platform
- Build the whole thing yourself
- Go halfway, with a payment processor and some glue code
- Use a SaaS engine and let someone else run it
Most teams end up on the halfway option, because it never feels like a decision. Then someone asks for trials, then annual plans, then gifting, then a comp list. Five years later you’ve got a Frankenstein and everyone who understood a limb of it has moved on.
I’ve seen where that ends up. Years ago we worked on a site where recurring revenue ran through an off-the-shelf commerce platform that was never designed for that job. Big AWS cluster, a huge database behind it, tens of thousands of dollars a month in horsepower to keep it upright. It worked, mostly. But the platform’s data model meant that if someone in the business ran a report without an end date on the query, the whole site fell over. Not just reporting. Checkouts and renewals too, because it was all on the same box.
That wasn’t a development problem. It was the wrong engine for the job, and no amount of infrastructure spend fixes that. When we later wrote that building software is cheap now and owning it isn’t, this was the example in my head.
Jen sees the same thing from the other side. To teams that haven’t built a membership yet, running their own Stripe billing looks great: no middleman, no platform fee, full control. Her response:
“The grass is always greener. We’re maintaining all of that hard stuff, and you don’t understand how hard that piece is until you go do it. So go do it and come back to us.”
The bill arrives as edge cases, not invoices
“Hand-rolled billing feels cheap because its costs don’t look like costs. They look like support tickets.”
Members double billed, or not billed at all. A renewal that only fails on the 29th of February. Tax calculated wrong for one region, found eight months later during reconciliation. Two hundred members renewing on the first of the month while your site is having its biggest traffic day of the year, on the same servers.
Then there’s the half of the use cases teams forget to scope: access. Billing decides whether someone paid. Access decides what they get, on which tier, from what moment, across every part of a WordPress site. Keeping those two in sync is where most of the real engineering lives.
And then the people go. The freelancer stops answering, the agency closes, the developer takes a better offer. Or someone vibe-coded the thing in a fortnight and nobody else can explain it, which as Jen pointed out tends to arrive with security problems attached.
The tell that a team has crossed the line is when the conversation shifts from opportunity cost to actual cost. Not “we might be losing sales” but “we know exactly who should have renewed last month and the system didn’t charge them.” That’s the point where “we’ve already built it, we’ll keep fixing it” stops holding.
Managed doesn’t mean safe
A vendor doesn’t make the risk disappear. Jen told me about a publisher whose platform cancelled every one of their subscriptions, at random, and couldn’t say why. They booked an emergency demo with Memberful, worked out their options and left.
That was a managed product, and the difference is they had somewhere to go. A team running its own Stripe billing has no emergency demo to book, because the thing that broke is the thing they own. Vendors fail. The question is whether it costs you a fortnight or the business.
Why this is a WordPress argument
Every arrangement has lock-in somewhere, whether that’s moving platforms, swapping a payment engine, or getting your member data out. Jen splits the market three ways: all-in-one platforms at one end, enterprise billing like Piano and Chargebee at the other, and Memberful in the middle, which she calls decentralised. A white-label checkout on your own site, your own stack around it.
That middle position only works on an open platform. Because WordPress is open source, a vendor can tap in at every level, from metered paywalls through to user management, and a publisher can build whatever product they want on top. Most other CMS platforms don’t open those doors, so you get whatever the vendor decided you needed.
That’s the layer we build for publishers. The WordPress site itself, the paywall and access rules, the integrations with email, CRM and analytics, the product decisions that make a membership worth paying for. None of it is billing. Memberful plugs into WordPress, Discord, Discourse and eight or nine email providers directly, with an open API for the rest, so the engineering budget goes on the product rather than on subscription mechanics.
Jen doesn’t oversell WordPress. The interface hasn’t changed much and the visuals lag something like Webflow. What it has is permanence: roughly 43% of the web runs on it and isn’t leaving. Which is why Memberful, on WordPress since day one, has metered paywalls, simpler paywall customisation and a multisite option all in build now.
Own the audience and rent the engine
The most encouraging thing we talked about is who holds the control now. Thirteen years ago it sat with the conglomerates. Today a five-person creator business can run more net margin than a 40-person team in a traditional media house.
The open web of page views and ads is in structural decline, AI is consuming and repackaging the work underneath it, and membership is one of the few real hedges. It’s also the hedge that fails worst when the infrastructure under it wobbles.
“So the instinct to own things is right. It’s just aimed at the wrong layer.”
Own your audience, your content and your product. The billing engine is none of those. It’s plumbing that was solved a decade ago, and rebuilding it is how a publisher spends two years of engineering on something no member will ever see.
Subscription billing was never just a Stripe API.
If your WordPress subscription setup has outgrown what it started as, tell us what it’s doing now and what keeps breaking.