Skip to content
Agung Smaraputra
All Projects

CVD (Curriculum Vidae)

Video resume app on iOS App Store and Google Play

React NativeReact Native (0.72-0.74)ExpoExpo (49-51)TypeScriptFFmpeg KitIMG.LY Video Editor SDKRedux SagaXcodeNativeWindi18nextStripeApple IAPPusherLaravelLaravel 10

Overview

CVD is a cross-platform mobile app that lets job seekers create and share professional video resumes. Built for Osky Interactive (Australia) and deployed to both the iOS App Store and Google Play. I served as the primary mobile developer, handling architecture, core implementation, and store submissions across both platforms with React Native and Expo.

Challenge

The app needed to process video entirely on-device to avoid expensive server-side transcoding costs, while keeping file sizes small enough for mobile uploads. It also required dual payment integration: Stripe for web purchases and Apple In-App Purchases for iOS, since Apple mandates IAP for digital goods sold within apps. The app had to pass both App Store and Google Play review processes, each with their own requirements for subscription handling, privacy disclosures, and UI standards. The Android version additionally required localization for international markets.

Approach

Used FFmpeg Kit for on-device video compression and editing, keeping processing local to the device. Added IMG.LY Video Editor SDK on Android for a richer editing experience with filters, overlays, stickers, and text composition. Built the payment layer to detect the platform context and route to the appropriate gateway (Stripe or Apple IAP), with backend receipt validation to prevent subscription fraud. Implemented i18next localization supporting 5 languages (English, French, German, Italian, Spanish). Went through iterative TestFlight and internal testing cycles before final store submissions on both platforms.

Tech Stack

Layer Technology
Framework React Native (0.72-0.74) + Expo SDK (49-51)
State Management Redux Saga
Language TypeScript
Video Processing FFmpeg Kit, IMG.LY Video Editor SDK
Styling NativeWind
Localization i18next (5 languages)
Real-time Pusher WebSocket
Payments Stripe + Apple IAP
Backend Laravel 10

Key Implementation Details

  • On-device video compression using FFmpeg Kit, rendering final videos in 1-1.5 minutes with support for trim, merge, filters, and overlays without server round-trips
  • IMG.LY Video Editor SDK integration on Android with selective module inclusion (text, filters, stickers, overlays, trim, audio composition)
  • Dual payment flow: Stripe for web-originated subscriptions, Apple IAP for in-app purchases, with backend receipt validation for both
  • Localized in 5 languages (English, French, German, Italian, Spanish) via i18next
  • Offline-first architecture with local video storage so users can record and edit without a network connection
  • Real-time updates via Pusher WebSocket
  • Separate iOS and Android codebases optimized per platform, sharing the same backend API

Outcome

Deployed to both the iOS App Store (Australian market) and Google Play. Rated 4.5 out of 5 stars, with user reviews citing the app helped them land a job. Passed review requirements on both platforms for subscription handling, privacy disclosures, and UI standards. The app renders final video resumes on-device in 1-1.5 minutes, eliminating server-side transcoding costs entirely and reducing the infrastructure footprint to a single API backend.