Building an intelligent running app

Graham Dubow

2026-04-07

The Strategic Guide to the Modern Website Development Stack: Accelerating B2B SaaS Growth

PaceApp is a React Native app built on Expo SDK 52 with TypeScript. The UI layer uses NativeWind v4 for styling, Zustand for state management, and Supabase for the backend. The interesting parts live in the service layer: a playlist engine that matches music to your cadence, a readiness scoring system fed by Apple Health data, and an adaptive playback engine that responds to your effort in real time.

For tracks that no PaceApp user has ever looked up, we query [GetSongBPM](https://getsongbpm.com)'s API. Their database covers millions of songs with accurate tempo data, and the search endpoint accepts a simple title + artist query. Results are cached back to both Supabase (shared) and local storage (device), so each external API call only ever happens once per song across the entire user base.

Thanks to the GetSongBPM - we added another data layer onto our already really good algorithm.

Ready to start?

Share with friends