Open source · see what shipped →

The open-source RevenueCat alternative

RevenueDot is a self-hostable backend for in-app purchases and subscriptions. Keep the RevenueCat SDK you already ship, change one line, and own your purchase data, with no share of your revenue.

The one lineSwift · AppDelegate
Purchases.proxyURL = URL(string: "https://api.revenuedot.app")!  // or your own server
Purchases.configure(withAPIKey: "appl_...")                       // unchanged
RevenueDot dashboard overview: active trials, active subscriptions, MRR, revenue, new and active customers with sparklines, recent transactions and setup health
The RevenueDot dashboard, captured from the running app with demo data.

SDK endpoints

37

Every endpoint the RevenueCat SDKs call, answered in the same shape.

SDKs supported

10

iOS, Android, React Native, Flutter, web and five more, stock or forked.

Revenue share, self-hosted

0%

You pay for your own servers. Nothing scales with your revenue.

Lines of app code to change

1

The SDK's proxy URL. Purchases, offerings and entitlements stay as they are.

How switching works

Move off RevenueCat in an afternoon, without losing a subscriber

RevenueDot speaks the RevenueCat SDK protocol, REST API and webhook format field for field, so your app, your backend handlers and your paywalls keep working.

01

Import

One command copies your products, entitlements, offerings, SDK keys, customers and purchase history. Current access comes with it.

02

Run side by side

Point App Store and Google Play notifications at RevenueDot. It forwards each one to RevenueCat, so both stay accurate while you compare.

03

Switch

Ship an app update with the proxy URL. When most users have it, turn RevenueCat off. Your existing public API keys keep working.

iOSSwift
// Before Purchases.configure
Purchases.proxyURL = URL(string: "https://api.revenuedot.app")!
Purchases.configure(withAPIKey: "appl_...")
AndroidKotlin
// Before Purchases.configure
Purchases.proxyURL = URL("https://api.revenuedot.app")
React Native and ExpoTypeScript
await Purchases.setProxyURL("https://api.revenuedot.app");
FlutterDart
await Purchases.setProxyURL("https://api.revenuedot.app");

See the line for all nine SDKs, the fork packages and the importer →

Why teams switch

Your purchases, your servers, your bill

No revenue share when you self-host

RevenueCat charges 1% of tracked revenue above $2,500 a month. Self-hosted RevenueDot costs your server bill.

Your data, your region

Purchases, customers and receipts live in your own Postgres, in the region your customers and your lawyers need.

Same API, no rewrite

The same SDK calls, customer info and webhook payloads, checked against RevenueCat's own SDK test fixtures.

A safe migration

Import everything, run both systems side by side with forwarded store notifications, then switch when the numbers match.

Open source

Read, audit and change the code that decides who has access to your app. AGPL-3.0 server, MIT SDKs.

Built for AI agents

An MCP server, agent skills and llms.txt let Claude, ChatGPT, Codex and Cursor set it up and run it for you.

The dashboard

Everything you look at in RevenueCat, where you expect it

The navigation follows RevenueCat's, so your team finds customers, offerings and API keys on day one.

A customer page in RevenueDot: total spent, active Pro entitlement, App Store subscription, customer details and history

Customers. Every purchase, entitlement, alias and event for one app user, with grants and refunds a click away.

The Offerings page in RevenueDot: default and win-back offerings with their packages

Product catalog. Offerings, packages, products and entitlements, served to the SDK exactly as RevenueCat serves them.

What it costs

A bill that does not grow with your revenue

Monthly price at each level of tracked revenue. RevenueCat figures use its public pricing, checked September 2026.

Monthly tracked revenueRevenueCatRevenueDot self-hostedRevenueDot Cloud
$10,000 $75 $0 + your servers $0
$50,000 $475 $0 + your servers $200 (coming)
$250,000 $2,475 $0 + your servers $999 (coming)
$1,000,000 $9,975 $0 + your servers $999 (coming)

Source: revenuecat.com/pricing. RevenueDot Cloud paid pricing is planned and not yet available. See pricing.

FAQ

Questions teams ask before switching

Is there an open-source RevenueCat alternative?

Yes. RevenueDot is an open-source (AGPL-3.0) backend for in-app purchases and subscriptions that implements the API the RevenueCat SDKs call. You keep the RevenueCat SDK in your app, point it at RevenueDot with one line (the SDK's proxy URL), and keep your purchase code, offerings and customers.

Can I self-host RevenueCat?

RevenueCat itself is closed source and runs only in RevenueCat's cloud. RevenueDot is a self-hostable server that works with the RevenueCat SDK, so self-hosting means running RevenueDot with Docker and Postgres on your own servers, in the region you choose.

What is a cheaper alternative to RevenueCat's pricing?

RevenueCat charges 1% of tracked revenue above $2,500 a month, which is $475 a month for an app making $50,000 a month. Self-hosted RevenueDot has no revenue share: you pay only for your own servers. RevenueDot Cloud is free up to $10,000 a month; the planned paid plan is 0.5% above that, capped at $999 a month.

Do I have to change my app to switch?

One line. Set the SDK's proxy URL to your RevenueDot server before configure. Offerings, purchases, restores, entitlements and customer info work as before. With the stock SDK you also turn off its response-signature check, or you use a RevenueDot SDK fork, which verifies RevenueDot's signatures.

How do I migrate from RevenueCat without losing subscribers?

Run the importer with a read-only RevenueCat secret key to copy your catalog, SDK keys, customers and purchase history. Point App Store and Google Play notifications at RevenueDot, which forwards each one to RevenueCat so both systems stay current. Then ship the one-line proxy change. Current access is imported, so no subscriber loses access on switch day.

How is RevenueDot tested?

Every endpoint is checked against real RevenueCat responses, the unmodified RevenueCat iOS SDK runs a full purchase against it on the iPhone simulator, and webhooks are delivered live to 17 example backends. For a switch with no risk, run RevenueDot side by side with RevenueCat: it forwards every store notification to RevenueCat, so you can compare both before you cut over.

What license is RevenueDot under?

The server and dashboard are AGPL-3.0. The SDK forks, CLI, MCP server and agent skills are MIT. The ee/ folder (enterprise features such as SSO and audit logs) is under the RevenueDot Enterprise License.

Is RevenueDot affiliated with RevenueCat?

No. RevenueDot is an independent project. It is not affiliated with, endorsed by or sponsored by RevenueCat, Inc. The name RevenueCat is used only to describe compatibility with RevenueCat's MIT-licensed SDKs.

Get started

Own your purchase backend.

Self-host RevenueDot free with Docker and Postgres, or move an existing RevenueCat app with one line of code.