Your backend and GitHub, on the same chart as revenue
Post signups, purchases, errors, deploys and push campaigns from your own backend, or point a GitHub webhook at WhyItChanged. Deploys and releases become markers on the timeline, and errors from users who already paid you are listed first.
What WhyItChanged pulls from Backend events and GitHub
- Signups, create taps, purchases, failed purchases, errors and crashes
- Deploys, releases and push campaigns as timeline markers
- GitHub deployments, published releases and default-branch pushes
Questions it answers
- Did yesterday's deploy break purchases?
- Which errors are hitting paying users?
Access it needs
Nothing to create. Each app gets an ingest key and secret; requests are verified with a bearer token or an HMAC signature. Credentials are encrypted at rest and used read-only. How keys are handled.
Set it up
- Open your app's Connectors → Backend events to get the ingest URL and secret.
- POST events as JSON (see the API docs), or add a GitHub webhook with the secret shown.
Full reference: Events API docs.

Questions
Is there a rate limit?
Up to 500 events and 1 MB per request. Events with an id are stored once, so retries are safe.
Guides
Works well with
App Store Connect
Pull App Store Connect downloads, proceeds and impressions by source into one timeline with your releases, ad spend and RevenueCat revenue.
RevenueCat
Bring RevenueCat revenue and per-purchase attribution next to App Store Connect, ad spend and releases, and catch the day attribution goes silent.
Google Ads
Join Google Ads cost, clicks and conversions with App Store and RevenueCat revenue. Budget and bid changes show up as markers on your timeline.
See why your numbers moved.
Start freeFree for 1 app · No card