Crossdeck Blog

Field guides for teams building subscription apps.

Comparisons, implementation notes, and revenue explainers for teams shipping across Apple, Google Play, Stripe, and the web.

110 articles · Comparisons, guides, and explainers · Apple, Google Play, Stripe, and web

The guides most teams start with

A practical place to begin if you are comparing vendors, mapping entitlements, or trying to unify revenue across multiple rails.

Browse by job to be done

Donor journey and supporter attribution

Guides to stitching every supporter touch — email, web, SMS, and the gift — to one donor timeline, so you can see what actually led to a donation.

All 110 articles

Search the library, filter by topic, and jump straight into the guide you need.

Implementation

The complete guide to StoreKit 2

A complete StoreKit 2 tutorial for Swift: load products, verify transactions, read currentEntitlements, handle subscriptions, and why you need a server.

35 min read Read guide
Revenue

What is an app revenue source of truth?

Understand what an app revenue source of truth is and why subscription apps need verified events, entitlements, and customer context instead of disconnected reports.

6 min read Read guide
Errors

I watched Apple review my app — live

A solo developer in South Africa with zero TestFlight testers watched a human-shaped session walk through an iOS build that existed nowhere but Apple's review pipeline. An honest first-person account of observing an anonymous review session — and never identifying a reviewer.

7 min read Read guide
Errors

App Store rejection forensics: a step-by-step guide

App Store rejection: what to do, step by step. A tutorial for debugging an Apple review rejection you cannot reproduce — filter the review window, open the anonymous session, cross-reference Issues, fix the real failure, and resubmit with evidence.

7 min read Read guide
Monitoring

How to monitor MRR in real time

How to monitor MRR: the five movements that move it, how to track it live without a dashboard, and why a dip should arrive with its cause.

19 min read Read guide
Monitoring

Run your business from your phone

Run your business from your phone: check revenue, errors, and customers live. The free mobile options, and one identity-joined view that comes to you.

20 min read Read guide
Monitoring

Get Stripe error alerts in Telegram

Get Stripe error alerts in Telegram: the free DIY setup (Bot API, Zapier), its limits, and the Crossdeck bot that adds revenue and customer alerts too.

17 min read Read guide
Metrics

Embed analytics in your app UI

How to embed analytics in your app using an external provider's API — render metric widgets in your own UI, proxied through your backend, no data pipeline.

7 min read Read guide
Implementation

Headless analytics API, explained

A headless analytics API returns data over a secret key so you own the UI. How it differs from an embedded dashboard, and when to use it.

7 min read Read guide
Metrics

Subscription analytics API vs DIY

Subscription analytics API vs building your own: you can replicate a metric, but not the identity that joins revenue, errors, and read-cost.

7 min read Read guide
Read cost

Database read-cost API, explained

A database read-cost API returns read-cost by operation and by customer, joined to revenue — so you see margin per paying customer, not just a bill.

7 min read Read guide
Errors

Subscription errors API for your stack

A subscription errors API returns who an issue hit — including how many affected users pay you — so you rank bugs by revenue at risk, not raw error counts.

7 min read Read guide
Revenue

App revenue API for your own backend

An app revenue API lets your backend pull MRR, revenue by rail, errors, and read-cost as aggregates — secret-key auth, no charge rows, no customer names.

8 min read Read guide
Revenue

Customer revenue and usage API

A customer revenue and usage API returns one customer's revenue, entitlements, and read-cost in a single call — the cross-match, joined by identity.

7 min read Read guide