01 · Idea and goal
The idea was to put a home rehabilitation program into an app: people recover from injuries and pain not in expensive in-person sessions but at home, following video courses with a clear walkthrough of every exercise. From warm-ups to workouts with everyday equipment — bottles and towels, resistance bands and a fitball, suspension straps, Pilates gear — so you can train without a gym.
The goal: build an app with a library of video courses, a convenient player, an auto-renewing subscription through the App Store and Google Play, and regular content updates. A key requirement: the content team must be able to add and change courses and videos on their own, through a separate admin panel, without releases and without developers.



02 · What was hard
- One subscription across two app stores. Purchases go through the App Store and Google Play, but content access has to be checked the same way on both platforms and restored after a reinstall. To avoid reconciling this by hand, subscription statuses are handled by RevenueCat on top of native billing — the app simply asks "is there active access?" instead of parsing each platform's receipts.
- Video without our own video server. The courses are dozens of clips that have to be delivered and played reliably, including on weak connections and in full-screen mode with rotation. The solution: store and stream the videos on Vimeo and embed a player with controls and full-screen mode in the app. No need to set up and maintain our own video storage.
- Content gating. Some materials are free; full access requires a subscription. We had to lock paid content properly, show the subscription screen and "Restore purchase" correctly, prevent anyone from bypassing payment — and still not annoy the user at every step.
- Content changes without releases. The course list, descriptions, and video and cover links live in Firebase and are updated through a separate web admin panel. When the content team adds a new course, it appears in the app for everyone right away — no new build, no app store submission.
- Notifications and retention. Push notifications via Firebase Cloud Messaging bring people back to their workouts and announce new courses — a key retention tool for a subscription product.
A subscription across two app stores, video on Vimeo and content that changes without releases through a web admin panel — three decisions that keep a subscription video product cheap to maintain.
03 · How the app works
Courses and videos
The home screen lists the courses: a warm-up, the core workout and programs with different equipment. Each course opens into a set of exercises, and each exercise is a video with a short description and "previous / next" navigation. The player supports full-screen mode with rotation, and videos load from Vimeo.


Subscription
Full access to the courses comes with an auto-renewing subscription. The subscription screen shows the plans, clear auto-renewal terms, links to the privacy policy and terms, and a button to restore purchases. Payment goes through the App Store or Google Play, and the app checks for active access via RevenueCat.
04 · Result
The result is a complete subscription app: onboarding, a library of video courses, a player with full-screen mode, subscription purchase and restore, and push notifications. iOS and Android builds come from a shared Flutter codebase, and the content team manages courses through a separate web admin panel on Firebase.
Architecturally, the product runs on managed services: Firebase for course data, users and notifications; Vimeo for video storage and streaming; RevenueCat on top of the App Store and Google Play for subscriptions and access rights. There's no custom server or video storage, so the product is cheap to maintain, and new content appears without app store releases.
05 · What's next
The product is moving toward personalized programs: courses matched to the user's goal and condition, progress and workout history, habit-building reminders and new themed courses. Since content lives in Firebase and is managed through the web admin panel, the library grows without releases, and new screens ship as regular app updates.
Flutter + Firebase + Vimeo + RevenueCat is a standard, proven foundation for subscription content apps: it scales easily to new courses, languages and platforms without rewriting the core.