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.
- 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
- A Bluetooth-enabled rowing machine (FTMS protocol)
- Chrome or Edge browser (desktop or Android)
- Optional: Bluetooth heart rate monitor
npm install
npm run devOpen your browser to the local development server and click "Connect Rower" to pair your rowing machine.
This app can be deployed to GitHub Pages. See DEPLOYMENT.md for instructions.
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.
- Connect your Bluetooth rowing machine
- Optionally connect a heart rate monitor
- Load a YouTube video
- Set your baseline stroke rate (default: 20 SPM = 1.0x speed)
- Start rowing - the video speed adjusts automatically
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)
MIT
Disclaimer: This app has been vibe coded.