The product challenge
The product spans social publishing and paid learning. Feed pagination, large media uploads, messaging and course/event access need to work together without making the experience feel like separate products.
Worked across the Flutter client and Laravel-backed product flows, including social features, media delivery, messaging, learning content and payment integrations.
Implementation & engineering decisions
- 01Implemented feed and creator experiences for posts, reels, profiles, sharing and direct messaging.
- 02Used cursor-based feed pagination to support continued browsing without relying on fragile page-number offsets.
- 03Integrated resumable Bunny Stream TUS uploads for large video files and connected course/video playback flows.
- 04Connected Stripe checkout, Apple in-app purchase handling, live sessions through 100ms, and Reverb/FCM messaging paths.
Where the implementation needed care
Architecture
Flutter clients communicate with Laravel APIs. Video upload/playback is handled through Bunny Stream, live sessions use 100ms, Stripe supports checkout, and messaging combines Reverb events with FCM delivery.
Key challenge
Coordinate social feeds, media-heavy publishing, paid learning and messaging while respecting different upload and payment lifecycles.
Delivered
Flutter social/learning experiences, Laravel-backed feature integration, video upload/playback flows, live-session integration and payment pathways.