Skip to content

Double-A-92/RowState

Repository files navigation

RowState

RowState is a web application that connects your rowing machine to YouTube videos, automatically adjusting playback speed to match your rowing pace. Row faster, the video speeds up. Row slower, it slows down.

🚀 Try it now!

Features

  • Smart Video Sync - Video playback automatically adjusts to your stroke rate
  • Bluetooth Rowing Monitor - Connects to any FTMS-compatible rowing machine
  • Heart Rate Monitoring - Automatic HR from FTMS rowing machines, or connect an optional Bluetooth heart rate sensor
  • Real-time Metrics - Live display of stroke rate, split time, distance, power, and heart rate
  • YouTube Integration - Row along to any YouTube video
  • URL Parameters - Share links with pre-configured videos and stroke rates
  • Visual Metronome - Animated vertical bar that moves with your rowing rhythm (drive/recovery phases)
  • Video Volume Control - Adjustable volume slider in the settings panel

Getting Started

Prerequisites

  • A Bluetooth-enabled rowing machine (FTMS protocol)
  • Chrome or Edge browser (desktop or Android)
  • Optional: Bluetooth heart rate monitor

Running Locally

npm install
npm run dev

Open your browser to the local development server and click "Connect Rower" to pair your rowing machine.

Deployment

This app can be deployed to GitHub Pages. See DEPLOYMENT.md for instructions.

Browser Compatibility

The Bluetooth features require the Web Bluetooth API, which is currently supported in:

  • Chrome and Edge (desktop and Android)

Bluetooth connections will not work in Firefox, Safari, or iOS browsers.

How It Works

  1. Connect your Bluetooth rowing machine
  2. Optionally connect a heart rate monitor
  3. Load a YouTube video
  4. Set your baseline stroke rate (default: 20 SPM = 1.0x speed)
  5. Start rowing - the video speed adjusts automatically

URL Parameters

You can share RowState links with pre-configured videos and stroke rates using URL parameters:

https://double-a-92.github.io/RowState/?v=VIDEO_ID&spm=STROKE_RATE

Parameters:

  • v - YouTube video ID (11 characters)
  • spm - Baseline strokes per minute (10-40, default: 20)

License

MIT


Disclaimer: This app has been vibe coded.

About

RowState is a web application that connects your rowing machine to YouTube videos, automatically adjusting playback speed to match your rowing pace.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors