Your data stays yours
Customers, transactions, and revenue live in your own database. No third party holds your subscriber list, and nobody needs to be trusted with it.
RevFox
Free forever Β· Open source Β· Self-hosted
Others take 1% RevFox takes 0%
RevFox verifies App Store and Google Play purchases, sends subscription lifecycle events, and charts your revenue. It's free, open source, and runs on your own servers.
| Customer ID | Store Item | Purchased | Expires | Status | Revenue | Type |
|---|---|---|---|---|---|---|
| πΊπΈ | pro_annual |
2 minutes ago | in 1 year | Renews | $59.99 | New Sub |
| π©πͺ | pro_monthly |
14 minutes ago | in 1 month | Renews | $7.99 | Renewal |
| πΉπ· | lifetime |
1 hour ago | Never | β | $129.99 | One-time |
| π¬π§ | pro_monthly |
3 hours ago | in 1 month | Cancelled | $9.99 | Renewal |
The real price of "just 1%"
Hosted purchase services charge their 1% on gross revenue: the price your customer paid, before VAT and before Apple and Google take 15β30%. Measured against the money that actually reaches you, the fee nearly doubles.
RevFox charges nothing. You run it, so you keep it.
Side by side
Customers, transactions, and revenue live in your own database. No third party holds your subscriber list, and nobody needs to be trusted with it.
RevFox runs next to your backend, on your infrastructure. Someone else's outage can't stop your users from unlocking what they paid for.
Moving from RevenueCat? Import your customers and full transaction history from a CSV export. Your charts start complete on day one.
Verify receipts, receive lifecycle events, and see your revenue. No upsells, no tiers, no surprise invoice when you grow.
What you get
Purchases are checked with Apple and Google from your backend, and store notifications keep every subscription current.
Revenue, MRR, subscriptions, trials, churn, and a prediction explorer for cohort lifetime value.
One timeline per customer: purchases, renewals, refunds, attributes, and their store sync status.
Send normalized subscription events to your backend, and pull Apple Search Ads attribution into each customer.
Map store products to the benefits they unlock, so your app asks one question: does this customer have pro?
One overview across every project, so a studio with ten apps sees its whole business at a glance.
How it works
The SDK runs the store purchase and sends the transaction to your RevFox server.
RevFox confirms it with Apple or Google and records it as one consistent event.
The app gets the customer's benefits back; your dashboard and webhooks update at once.
SDKs
Native SDKs for iOS and Android, and a Flutter plugin on top of them. MIT licensed, so they ship inside any app.
import RevFox
try RevFox.shared.initialize(
RevFoxConfiguration(
apiKey: "your-api-key",
baseURL: URL(string: "https://revfox.your-domain.com")!
)
)
let products = try await RevFox.shared.fetchProducts(ids: ["pro_monthly"])
let result = try await RevFox.shared.purchase(products[0])
import com.revfox.RevFox
import com.revfox.RevFoxConfiguration
RevFox.shared.initialize(
context,
RevFoxConfiguration(
apiKey = "your-api-key",
baseUrl = "https://revfox.your-domain.com",
),
)
val products = RevFox.shared.fetchProducts(listOf("pro"))
val result = RevFox.shared.purchase(activity, products[0])
import 'package:revfox/revfox.dart';
await RevFox.configure(
RevFoxConfiguration(
apiKey: 'your-api-key',
baseUrl: 'https://revfox.your-domain.com',
),
);
final package = await RevFox.getPackage('default');
final result = await RevFox.purchase(package.products.first);
Built in the open
Run RevFox on your own server, read every line, and keep subscription data in your own database.
$ git clone https://github.com/revfox-dev/revfox
$ cd revfox
$ make build
ready RevFox built successfully
Free and open source. Try the live demo, then self-host it in an afternoon.