One master timeline combining user-facing launch moments with the internal product, payment, legal, data and support deadlines needed to make Ultra work.
Ultra should not feel like ROXFIT is taking anything away. The existing app stays free, while Ultra becomes the premium layer for athletes who want deeper race intelligence, competition, pacing insight and training insight. We use the end-of-May race spike to capture intent, but avoid taking payment months before users can access the product.
Launch moments are what users see. Internal deadlines are what must be ready before those moments can happen safely. The biggest risk is not the wait between pre-registration and payment; it is taking payment before Stripe, RevenueCat, legal, support and entitlement states are fully ready.
Before pre-registration: landing page, in-app banners, waitlist capture, queue logic, Pushwoosh sync, consent and analytics. Before September payment: Stripe, RevenueCat, eligibility logic, legal terms, refund/cancellation policy, support tooling and live dashboards.
How to use this: filter by tag to create team-specific views. The most important internal principle is: RevenueCat owns entitlements, Stripe/App Store/Google Play are payment sources, and ROXFIT backend owns queue, eligibility and user state.