One brand, three product surfaces.
CityRow is a connected fitness company delivering on-demand rowing and HIIT classes. Since 2018, members have collectively rowed 574,710,253 metres — roughly 154 lengths of the Mississippi.
Runtime was tasked with three product surfaces that had to feel like one product: a flagship-rower tablet experience; a mobile app (iOS / Android) for owners of earlier rower models, with Bluetooth tracking; and a website with an e-commerce shop.
The hard part wasn't any one surface in isolation — it was making the three feel like a coherent product when a member rowed at home, opened the app on their commute, and bought a new accessory from the shop the same evening.
From a Stripe-checkout site to a real platform.
The engagement opened with a website supporting monthly subscriptions to the mobile app. As the project matured, the platform rebranded; the shop expanded to sell rowers, mobile docks, accessories and apparel — multi-currency (USD, GBP, EUR, AUD).
The mobile app initially shipped as a video player with manual time/distance entry. Runtime then integrated Bluetooth via a small communication module compatible with most rowers, enabling real-time data transmission. The 2019 Android release introduced live distance and pace metrics.
For CityRow's tablet-integrated rower, the team redesigned the app for larger screens and implemented an over-the-air update system so the fleet could be patched without service trucks rolling.
A stack that crosses web, mobile, and a rower's tablet.
Three surfaces, one engineering team. The choice of stack reflects the breadth: a frontend for the marketing site and shop, a Python/Django backend, a Node service for the real-time Bluetooth bridge, and React for the embedded tablet.
From three developers to a connected fitness platform.
Across four years, the team scaled from three developers to nine plus a dedicated QA. The shop went from monthly subscriptions to a multi-currency commerce stack. The mobile app went from a class player to a real-time Bluetooth-driven training companion.
Members average six workouts a month, rowing roughly 275,000 metres over the lifetime of their membership. Every one of those workouts ran on infrastructure shipped, scaled and maintained by Runtime.
Engagement closed in 2022 — relationship preserved.
The partnership wound down in 2022 as CityRow's internal engineering org reached the size where in-house ownership made more sense. Handover ran on the same cadence as the build — runbooks, architecture decisions, knowledge transfer, embedded for as long as it took.


