Customer Background
United Through Reading (UTR) is a nonprofit born from a simple, heartfelt idea: give deployed parents a way to share bedtime stories even when they’re halfway around the world. Its mobile app lets service members and veterans record and send story-time videos on demand. Since launch, UTR has reached over 3.3 million military family members, fostering literacy, emotional well-being, and a real sense of connection despite the miles between them.
Challenges
UTR’s mobile app was widely adopted, but its original Xamarin-based codebase posed growing risks as the framework approached end-of-life. The organization needed a modern, stable, and scalable solution without disrupting the app’s core functionality or user experience. As we began discovery, several technical and strategic challenges surfaced:
- Framework end-of-life: Xamarin reached end of support on 1 May 2024. Continuing with an unsupported stack risked app-store rejections and security vulnerabilities.
- Maintain core functionality: All existing offline recording, secure video storage, and e-book-library features had to work exactly the same after migration.
- Zero downtime: Military parents depend on the app daily; any disruption in story-time delivery was unacceptable.
- Potential instability flagged early: UTR initially explored migrating to .NET MAUI. During our technical discovery, we identified that its development tools were still evolving, intermittent build or runtime issues were common, and its limited plugin ecosystem could slow down future releases.
Solutions
Consultative proof-of-concept: React Native
We ran a side-by-side proof-of-concept, benchmarking .NET MAUI against React Native for build stability, package ecosystem, and future talent availability. The data showed React Native offered faster iteration, broader community support, and a consistent experience across iOS and Android. Following our consultation and technical evaluation, UTR chose to proceed with this approach.
Incremental front-end migration
- Code audit and abstraction: Separated business logic from UI to enable reuse.
- Component re-engineering: Rebuilt screens with React Native components while matching the original look-and-feel.
- Consistent iOS and Android experience: Added small platform-specific tweaks while keeping one shared logic layer for easier upkeep.
- Native bridges: Integrated existing Swift/Kotlin video-capture modules and Firebase/AWS services.
- Offline-first workflow: Preserved local-queue logic so videos recorded without connectivity upload automatically once online.
- Continuous regression testing: Implemented automated testing to ensure consistent functionality throughout phased releases.
- Continuous regression testing: Conducted regression testing to ensure optimum performance throughout phased releases.
Successful app migration leads to platform-wide partnership
The smooth mobile app migration built trust that led UTR to partner with us on their web portal and backend systems. Current upgrades include:
- AWS security foundation: Implemented baseline security controls that were previously missing.
- AWS component migration: Moved legacy services to modern, best-practice equivalents.
- Database server upgrade: Raised the engine version for better performance and easier maintenance.
- Media-processing pipeline: Videos stored in Amazon S3 are processed by AWS MediaConvert, which standardizes them to a fixed resolution and shrinks file sizes by up to 90% without any perceptible loss in quality. The workflow then adjusts frame rates as needed and applies watermark overlays during transcoding.
- Planned enhancements: In the next phase, we are going to introduce push notifications alongside other improvements to further enhance the user experience.