Boom, a video-first competition platform, replaced their JavaScript-based video uploader with a native solution using Expo Modules and AWS S3 multipart uploads. The original uploader failed when the app was backgrounded and couldn't recover from network interruptions. The new pipeline uses a SharedObject-based UploadTask that handles chunking, parallel part uploads, retries, and background execution natively on iOS. The result was a ~20% improvement in median upload time for 100-300MB clips and elimination of stuck uploads. The post includes TypeScript interface definitions, Swift native module code, and a React Native integration example.

4m read timeFrom expo.dev
Post cover image
Table of contents
The challenge: large video uploads on mobileThe goal: fast and reliable mobile video uploadsThe solution: native background uploads with Expo ModulesReact Native integration exampleResults: faster, smaller, more reliable uploadsConclusion: why Expo Modules are the best way to add native uploads

Sort: