You’re building a SaaS product on WordPress. You want recurring subscriptions. You Google “WordPress recurring payments” and immediately find plugins charging you $89 to $199 per year to help you charge your customers per year. There is something deeply wrong with that sentence.
Ree was built to fix that. Here is exactly how — and how much — it saves you.
1. The hidden cost of subscription plugins
Let’s do the math that most people skip.
You launch a SaaS product. Year one, you are figuring things out. Maybe you make $500. You paid $99 to WP Simple Pay or $89 to EDD Recurring just to have the plumbing working. That is 20% of your revenue gone on tooling before you pay for hosting, the domain, or anything else.
Year two is better — $4,000 MRR, $48K ARR. You renew the plugin. Another $99. It feels smaller now, but compound it over five years and add in upgrades, multi-site licenses, and support tiers. You have easily paid $600–$1,000 for the privilege of collecting recurring payments.
Ree costs $9.90 once. Or nothing.
That delta is not just a saving — it is the correct mental model. A recurring payment system is infrastructure. Infrastructure should not itself be a recurring cost.
2. You own your subscriber data, 100%
When you use a hosted billing platform or a plugin that phones home, your subscriber list lives somewhere else. That “somewhere else” has:
- Its own terms of service that can change
- Its own pricing that can change
- Its own uptime, its own outages
- Its own lawyers who decide what you can and cannot sell
Ree stores everything in your own WordPress database — the wp_ree_subscriptions table. Your stripe_customer_id, stripe_subscription_id, plan, status, period dates, email. All yours. Export it anytime. Migrate it. Query it directly. No one can lock you out of your own subscriber list.
This matters more than it sounds. Founders who have had payment processors freeze their accounts mid-month know exactly why.
3. No SDK, no bloat, no version conflicts
Most Stripe plugins bundle the official Stripe PHP SDK. The SDK is over 2MB of PHP files. It has its own autoloader that can conflict with other plugins. It pins to specific Stripe API versions. When you update the plugin, the SDK version changes. When the SDK version changes, behavior can change subtly.
Ree uses zero external dependencies. It talks to the Stripe REST API directly using WordPress’s built-in wp_remote_post() and wp_remote_get() — the same HTTP layer every WordPress plugin already uses. The entire HTTP wrapper is 80 lines of code you can read in five minutes.
No Composer. No vendor folder. No autoloader wars. Just clean, readable PHP that does exactly what it says.
4. Webhooks that actually work
Webhooks are where most DIY Stripe integrations collapse. A subscription is not a one-time charge — it is an ongoing relationship. When Stripe renews a subscription, your WordPress site needs to know. When a card fails, your site needs to react. When a customer cancels via the Stripe portal, your site needs to update their access.
Ree registers a REST API endpoint at /wp-json/ree/v1/webhook and handles all five critical lifecycle events:
- checkout.session.completed — subscription created, WP user linked, welcome email sent
- invoice.paid — renewal recorded, access period extended
- invoice.payment_failed — dunning email sent, status set to
past_due - customer.subscription.updated — plan changes, cancel-at-period-end reflected
- customer.subscription.deleted — cancellation recorded, goodbye email sent
Stripe’s signature verification happens on every request. A webhook with a bad or missing signature returns 400 immediately. There is no way to fake a renewal or fake a cancellation by hitting the endpoint directly.
5. Dunning that escalates intelligently
Failed payments are inevitable. Cards expire. Banks decline for fraud. Limits get hit on payday. What matters is what happens next.
Ree sends three escalating dunning emails:
- First failure — calm, informational. “We couldn’t process your payment — please update your card.”
- Second failure — more urgent. “Second attempt failed. Your subscription is at risk.”
- Third failure — final notice. “Your subscription will be cancelled. Last chance to save it.”
Each email links directly to the Stripe customer portal where the user can update their card immediately, without logging into your WordPress site or talking to support. Stripe handles the card update; Ree handles the WordPress state.
Studies from Stripe show that a well-implemented dunning sequence recovers 20–30% of failed payments. On $5,000 MRR with 3% monthly failure rate, that is $30–$45/month recovered that would otherwise have churned silently. At that rate, Ree’s $9.90 price pays for itself in the first week.
6. The Stripe customer portal does the heavy lifting
Building a subscription management UI is surprisingly painful. Upgrade flows, proration logic, card update forms, invoice history, cancellation surveys — each one is a feature that takes days and breaks in subtle ways.
Ree sidesteps all of it. When a subscriber clicks “Manage Subscription,” Ree creates a Stripe Billing Portal session and redirects them to Stripe’s hosted UI. Stripe handles:
- Card updates
- Plan upgrades and downgrades
- Invoice download
- Cancellation
- Reactivation
All of this is Stripe’s problem, not yours. When the user finishes, they land back on your site. Ree receives the webhook. WordPress state updates. Your support inbox stays empty.
7. Open source means you can trust what you’re running
Every line of Ree is readable on GitHub. There are no obfuscated files, no licensing callbacks, no license server that your plugin phones home to. If the IdeaUseful team disappeared tomorrow, Ree would still work exactly as it does today — forever.
This is not an ideological point. It is a practical one. When something breaks at 2am because a Stripe webhook is returning 400, you need to be able to read the webhook handler yourself, understand it, and fix it. With Ree, you can. With a compiled or obfuscated plugin, you cannot.
8. What it does not do (yet)
Honesty matters. Ree v1.0 does not have:
- Multi-currency switching at checkout
- Proration UI when upgrading mid-cycle (Stripe handles it silently, but there is no UI for it)
- Metered / usage-based billing
- Team / per-seat billing
- Tax calculation (use Stripe Tax in your Stripe settings — it works with Ree automatically)
These are on the roadmap. The Support tier gives you direct influence on what ships next.
The bottom line
If you are building any kind of recurring revenue on WordPress — a membership site, a SaaS tool, a newsletter subscription, a community — Ree gives you production-grade Stripe recurring billing at a price that respects what you are trying to build.
Free gets you everything. $9.90 supports the work and gets you official updates. $29.99 gets you a human to answer your questions within 48 hours.
No monthly fee. No lock-in. No SDK conflicts. Just working subscriptions.