Purchase abstraction SDK
One purchase + restore API across StoreKit, Play Billing, Stripe and web. Write it once — never branch on platform again.
EntitleHub sits between your app and every billing system — Apple, Google, Stripe, web — and turns the messy question of SKUs and platforms into one clean answer your code can trust.
Raw product IDs multiply with every platform and price change. Entitlements don't — you check one durable capability, and EntitleHub owns the mapping underneath.
// which of the 14 SKUs did they buy? if (sku === "com.app.pro.yearly" || sku === "pro_annual_v2" || sku === "price_1P…Zk" || sku === "plan_pro_web") { unlockPro() // …and the grandfathered ones? }
// ask what they're entitled to const pro = await entitlehub.check( user.id, "pro" ) if (pro.isActive) unlockPro() // ↳ works on iOS, Android, Stripe & web
Six subsystems, one source of truth. Parity on the fundamentals is table stakes — we obsess over the details around them.
One purchase + restore API across StoreKit, Play Billing, Stripe and web. Write it once — never branch on platform again.
The source of truth. Map any SKU, plan or platform to durable entitlements and answer check(user, "pro") authoritatively.
One subscriber, one status — consistent across iOS, Android, web and reinstalls.
Validation that survives reinstalls and resists client spoofing. Renewals, grace periods, billing retries and refunds tracked for you.
Emit new-sub, renewal, cancel, refund and trial-conversion events straight to your backend and analytics.
MRR, churn, LTV, trial conversion and cohorts — without wiring up a data pipeline.
Most tools map one SKU to one flag and call it done. Real pricing is messier — bundles, seats, add-ons, promos, cross-platform grants. EntitleHub models all of it declaratively, so your app keeps asking one simple question.
Explore the modelGrant many entitlements from one purchase — pro unlocks pro, sync and priority-support together.
Model team plans with per-seat entitlements and shared org-level access.
Stack à-la-carte upgrades on top of a base plan without collapsing your SKU matrix.
Introductory offers, win-back promos and trial conversions resolve to the right state automatically.
Bought on iOS, entitled on web. Honor purchases across platforms with rules you control.
Grant, revoke or extend any entitlement by hand for support cases — fully audited.
RevenueCat is a closed box. EntitleHub ships an open-source core you can run inside your own VPC — no third party sitting between you and your money. Start on our cloud, move in-house whenever you like. Same SDK, same API.
$ docker run entitlehub/engine \ -e DATABASE_URL=postgres://… \ -p 8080:8080 ✓ engine up · migrations applied ✓ listening on :8080 # your data never leaves the box
We keep RevenueCat's familiar, no-friction model — free under a threshold, then a small percentage — so switching costs you nothing. The difference is what you get.
up to $3k tracked revenue / mo
Everything to ship: full SDK, entitlements, sync and webhooks.
of tracked revenue past $3k
Scales with you. The same simple percentage RevenueCat charges — no surprises.
flat / year · your infrastructure
Run the open-source engine on your own servers. Your revenue data never leaves your VPC.
Install the SDK, map your first entitlement, and check it in under five minutes.