<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://cross-deck.com/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/pricing/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/docs/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/docs/create-a-project/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/docs/api-keys/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/docs/connect-stripe/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-monetize-an-ios-app-without-stitching-tools-together/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/crossdeck-vs-revenuecat-which-is-better-for-app-subscriptions-and-analytics/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/crossdeck-vs-telemetrydeck-when-analytics-alone-is-not-enough/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/revenuecat-alternative-subscription-infrastructure-with-product-analytics-built-in/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/telemetrydeck-alternative-privacy-friendly-analytics-connected-to-revenue/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-is-an-entitlement-in-app-subscriptions/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/products-vs-entitlements-the-simplest-way-to-manage-paid-app-access/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-track-trial-to-paid-conversion-in-a-mobile-app/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-see-app-revenue-in-real-time-before-app-store-connect-catches-up/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-connect-stripe-web-subscriptions-to-ios-app-access/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-use-one-payment-relationship-across-ios-android-and-web/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/storekit-2-subscription-analytics-what-developers-should-track/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-validate-app-store-purchases-without-building-subscription-infrastructure/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-apple-p8-keys-are-and-why-subscription-platforms-need-them/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-map-stripe-products-to-mobile-app-entitlements/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/why-your-app-analytics-should-connect-to-revenue-events/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/the-app-subscription-dashboard-indie-developers-actually-need/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-reduce-subscription-churn-by-understanding-product-behavior/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/billing-retry-and-grace-period-explained-for-ios-subscriptions/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-to-track-before-launching-a-paid-ios-app/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-instrument-a-swiftui-app-for-telemetry-and-paid-access/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-instrument-a-next-js-app-for-subscriptions-and-entitlement-checks/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-create-a-subscription-app-stack-stripe-app-store-analytics-entitlements/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/app-monetization-metrics-every-indie-developer-should-watch/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/why-app-store-revenue-reports-are-not-enough-for-product-decisions/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-build-a-privacy-first-analytics-strategy-for-paid-apps/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-debug-a-subscription-user-who-should-have-pro-access/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/sandbox-vs-production-for-app-subscriptions-how-to-test-safely/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-prevent-sandbox-purchases-from-polluting-production-revenue/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-is-a-payment-rail-in-app-monetization/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-track-feature-adoption-and-revenue-in-the-same-dashboard/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-identify-which-app-features-drive-paid-conversion/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/revenuecat-products-entitlements-and-offerings-a-plain-english-guide/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/telemetrydeck-signals-explained-how-product-events-become-growth-insights/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-use-ai-prompts-to-install-an-app-analytics-sdk/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-ai-coding-tools-should-install-subscription-analytics-safely/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-monitor-failed-payments-and-billing-retry-in-your-app/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-measure-onboarding-impact-on-subscription-revenue/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-calculate-and-improve-net-revenue-retention-for-app-subscriptions/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-compare-ios-android-and-web-revenue-in-one-place/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-build-a-subscription-analytics-dashboard-from-scratch-and-why-not-to/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/app-store-server-notifications-v2-explained-for-founders/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/stripe-webhooks-for-app-subscriptions-what-founders-need-to-know/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/google-play-subscription-events-explained-for-app-founders/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-is-an-app-revenue-source-of-truth/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-design-paid-features-that-map-cleanly-to-entitlements/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-prepare-your-app-for-subscription-pricing-experiments/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-track-refunds-and-understand-why-users-ask-for-them/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-create-a-paid-app-launch-checklist-for-developers/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/the-complete-guide-to-app-revenue-intelligence/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-capture-javascript-errors-without-installing-a-second-sdk/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/sentry-alternative-for-saas-founders-who-need-customer-context/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-know-when-a-paying-customer-hit-a-checkout-error/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-are-breadcrumbs-in-error-monitoring/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-set-up-global-error-handlers-in-a-web-app-without-double-reporting/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/source-maps-for-production-javascript-errors-how-to-use-them-safely/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-capture-network-failures-and-failed-api-calls-in-your-app/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-set-up-slack-and-email-alerts-for-production-errors-without-drowning-your-team/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/what-plain-english-error-summaries-are-and-why-founders-need-them/</loc>
  </url>
  <url>
    <loc>https://cross-deck.com/blog/how-to-capture-ios-app-errors-and-connect-them-to-subscription-state/</loc>
  </url>
</urlset>