Inspiration

The TV is the biggest screen in most homes, but home-workout apps are built for phones. Following a workout on a 6-inch screen propped against a water bottle is awkward, and phone apps are hard to use from a few metres away. We wanted a gym that lives on the TV and is driven entirely by the remote you already hold.

What it does

Pulse Room is a follow-along workout app for Fire TV.

  • 853-exercise library. Each exercise has a looping video demo, step-by-step instructions and tags. It's available in English, Spanish, French, German and Portuguese.
  • Search and filters. Search with the on-screen keyboard and filter by level, goal, equipment, body part and type (reps or time).
  • Follow-along player. The exercise video plays next to a large ring timer with work, rest and get-ready phases. Voice cues and sounds mean you never have to look at the screen, and a boxing bell sounds when you finish.
  • Workouts. There are 8 curated workouts. Pro users can also build their own with "Add to workout" from any exercise, and everyone can save favourites.
  • Smart Coach. Pick a duration, focus, equipment and level. The coach builds a timed circuit from the library, sized to your minutes and favouring muscles you didn't train in your last sessions.
  • Timers. Tabata, EMOM, AMRAP, intervals and stopwatch.
  • Onboarding. Four quick questions (goal, level, equipment, time) personalise Home and the coach.

Business model: free download plus a one-time Pro unlock through Amazon In-App Purchasing.

  • Free: 45 exercises, 3 workouts, 1 coach plan per day, Tabata and stopwatch.
  • Pro: everything.

Locked exercises still show a blurred, moving preview of their video under a lock, so users can see what they would get.

How we built it

  • Native Android app in Kotlin with Jetpack Compose, targeting Fire OS 6+.
  • One focus component for the remote. Every selectable element shares it: a scale and a white ring when focused. Each screen remembers which item was focused, so Back always returns you to where you were. We replaced Compose's TV "pivot" scrolling with a spec that keeps the focused card fully visible with a margin.
  • Player. Built on Media3 ExoPlayer with a 400 MB disk cache. A small state machine drives the phases. The player is published through a MediaSession, so the remote's media keys control the workout.
  • Pro preview. The blurred preview is made by Media3's GPU effect pipeline: each frame is shrunk and given a Gaussian blur. Compose's blur needs Android 12, so it couldn't do this on Fire OS.
  • Media delivery. The library lives in a private Cloudflare R2 bucket. A small Cloudflare Worker serves it through an R2 binding, with range requests (for video seeking) and edge caching, so no storage credentials ship in the APK.
  • Library data. It's exported from our existing exercise database into per-language JSON bundled with the app, so the app opens in about 1.2 s on a Fire TV Stick.
  • Billing. Amazon Appstore SDK for the Pro entitlement.

Challenges we ran into

  • Focus and scrolling on TV. The default TV scrolling pushed the hero off screen, and the last card in a row ended up flush against the edge. We wrote a custom bring-into-view spec and explicit focus routing for the side navigation rail.
  • Video surfaces aren't Compose content. A SurfaceView isn't clipped by Compose, and on Fire TV it goes to a hardware video plane whose colours didn't match the UI, so the white clips showed a visible frame. Rendering the player into a TextureView fixed both, and the blurred Pro preview runs inside the video pipeline itself.
  • Text input inside dialogs. The Fire TV system keyboard never attached to a text field inside a Compose dialog, so code entry uses the same D-pad keypad as search.
  • Media without leaking keys. We first used a signing backend. Moving to a Worker with an R2 binding removed the need for a server and made the app independent of any machine.

Accomplishments that we're proud of

  • The whole app is usable with only the D-pad, OK and Back, and focus is never lost.
  • An 853-exercise video library feels instant on an entry-level Fire TV Stick.
  • A complete product loop: onboarding, personalised home, training, and a paywall wired to Amazon IAP.

What we learned

Designing for the 10-foot experience is mostly about focus: where it starts, where it goes back to, and making it obvious at a glance. Fire TV's Media3 and Appstore SDK integrations made the player and monetisation straightforward once focus was right.

What's next for Pulse Room

  • Publish on the Amazon Appstore with the Pro IAP live.
  • Household profiles, so each person has their own history and coach.
  • Deeper Alexa integration for hands-free control during workouts.
  • More languages, and workout programs that span several weeks.

Built With

  • amazon-appstore-sdk
  • amazon-in-app-purchasing
  • android
  • cloudflare-r2
  • fire-os
  • fire-tv
Share this project:

Updates

Submission history