Levels.fyi's Over-The-Air Mobile Updates
Levels.fyi's Over-The-Air Mobile Updates
Levels.fyi recently transitioned their mobile app's Over-The-Air (OTA) update system from Microsoft AppCenter (CodePush) to a self-hosted, serverless architecture. With the impending shutdown of AppCenter, they needed a reliable, cost-effective alternative. Managed services like Expo Application Services (EAS) proved too expensive for their scale, prompting them to build a solution using the open-source Expo Updates protocol.
Their new architecture leverages AWS services to optimize for scalability, performance, and cost. By moving to a serverless model, they utilize S3 for storage, DynamoDB for metadata, and CloudFront for caching. A key optimization involves generating update manifests at build time rather than on-the-fly, significantly reducing response latency. This approach allows them to push features and fixes instantly to users without the delays associated with app store reviews, maintaining high user engagement and stickiness.
Key Concepts
- OTA Updates Strategy: Bypassing app store delays to ship features and fixes directly to users instantly.
- Serverless Migration: Moving from managed services to a custom AWS architecture (fargate/S3/DynamoDB) to reduce costs (~7% of total AWS spend vs EAS pricing).
- Latency Optimization: Pre-generating Expo Update manifests during the build process instead of at runtime to speed up client update checks.
- Scalable Infrastructure: Using S3 and CloudFront ensures the system can handle traffic spikes and storage growth without manual intervention.
- Vendor Independence: Self-hosting the update protocol protects critical infrastructure from third-party service shutdowns (like AppCenter).