Skip to content
Creative Nomad DesignCREATIVE NOMAD
← All work
01Personal product

Tempo Tunes

Tempo Tunes logo and wordmark

Pick a tempo and get a playlist that locks to your pace. Or let the app find the tempo for you. Run works it out from a race goal, Golf from your swing, Bike and Snow from a day you recorded. Or go Live, and the playlist builds itself from your steps while you move. Built on 2.75 million+ tempo-verified tracks, growing daily, and live on the App Store and Google Play. Patent pending.

⤢ enlarge
Live, on the phone and on the wrist. Hike setup with the Apple Watch or Phone only choice, the orb mid-session in Zone 2, and Now playing with Send it. The watch has the same controls, plus the next song it already picked.▤ Image
Client
Personal product
Role
Design + build + ship
Year
2026
Platforms
iOS · Android · Web · Watch
Stack
React Native · Expo
Stores
App Store · Google Play
01The challenge

Music has a tempo. So does everything you do. I ride mountain bikes and snowboard, and I wanted music that matches the pace of the ride. Every workout playlist I tried drifted all over the tempo map, one song at 165 BPM, the next at 92, and the flow died with it. So I built Tempo Tunes: set a BPM, pick the genres you actually like, and get a playlist where every song matches it. Then I kept going. Runners wanted a tempo from a goal time, golfers wanted one from their swing, and I wanted the music to follow the trail, on the bike and on the snow. Now there are five ways in: Tempo, Run, Golf, Bike, and Snow. And one more that needs no file at all. Live builds the playlist while you move.

The app was the easy part. The data was the real project. Public BPM sources are a mess: half-time and double-time confusion, dead APIs, licensing walls. And in November 2024, Spotify deprecated the Audio Features API, the tempo data every BPM app leaned on. Most people would have stopped there. I decided to stop depending on someone else's tempo data instead.

So Tempo Tunes runs on its own database. 2.75 million+ tracks with verified BPM across more than 90 genres, built through seeding and crowd-sourced uploads, re-analyzed on a nightly pipeline, and growing daily. And shipping it meant really shipping it. I registered as an Apple and a Google Play developer, took the app through both review processes, and put it in both stores.

02The approach
01

Own the data

The BPM database is the product's spine. Tracks come in through seeding and crowd-sourced uploads, land in SQLite with a verified, cross-checked tempo, get re-analyzed on a nightly pipeline, and resolve to your streaming service when a playlist is built. 2.75 million+ tracks now, growing daily without me touching it, and no third party can switch it off.

02

One app, every surface

One monorepo holds the Expo app for iOS and Android, the watch apps for Apple Watch and Wear OS, the Next.js site at tempo-tunes.com, and the Express API that serves them all. Mobile is the source of truth for interaction patterns and web follows it. I run a standing parity audit against that rule. The last one logged 62 findings, each citing file and line on both sides, and they get burned down in waves.

03

A tape deck, on purpose

Every playlist you make lands on your shelf drawn as a cassette. Spines with handwritten labels, a full-screen view with a deck and a preview player, and a Tempo-Heat tag that tells you how hot the mix runs. Your shelf follows your account to every device, and when a playlist is ready to travel it saves straight to Apple Music, Tidal, or YouTube Music. Spotify saving is built and waiting in invite-only beta: their rules ask for 250,000 monthly users before an app can open it to everyone, so every download gets us closer.

04

Shipping is the feature

Store listings and keywords, Apple's privacy nutrition labels, Play's data safety form, a delete-account flow that works inside the app, review notes with a test account. Every detail got the same care as the UI, because all of it is the product. Both stores approved it, and it keeps shipping. Run, Golf, Bike, Snow, Live, the watch apps, and a new logo all came in updates after launch. The 1.3 line is eight updates deep, and 1.3.8 is the build in the stores today.

05

Own the ideas too

The tempo engines turned out to be new, so I wrote them up. Four provisional patent applications went to the USPTO between September 29 and October 9, 2026, all assigned to my company, C7NOMAD LLC. The first covers the platform: a library of verified tempos, and playlists shaped from a recorded ride, from measured golf swing timing, and from live heart rate and step cadence. The second reads speed, grade, and climb from a watch so Live can tell a climb from a descent on a bike or on snow, where effort and speed run opposite. The third reads a recorded day on snow, spots a chairlift by its speed signature, and gives the ridge between a climb and a descent its own song. The fourth makes a phone in a pocket the only sensor, and reads a skate session by motion and impacts instead of cadence. Patent pending on all four, and the Tempo Tunes name is filed with the trademark office.

03Design System

The whole app is styled after old school cassettes, J-card inserts and all, in a throwback brown-and-gold palette borrowed from the classic San Diego Padres. Everything touchable is yellow. Data that should feel energetic runs ember orange. And BPM itself gets a color scale, so tempo reads at a glance from cool blue at 60 to magenta past 190.

The new mark is two T's under one wave, orange running into yellow on a dark tile. The wave travels once when the app opens, loops while a playlist builds, then settles. The shape moves through the color and the color never moves, so every frame is a valid logo. Righteous carries the two-tone wordmark, and the cassette labels are cream with handwritten names, borrowed from the mixtape era on purpose.

TokenValueUse
accent#FFC72CGolden yellow. Buttons, tabs, anything touchable
accentHot#FF6B35Ember orange. In-range BPM and live data
accentElectric#F5FF00The raw CND yellow, saved for small moments
bg#0a0a0aNear-black app ground
tempo heat60 → 190+Blue to teal to gold to orange to red to magenta
04Motion vocabulary

The shape of a ride

A playlist has a shape, not just a number. Steady holds one tempo. Rise builds the whole way. Bell climbs to a peak and comes back down. Fade lands soft at the end of the day. Pick a chip and a Tempo-Heat gradient draws the path from start to finish before you commit.

The trail, drawn

Load a ride, or a day on snow, and the app draws its elevation as a strip, each stretch tinted by terrain. Climbs run orange, descents run yellow, cruising stays gray, and every band is labeled with the tempo it will play at. Drag any of them. The music changes where the trail does.

The winding moment

Generating a playlist takes a few seconds, so the app makes it a moment. A cassette winds on screen with an ember glow while the playlist's label writes itself letter by letter, and the modal holds for five seconds minimum so the payoff always lands. Then it drops you inside the finished playlist.

The orb

Live puts a glowing orb in the middle of the screen with two numbers under it, the song's BPM and your steps per minute. When the two agree, you are in tempo. Every song in a Live session says why it was picked, so the engine never feels like a black box.

Tempo-Heat

BPM maps to color across the whole app. The 60s run blue, the 130s go gold, the 150s burn orange, and 190 and up goes magenta. In a track list you can read the pace of a mix before you read a single title.

Listen for it

Tap along to the beat and the BPM tab counts it. Or let it listen through the mic for a few seconds, and it names the song that is playing and hands you its tempo. Search 7.5 million measured songs, or upload one of your own and two estimators check each other before the app calls the number verified. And every result ends the same way: one tap makes a playlist from that jam, with its tempo as the target.

05Selected work
Make, Tempo mode: a Bell curve from 85 to a 140 peak
01

Make · Tempo

A target tempo with a tolerance control, strict or looser, a curve chip to shape the whole playlist, and an Obscure to Popular slider for deep cuts vs. hits. New: Sounds like, where you pick up to five seed songs and the whole mix leans toward their sound. Playlist Length is set by time: pick 1 to 4.5 hours and the playlist is built to run that long, whatever the songs are. Four and a half hours covers a round of golf. Genres sit on nine family shelves with live counts pulled from the catalog, plus an era filter and artists. More than 90 genres deep, and not just the usual suspects. Tejano, chanson, anime, christmas. If a genre exists, I want it in there.

Make, Run mode: a distance and a goal time turned into a stride tempo
02

Make · Run

Enter a distance and a goal time and the app works out your pace, your steps per minute, and the BPM that matches your stride. Add your height and it tunes the cadence to you. Or start from a run you already recorded. A .fit from Garmin or a .gpx from Strava fills in distance, time, and your measured cadence, and the playlist is sized to outlast the run.

Make, Golf mode: full swing or putting, presets, find my tempo
03

Make · Golf

A good swing runs about three to one, backswing to downswing. Pick a preset, Quick, Tour, or Smooth, or find your own. Hold your phone like a club, film your swing and let the camera watch, or let an Apple Watch or Wear OS watch count it on your wrist. Already timed by a Garmin or another swing trainer? Type in the two times. The playlist is built so impact lands on the beat, for full swings or putting.

Make, Bike mode: load a ride and the trail sets the tempo
04

Make · Bike

I ride mountain bikes, so this one is personal. Load a ride you recorded, a .fit, .gpx, .tcx, or Garmin's zip, and the playlist changes tempo where the trail does. Climbs, descents, and cruising each get their own BPM, drawn right on the ride's elevation. Play it at the trailhead and the music turns with the terrain.

Make, Snow mode: load a day and the hill sets the tempo
05

Make · Snow

Load a day on snow, a splitboard tour, a Nordic loop, or a resort day, and the playlist follows the hill. The app reads the day and picks Nordic, Tour, or Resort. Skinning and climbing get a stride tempo, the drop gets a fast one, and the lift gets a rest. Move any band you like. Reads .fit, .gpx, and .tcx from Garmin, Strava, Slopes, and most apps.

The shelf: playlists as cassette spines with handwritten labels
06

Playlists · The shelf

Playlists live as cassette spines on a shelf. Tap one and it opens full screen with a deck, a preview player with a crossfade Mix mode, and every track's BPM colored in or out of range. No playlist is ever final: cut any track, let Refill top it back up with fresh matches, or Remix the whole recipe. Every playlist shows its real running time, measured from every song in it. Then listen straight through in the app, save it to Apple Music, Tidal, or YouTube Music in one tap, or share it with a link.

07

Live

Live is a playlist that builds itself as you go, from whatever your activity gives it. Your phone in a pocket is enough. It reads your steps, motion, and climb on its own, and an Apple Watch adds heart rate, so Zone 2 or Push keeps you in the zone.

Seven activities, each with its own rules. All day, Walk, Run, Hike, Bike, Snow, and Skate. Hike lifts the beat on the climb and holds it on the way down. Skate runs hotter the more you are in runs.

Send it is one button on every activity, on the phone and the watch. Tap it and a faster song comes in now, one song, then the session takes back over.

When the signal drops, Live switches to songs it downloaded for your picks.

When a session ends it lands in Playlists with its stats, the climb, and a chart of song tempo against your steps.

Live is on iOS today and plays through Apple Music.

Live mid-session: the orb, Zone 2 rock, song BPM and steps per minute
  • Apple Watch: heart rate 79, below zone 2
  • Apple Watch: Picking up, next song 129 BPM, Send it
  • Apple Watch: All day
  • Apple Watch: Walk
  • Apple Watch: Bike
  • Apple Watch: Snow
  • Apple Watch: Golf swing tempo
08

Profile · Nothing about you

An account is an email, or a Google or Apple sign-in, and that is all the app asks for. Your playlists and settings follow it from phone to tablet to tempo-tunes.com. No ads, no tracking, no data sales. Delete Account sits right in the profile tab and actually deletes.

The Tempo Tunes mark
06Captures
⤢ enlarge
The Google Play feature graphic for 1.3.8. Seven Live activities on 2.75 million tempo-verified songs, growing daily.▤ Image
⤢ enlarge
The mark. Two T's under one wave, orange running into yellow. In the app the wave travels, then settles.▤ Image

— Five ways in

⤢ enlarge
Make, with the mode list open. Tempo, Run, Golf, Bike, and Snow, each with a line on what it reads.▤ Image
⤢ enlarge
Tempo. Set the BPM yourself, or shape it. Bell climbs from 85 to a 140 peak and lands soft.▤ Image
⤢ enlarge
Run. Pick a distance and a goal time, or start from a run you recorded on Garmin or Strava.▤ Image
⤢ enlarge
Golf. Full swing or putting. Pick a preset, or let the app find your swing tempo.▤ Image
⤢ enlarge
Bike. Load a ride and its elevation comes back as tempo. 140 on the climb, 168 on the way down.▤ Image
⤢ enlarge
Snow. Load a day and the app reads it as Nordic, Tour, or Resort. Approach, skin up, transition, and drop in each get their own tempo.▤ Image

— Make a playlist

⤢ enlarge
Tolerance sets how tight every song holds to the target. Tight for cadence work, loose for variety.▤ Image
⤢ enlarge
Pick up to ten genres or an era. Every family shelf shows live track counts from the catalog.▤ Image
⤢ enlarge
Sounds like, a name, and one tap on Generate starts the deck winding.▤ Image
⤢ enlarge
Inside a finished playlist. Every track tempo-verified, with BPM colored by Tempo-Heat.▤ Image

— Live

⤢ enlarge
Live setup. Pick Hike, pick Apple Watch or Phone only, and go. No file, no watch required.▤ Image
⤢ enlarge
Seven activities, each with a line on what it reads. All day, Walk, Run, Hike, Bike, Snow, and Skate.▤ Image
⤢ enlarge
Ready to go. 650 rock songs lined up, 60 to 180 BPM. Tap Start, pocket the phone, and go.▤ Image
⤢ enlarge
Mid-session. The orb, Zone 2 rock, and the two numbers that matter: song BPM and steps per minute.▤ Image
⤢ enlarge
Now playing, with the reason the song was picked. Skip, Pause, End, and Send it for a faster song right now.▤ Image
⤢ enlarge
A session, kept. 43 minutes, 4,638 steps, 390 feet up, saved as a playlist with its own cassette.▤ Image

— Shelve it, save it, tap the tempo

⤢ enlarge
The shelf. Tempo, bike, golf, and run playlists, each a cassette spine with a handwritten label.▤ Image
⤢ enlarge
Save to Apple Music, Tidal, or YouTube Music, or share a link. Spotify opens to everyone at 250k monthly listeners.▤ Image
⤢ enlarge
The BPM tab. Mic the song playing, search 7.5 million measured tracks, or upload your own.▤ Image
⤢ enlarge
The mic names Scarlet Begonias at 82 BPM. One tap builds a playlist at that pace, by genre or by artist.▤ Image
07Before / After

Every BPM app used to stand on one Spotify endpoint. This one stands on its own data, and it went all the way through both store fronts.

Tempo data
Before

Spotify's Audio Features API, deprecated for new apps

After

An owned database, 2.75 million+ verified tracks and growing

Finding your pace
Before

Google a list of 170 BPM songs and hope

After

Five ways in, Live for seven activities, 90+ genres, and a verified tracklist

Distribution
Before

A web demo on a URL

After

Signed builds live on the App Store and Google Play

08Outcome

Live in both stores and on the web, built by one designer pairing with AI agents. Three months in, 649 people have downloaded it for the first time, split almost evenly between iPhone and Android, and about 135 Android devices open it in a given month. Small numbers, and real ones. The catalog keeps growing daily, and the reviews that matter most so far came from Apple and Google.

649

First-time downloads across both stores, July 29 to October 28, 2026

135

Android devices active in the last 28 days, as of October 28, 2026

2.75M+

Tempo-verified tracks in an owned database, growing daily

9

Updates shipped since launch, 1.3.1 through 1.3.9

4

Provisional patent applications filed with the USPTO

0

Ads, trackers, or data sales

Three ideas that got cut

Live launched needing an Apple Watch. In 1.3.1 it read heart rate from the wrist, and without a watch the Live tab was a setup screen telling you what was missing. Three releases later the phone does the job on its own, steps, motion, and climb from a pocket, and the watch became the upgrade instead of the ticket in.

Bike had a Downhill button. Press it at the top of a descent and a fast song came in. It was one activity's trick, so it went, and Send it took its place on every activity, phone and watch. One tap, one faster song, then the session takes back over.

Playlist Length was cassette sizes. C60, C90, C120, C180, each a song count. Nice to look at, wrong for the job, because two hours of punk and two hours of orchestral are very different song counts. In 1.3.7 length became time. Pick 1 to 4.5 hours and the playlist runs that long, whatever the songs are.

What I would do differently

Plan for the data first. I scoped this as an app, and the database turned out to be 90 percent of the work. It is also the strongest part of the product now, the one thing no third party can switch off, so it would be the first thing I built next time, not the thing I built once the public sources fell apart.

Start Live on the phone. I built it for the watch first because the heart rate was there. The phone in a pocket turned out to be enough for most people, and it reached everyone at once.

What I owned

All of it. Product, brand, logo, and UI. The cassette design language, the Run, Golf, Bike, and Snow tempo engines, the Live engine that reads your steps, the tempo database and the API behind it, the React Native app, the Next.js site, and the Express backend, built with agentic AI on a designer-coder foundation. Both store listings, both reviews, both launches. And four provisional patent applications on the tempo engines, written and filed myself.

Next case — 02

Fortris Command

→

Want something like this?

Start a conversation→