This is Part 2 of a two-part series about building a “better,” self-hosted alternative to Substack.
Better is subjective, of course. In Part 1, I made a case for why Substack isn’t the ideal platform if you value digital sovereignty—a piece of digital real estate that you fully control.
Digital sovereignty is about owning your content, your stack, your data, and your relationship with your audience.
“Build on platforms, don’t build within them,” is my guiding long-term philosophy.
In this essay, I share the exact tech stack I use, along with a detailed breakdown of how to build your own.
⦿
In this essay, I’ll share my tech stack and explain how to set up a similar version.
I will give you two variants: one I currently use and one I will migrate to over the coming months for reasons I’ll explain.
For thoroughness and context, I’ll start by quickly shining a light backward so you can see how I got here.
I’ve consistently used WordPress as my self-hosting platform (since 2004), but throughout my years of selling digital products (since 2009), I’ve had to change the membership plugin that handles payment gateway integration as better solutions became available:
- WishList Member
- Digital Access Pass (DAP)
- aMember
- (2019 – 2023) MemberMouse
- (2023 – 2025) Paid Membership Pro (PMPro)
- (2025 →) SureCart + SureMembers
Integration with third-party services (like email, payment gateways, and backend communities) is unrecognizable today relative to a decade ago.
Connecting services was like putting a system together with duct tape. Custom PHP scripts or complicated Zapier connections strung bits and pieces of the process together.
MemberMouse, which I used from 2019 to 2023, was the best, most robust membership plugin. It was not perfect, however, and still required some faff (custom scripts) to interface with (Convert)Kit.
When I left TLB/MMS in 2023, I went with Paid Membership Pro (PMPro), which I currently use (as of this writing).
Build Your Own “Substack”
You’ll need four main components. Except for hosting, all are technically free:
- Hosting — Rocket or Kinsta (I use Rocket)
- CMS — WordPress (.org, not .com)
- Membership & Payment Gateway
- Option 1: Paid Membership Pro
- Option 2: SureCart & SureMembers
- Email — Kit (their free plan supports up to 10,000 subscribers, with one email sequence).
- (Or if you already use another dedicated ESP, that’s cool, too.)
Points 2 and 3.1 are 100% open-source projects. Their code is visible and transparent, making it easy to extend (and edit to your liking if necessary).
Why give two membership and payment gateway options?
We all have slightly different needs. What’s perfect for one person may be suboptimal for the next, and vice versa.
I have years of experience using membership tools…
In the old days, we (Royal ‘we’) picked tools based on what services and payment gateway options we needed. Tools weren’t infinitely interoperable, so they had to be chosen carefully.
For example, for years, I used ClickBank because it was the only Merchant of Record (MoR) payment gateway in town. However, this limited what membership plugins supported ClickBank (WishList Member, DAP, aMember, and MemberMouse).
There were potentially “better” tools, but they didn’t support ClickBank. However, ClickBank was only one of many services (like email and community/forum) I needed to integrate.
So, finding a tool that would get the job done with the fewest compromises became a juggling act.
Thankfully, things have improved significantly in recent years. Looking back at what we have available now, the contrast is laughable.
Paid Membership Pro (PMPro) is a truly wonderful, feature-rich single plugin for any kind of member-focused business.
Restrict content, manage member subscriptions with recurring payments, user registration, robust member management, and seamless payment checkout through Stripe (they support other providers like PayPal and others, but Stripe is the de facto standard across 46 countries), all from within WordPress.
Having used PMPro for more than two years, I inevitably encountered some of the edge cases and nuances specific to what I needed and what the tool offered out of the box.
Not being a developer/coder, I found myself wanting to do some things I was unable to do without custom coding or code snippets (recipes).
PMPro is open source, so nothing is impossible…
But I found it increasingly frustrating having to work with blocks of custom code to tweak this or do that. To PMPro’s credit, their support is world-class, and I managed to get most things I needed done in one way or another.
However, every additional custom code snippet I added increased the complexity of the simple system I wanted to maintain.
During this time, the guys behind SureCart, SureTriggers (now OttoKit), SureMembers, SureForms, and SureMails got my attention with their integrated suite of tools.
Instead of using “one tool to rule them all,” their approach was to build very specific tools that seamlessly worked together. This allowed their customers to pick what they needed and not what they didn’t.
While using PMPro, I relied on SureTriggers (OttoKit) to (seamlessly) connect Kit and Circle (in favor of using custom code snippets).
I quickly fell “in love” with its no-code simplicity — its beautiful UI and elegant workflow.
It wasn’t until I used SureTriggersthat I looked deeper at their other tools (SureCart, SureMembers, SureForms, and SureMails).
At that moment, I saw the potential of an even more integrated workflow, further simplifying my tech stack.
I replaced WS Form LITE with SureForms.
I replaced WP Mail SMTP with SureMails (free).
I’m now using most of the “Sure” tools with PMPro.
I wondered whether SureCart and SureMembers would replace PMPro without any of the additional code snippets I use. So, I built a new test website and installed SureCart and SureMembers.
The configuration was easy, and the “integration” was native (not requiring any additional connector).
SureCart is a dedicated, robust, and feature-rich shopping cart. According to the WordPress plugin repo, it has over 90,000 active installs.
Its installation base is surpassed only by WooCommerce, which Automattic, the creators of WordPress, owns. However, anyone using Woo can attest to how slow, complex, and bloated the plugin is — requiring expensive add-ons for basic features.
SureCart, in contrast, is lightweight, fast, and inexpensive compared to Woo. With SureCart, there are no “add-ons” — you get everything with nothing omitted.
What’s beautiful about SureCart is that it works for any type of product business — digital or physical. Whether it’s a one-time payment, subscription, installment plan, digital download, course, ebook, software, SaaS, or physical product, SureCart has you covered.
For the Tiny Digital World (TDW) I’m building, running the full “SureStack” further simplifies my process yet, at the same time, offers many additional benefits and features (for example, native multi-currency support).
OK, more about these tools shortly.
First, hosting…
(Managed) Hosting
I recommend using the self-hosted version of WordPress (.org), which comes bundled with every hosting provider.
I host with Rocket, the world’s fastest WordPress hosting ($30/mo for one website plan. I’m on their Pro plan).
Likewise, I also recommend Kinsta — pricing is the same/similar to Rocket. (Since Dec 2018, I used Kinsta to host TLB/MMS until I exited that business in 2023, leaving it to my previous business partner, Shawn Twing, who now owns it.)
(While it’s possible to use WordPress’s hosted service (.com), which is technically free, the self-hosted version offers unrestricted use with zero downsides.)
Security is always a concern in a world full of bad actors (malware, for example), so choosing a world-class host is absolutely essential!
A good host, like Rocket, handles bulletproof firewalls, DNS security, automatic malware blocking, server-level caching, and Enterprise Edge CDN (via Cloudflare). These enterprise-level protections create multiple layers of security that work together to shield your site from threats without requiring constant vigilance on your part.
While WordPress itself receives regular security updates, your hosting environment forms your first line of defense. Budget hosts often lack these advanced security features, leaving your site — and your customers’ data — vulnerable to attacks. The modest premium for secure hosting pales compared to the potential costs of a security breach, both financial and reputational.
For digital product sellers, security isn’t just about protecting your own assets — it’s about safeguarding your customers’ information and maintaining their trust.
In my years running digital businesses, I’ve found that investing in quality hosting like Rocket has eliminated countless potential security headaches. This allows me to focus on creating and selling content rather than troubleshooting security incidents or recovering from attacks.
It’s worth noting that there are other platforms one can use to “replace Substack,” like beehiiv and Ghost Pro. However, these platforms are not “blank canvases” from which you can build something truly unique for your business model.
I’ve been using WordPress since 2004 (version 1.0). It was a blogging platform then, but today, it’s a robust all-purpose platform that powers most websites on the Internet (43% as of 2024).
It’s perfect for building the ultimate self-hosted paid newsletter / digital course business for sovereign creators like us.
Rocket offers one-click WordPress deployment.
Because Rocket is a “managed” hosting provider, they do all the work to keep their infrastructure fast and secure.
All for $30/month ($1 for the first month).
For the love of all things holy, never skimp or half-ass your hosting provider. Get the best you can afford and nothing less.
Content Management System: WordPress
Politics aside, WordPress powers nearly half the websites on the Internet. It’s free. It’s open source. It’s robust. It’s “infinitely” customizable and expandable.
While it’s easy to dismiss WordPress as old-school or bloated in the age of sleek SaaS site builders, there’s a compelling case for WordPress as a self-hosted solution for serious creators, digital entrepreneurs, and sovereignty-minded worldbuilders.
WordPress isn’t just a platform. It’s infrastructure, powering major sites like TechCrunch, The New Yorker, and even the official White House blog. This isn’t just legacy weight — it signals:
- Battle-tested architecture
- Long-term viability
- An enormous ecosystem of tools and talent
In a digital landscape where SaaS platforms get acquired, pivot, or sunset overnight, WordPress is the cockroach of CMSs: hard to kill and endlessly adaptable.
The idea of digital sovereignty — owning your content, your stack, your data, your audience — is philosophically aligned with WordPress. You can:
- Host it wherever you want (locally on your hard drive, from a shared host, your own Linode-style box, or, my preference, fully managed)
- Modify anything — down to the PHP core
- Build private or public plugins and themes
- Export your data freely
- Lock nothing behind a SaaS paywall
Compare this to something like Substack (or Squarespace, Wix, Webflow, et la) where you’re always subject to the platform’s whims. If you’re building a Tiny Digital World, WP is a solid bedrock rather than a rented space in someone else’s high-rise.
The plugin and theme ecosystem is absurdly deep…
Need membership tools? Multilingual content? Custom post types? A gated learning platform? Ecommerce? Event registration?
If you can imagine it, there’s likely a plugin for it. And if there’s not, you can build or commission one.
(AI/LLMs have democratized coding, so even non-coders like myself can use ChatGPT/Claude/Gemini or an AI-powered IDE like Cursor, Windsurf, Bolt, or Replit to quickly build a plugin or integration script to suit a niche use case.)
Yes, WordPress has a reputation for being hacked. But as I mentioned in the hosting section, bad hygiene, not the platform, is the culprit.
With solid practices — like auto-updates, limited plugins, hardened server setups, and tools like Wordfence or Cloudflare — you can run a WP site that’s rock solid and secure.
And with security comes control:
- Control over backups
- Control over uptime and caching strategies
- Control over data privacy, including cookie behavior and analytics
WordPress is mature with a global community.
This means your ability to find support — whether for a bug, performance issue, or UX redesign — is nearly frictionless.
WordPress can be as lightweight or as complex as you like.
There’s no licensing cost. No premium tier to unlock basic features. No “white-label” add-on fee. You’re free to:
- Host wherever you like
- Modify the codebase
- Create derivative works
- Charge for what you build
And thanks to the GPL license, you inherit not only software, but ideological DNA: community ownership, openness, and extensibility.
WordPress is especially positioned:
- If you’re a writer/creator building an owned platform (e.g., Tiny Digital Worlds)
- If you want to escape the algorithmic churn of social platforms and SaaS-based walled gardens
- If you’re crafting a membership or fan-supported “World”
In these contexts, WordPress becomes a vessel for a sovereign digital world — not just a website.
Of course, WordPress isn’t all rainbows and unicorns, though. The real tradeoff is an element of complexity.
You’re the sysadmin (unless you go with a fully managed host like Rocket). You own the bugs, plugins, updates, and stack.
That’s the price of sovereignty.
If you want plug-and-play ease (like Substack), WordPress isn’t it. But if you want independence, it’s unbeatable.
That said, with the right tech stack (plugins) and rock-solid premium hosting, many of these tradeoffs fall away.
At the center of our tech stack is a membership and payment gateway…
Memberships & Payment Gateways
“I really enjoyed this one. The plugins you mentioned are all great, and they’ve advanced a long way since I last looked at WP membership options.”
“I gave PMPro a spin just to see. I liked that I could install it, turn on Stripe, integrate with (Convert)Kit, and replace Substack just like that.”
Matt P (15 Apr 2025)
Option 1 — Paid Membership Pro (PMPro):
Paid Membership Pro (PMPro), which is open source, also offers paid plans (I use their Plus plan). However, this is mainly to access their premium add-ons (if needed), support their development, and to access premium support.
PMPro has been around since 2010. Their WordPress plugin is robust and fast and offers seamless integration with Stripe to handle payments.
I’ve loved using PMPro.
If you’re looking for an open-source, well-supported, single integrated membership and payment gateway, PMPro is an excellent choice.
Sign up for a free PMPro account, download the plugin, add it to your WordPress installation, then activate it.
Activating the plugin will initiate the Setup Wizard, which will configure all the essential bits.
- Initial Setup (Documentation)
- How to Set Up Paid Memberships Pro (YouTube installation playlist)
Part of the setup process will be adding your payment gateway. I recommend Stripe, which PMPro has native integration for.
Adding Stripe to PMPro takes a few seconds (covered in the video playlist above).
⦿
Option 2 — SureCart & SureMembers:
SureCart is accessible from the WordPress repo for free. Search for ‘SureCart,’ then click Install Now (and then Activate it):

You’ll be prompted to sign up for a plan — Launch is free but comes with a 1.9% transaction fee. Pro is $179/year with no transaction fee.
(Note: The Pro plan becomes more cost-effective if your annual revenue exceeds approximately $9,421. At this point, the transaction fees on the Launch plan would total about $179, matching the Pro plan’s yearly fee but without its added benefits. If you’re generating less an $9,421, start with the Launch plan, then upgrade once you expect to exceed the revenue threshold.)
SureMembers is a premium paid-only plugin ($69/year).
Once you’ve purchased a license, download the plugin, add it to WordPress, then activate it.
(WordPress > Plugins > Add New Plugin > Upload Plugin)
Integrating SureCart with SureMembers is easy.
In SureMembers, create at least one “Access Group.” You don’t (yet) need to add any posts/pages to the Protected Content area, but this is where you will once you have content you want to protect.
Then, in SureCart, create a Product (SureCart > Products), scroll down to Integrations:

… click ‘Add New Integration,’ and select SureMembers and the appropriate Access Group you want customers to get access to:

That’s it (more detailed workflow here).
(There are many other options, of course, but this is the extent of the complexity.)
I will cover the costs more broadly later. However, here is how Option 1 compares with Option 2.
Option 1 — Paid Membership Pro (PMPro)
- Free or $299/year for the first year of Plus, then $597/year (use the coupon code
FIRSTYEAR50
to get a 50% discount for the first year).
Option 2 — SureCart & SureMembers
- SureCart: Free with 1.9% transaction fee, or $179/year with no transaction fee. (If you earn over $9500 yearly, paying the $179/year subscription is cheaper.
- SureMembers: $69/year
- $179 + $69 = $248/year
All things being equal, SureCart + SureMembers is more cost-effective than Paid Membership Pro, approximately 58.46% cheaper.
Email Management & Automation
Kit (formerly ConvertKit) recently (mid-2024) made its free plan extremely competitive. Finally. It supports up to 10,000 subscribers (with one email sequence and one basic visual automation).
While I’ve been using Kit since 2013 (full review here), I’ve been (very) critical of their free plan, which offered no email sequence. This made it unusable from my perspective. Because of this, I could never recommend their free plan and encouraged my audience to pony up for a paid plan out of the gate.
Email, after all, is the highest-leverage activity we as creators do, so paying for a good email service has always been my highest priority (I’ve used many ESPs in the 22 years I’ve been sending email newsletters).
While there are more advanced ESPs than Kit, I love its perfect balance of powerful yet universally useful features, exceptional speed, and industry-leading email deliverability (which they transparently document through published reports).
As I’ll explain later, you’ll ideally need at least two email sequences (three is better), which means one of their paid plans ($25/mo). But I’ll outline what’s possible with just one email sequence, which works; it’s just not optimal, is all.
If you already use a dedicated email provider that you’re happy with — Bento, Drip, ActiveCampaign, Constant Contact, AWeber, GetResponse, MailerLite, et la. — there’s no need to change to Kit.
Connecting PMPro/SureCart to Kit
While Kit has their own native WordPress plugin, to integrate with PMPro, you’ll need to use the (free) add-on by PMPro.
However, while it technically works, it doesn’t support adding a tag when a member is removed from a membership level (e.g., when a member cancels or refunds).
In Kit, I have two tags per product/membership: one for a purchase/subscription and another for a cancelation/refund.
I configure Kit this way because adding a tag can trigger an automation workflow or Rule, whereas removing a tag can’t (the add-on’s default behavior).
Here’s what I do (these are tags in Kit):
Purchase - Builder (Yearly)
Cancel - Builder
For this reason, I don’t use the native PMPro add-on. However, because PMPro and their add-ons are open-source and accessible on GitHub, you can edit/customize the plugin to your liking if you have the technical chops.
Instead, I use SureTriggers (OttoKit), a WordPress automation service similar to Zapier (by the same company that makes SureCart and SureMembers). The free plan includes 250 tasks/month. (I use the Business Plus plan.)
SureTriggers has over 1,000 integrations and works flawlessly, connecting PMPro to Kit (and it’s easier to use than Zapier). I have two simple automations that add the appropriate tags when triggered:


That’s it.
The process to connect SureCart with Kit is the same using SureTriggers/OttoKit.
Technically, you now have a platform installed that replaces what Substack does and offers functionality and flexibility far beyond what’s possible with Substack.
Learning Curve (WP vs. Substack)
I get the appeal of a turnkey solution like Substack.
After signing up for a free account, you’re pretty much in business. Five or ten minutes later, after configuring a few aesthetic configurations, you can publish your newsletter for free.
What’s not to love, right?
Well, firstly, running your “business” from a subdomain is far from ideal (yourname.substack.com). For this reason, if you’re 100% committed to using Substack, configure a custom domain that reflects your personal branding.
Substack charges a one-time fee of $50 to complete this operation. This fee does not cover the cost of registering your domain, so you’ll have to purchase a domain separately (I recommend using Namecheap).
(One downside of using a custom domain with Substack is that, due to some nerdy DNS constraints, you have to use the “www” in your domain — there’s no clean way to use just the root domain without it. Substack hasn’t built in the extra infrastructure needed to support apex domains properly, so you’ll never see a Substack site at yourdomain.com, only at www.yourdomain.com. Most people won’t care. But it bugs me. I’m weird like that, I guess.)
One downside of making a platform so accessible is that every Substack has a nearly identical look and feel.
You can change the accent color of the theme, pick from five body fonts, five heading fonts, and add a branding logo. Um … and that’s it. Whoohoo! (I’m told I don’t do sarcasm well.)
Browse any Substack newsletter from there directly, and it’ll be impossible not to see how strikingly similar they all are. It’s the price for operating on a platform optimized for ease over flexibility and sovereignty.
But what about the alternative?
There is no denying that there is a learning curve when designing and building from essentially a “blank canvas.”
When I started using WordPress 1.0 in 2004, it was a (very) different animal! Even a decade into the open source project, finding a good theme that was relatively user-friendly to customize was a challenge (fcking nightmare!).
But that’s mostly a thing of the past, as WordPress has doubled down on making the design and publishing process easy and joyful.
I use GeneratePress and GenerateBlocks, a premium (paid) theme platform for WordPress…
However, WordPress’s new native (free) Twenty Twenty-Five theme is a beautiful drag-and-drop experience with stunning pre-built patterns, all fully customizable within a visual editor (watch this short video about what’s new in WordPress 6.7, released in November 2024).
Yes, there’s still a learning curve. That’s the price one pays for the flexibility to design and build something truly unique — an expression of oneself and one’s brand.
Ollie and Rockbase are two other premium block themes that have beautiful pattern libraries (pre-built design elements you can drag and drop right into your design).
YouTube is full of tutorials for customizing WordPress to your heart’s content, so it’s a good place to get free schooling.
Learning to use the basics of WordPress (adding pages and configuring the blog) doesn’t take long. Learning to use the new block editor (what Twenty Twenty-Five theme uses) will take a little longer (a few hours, perhaps).
However, once you have the basics under your belt, the learning curve falls away.
For example, it takes me no longer to publish a page or post using WordPress than if I were using Substack.
Most Substackers would likely agree that one of the most enjoyable and beautiful experiences of using Substack is their editor. However, the WordPress editor is as beautiful and easy to use yet embedded with much more editing functionality (if and when needed).
Once WordPress is set up to your liking, all the perceived constraints of using it vs. Substack will dissolve, and you’ll be off to the races.
Costs: Substack vs. WordPress Stack
Costs can be misleading when something is pseudo-free. The “only” cost is 10% of each transaction (Substack) and 2.9% + $0.30 per transaction fee (Stripe).
Stripe’s cost is unavoidable. Whether you use Substack, self-host with WordPress, or any other shopping cart that integrates with Stripe, that’s the cost of transacting.
However, the 10% Substack charge is nontrivial…
When you’re starting, I get it. It’s near enough free, so your monthly cost of doing business is very low.
If you have ten paid subscribers who pay you $10/month, your monthly expense is $10 (10% of $100).
If you want to go the absolute barebones route (free PMPro, free Kit, $30/mo for hosting), using the same example, it will cost you three times as much.
⚠️ But this is where things quickly get misleading…
I’ve heard many Substack publishers say they’ll use Substack to start, then “later” that’ll move. I get it. But it’s a lie. It’s easy to say but hard to do.
Later never comes because switching is a fucking pain in the ass. (If it seemed too difficult to set up elsewhere in the beginning, believe me, once you have the complexity of subscriptions in Stripe, email subs to import into a new ESP, then having to create new email sequences and automations, and repurpose all pages and pages of content in Substack, switching will feel anything but easy, I can promise you that!)
So, let’s get some perspective…
What about when ten paid subscribers grow to just 100? Growth, of course, should be inevitable. This is a business, not a hobby.
If your membership is $10/mo, times 100 subscribers ($1000/mo), of which 10% is $100/mo. However, the cost of the self-hosting solution remains at $30/mo. Now Substack, at this early stage, is over three times pricier.
Hmm… 🤨
What if your membership is $300/year (with 100 members)? That is $3,000/year (which equates to $250/mo or $3,000/year).
Whereas, the self-hosted solution is still $30/mo (or $360/year).
(In calculating the self-hosted costs in this example, I’m using the free option of PMPro. However, even accounting for the premium “full fat” versions, it’s still far less expensive.)
Let’s look at my little business as an example…
In 2024, I opened enrollment for two days (one day in September and one day in November). I attracted 260 members, paying $250/year. 10% of $65,000 is $6,500/year in hypothetical Substack fees.
Yet, on my (own) self-hosted platform, I paid:
- $790/year (Kit)
- $600/year (Rocket hosting)
- $299/year (PMPro, Plus)
- $150/year (GeneratePress + GenerateBlocks)
- Total: $1,839
… which is 71.72% cheaper than Substack. However, I can scale by 10x, and my costs won’t change (apart from Kit, which will increase somewhat).
OK, one final example…
In Part 1 of this essay series, I mentioned that George Saunders is likely earning around $100K/mo from this Substack, so he is a fun real-life example.
$10,000/mo in Substack forever-fees is nontrivial, for sure.
He could build an almost identical (yet more sophisticated and feature-rich) setup using WordPress for an order of magnitude less.
- Hosting: $600/year
- SureCart + SureMembers: $248/year
- GeneratePress + GenerateBlocks: $150/year
- Kit: $18,190/year (for 296,000 subs!)
… which is $19,188/year in expenses (vs. $120,000/year), or $1,599/month, roughly ten times less expensive than Substack (or 84.1% cheaper than Substack!).
It puts things into perspective, I think.
