← all cases · Fitness Home & Away

Video workouts for recovery — by subscription.

Fitness Home & Away is a mobile app for rehabilitation workouts: exercise courses for recovery and pain relief that you can do at home with everyday equipment. Every exercise is a video with a walkthrough; courses are updated regularly, and full access comes with an auto-renewing subscription. Videos are hosted on Vimeo, subscriptions run through the app stores and RevenueCat, and the content team adds new courses through a separate web admin panel — no developers involved.

fitness · rehabilitation stack · Flutter + Firebase release · iOS + Android

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.

Exercise screen: video player with a walkthrough and exercise navigation
Exercise screen: a video walkthrough, buttons to move between exercises and a short explanation — clips stream from Vimeo, and the player supports full-screen mode

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.

Subscription screen with plans and auto-renewal
Subscription screen: plans, auto-renewal terms, restore purchases — billing runs through the app stores, and content access is verified via RevenueCat

04 · Result

Content Video coursesexercises with walkthroughs
Monetization SubscriptionApp Store + Google Play · RevenueCat
Management Web admincourses change without releases
Platforms iOS + Androidone Flutter codebase

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.

Similar project

Need a subscription video app?

Courses, workouts, educational videos with a subscription and an admin panel for content — with Flutter, Firebase, Vimeo and RevenueCat this comes together quickly and stays cheap to maintain, with no custom server or video storage. In your first message, include a link to this case and describe your idea — we'll send you an idea review with the architecture and an estimate within 24 hours.