Global Media App
Built a Cross Platform Mobile Experience for a Legacy Global Media Brand in Record Time. Clients: Fueled/Christianity Today
Built a Cross Platform Mobile Experience for a Legacy Global Media Brand in Record Time. Clients: Fueled/Christianity Today

I was engaged by Fueled (NY/London) to build Christianity Today's first-ever mobile app: a cross-platform Flutter build (iOS + Android) bringing 70+ years of journalism and a global audience to mobile. I guided a global team of 15+ owning product and design strategy, technical specifications, App Store submission and client handoff. I was the connective tissue between CT's executive team and Fueled's engineers, design, QA, and growth experts across a multi-month, milestone-based build.
We transformed as a team over these 6 month into an AI native organization across all phases of strategy, design, implementation, and stakeholder communication. As PM I leveraged AI to build features with in-depth technical guidance and executable code.
Click to Download CT Mobile App
Stack: Flutter (Dart, CLEAN architecture, BLoC) · FastAPI · PostgreSQL · Redis · WordPress VIP · Piano · Algolia · Coral · Megaphone · Firebase · Google Ad Manager · Cursor · Claude Code · Linear · Notion · Figma · Sentry
CT had decades of editorial weight, a mature web subscription business and a consistent content engine but no first-class mobile experience. I was accountable for creating and delivering a first class mobile experience that held the entirety of CTs offerings including articles, magazines, podcasts, videos, a daily briefing, and member-gated content, all plugged into their existing identity, paywall, search, and CMS infrastructure. We were able to pull this off with zero content migration. Everything resolves live through CT's existing stack.
I was tasked with taking a complex content-rich web experience and producing a personalized high-value mobile experience for users. This required thoughtful UX strategy and thorough technical design. CTs web-based editorial platform is housed in Wordpress and we had to decide how to provide over 70+ years of content stored in wordrpress for a mobile experience that felt native. Rather than have the Flutter app talk directly to WordPress and a half-dozen third-party services, we built a FastAPI BFF that sits in the middle as the complexity sink. The app talks to one clean API; the BFF fetches from the upstreams, normalizes messy payloads, enforces entitlements, and caches. Paywall, search, images, comments, deep linking all resolved server-side, to keep the client thin so we optimize the experience without constantly shipping a new build.
The rest of the system, briefly:
The app itself is four tabs, each with a distinct job: Today provides the daily habit — briefing, devotional, continue-reading), Media (podcasts and video), Explore (search and discovery), and My CT (account, bookmarks, preferences).
One issue we faced was in App Store compliance and the nature of revenue generation for the app. Our subscribe flow originally loaded CT's web checkout in an in-app webview. My compliance audit flagged this as a critical blocker under Guideline 3.1.1 and Apple rejected the app for exactly that reason 26 days later. I proposed, that if argued correctly, CT would qualify as a Reader App (Guideline 3.1.3a), so it can send users to its own web checkout and could bypass the hefty subscription tax Apple places on apps. The reasoning I documented for the client:
The app was approved by Apple without a rebuild and cleared by Google on the first submission cycle.