Skip to content

Case Study · Our Own Product

Holt

A Garmin companion app we built for ourselves - because Garmin Connect has all the right data and none of the joy.

Holt app iconHolt

Most of our client work lives on someone else's roadmap. Holt is one of the few things that's entirely ours - a phone app for Garmin device owners, named after the old word for an otter's den. We wanted a reason to keep our mobile work sharp between client projects, and a genuine itch: Garmin's own app is exactly the kind of thing we'd redesign for a client without a second thought.

Garmin Connect collects genuinely good data - sleep, stress, Body Battery, VO2 Max, heart rate variability, a dozen other numbers about how your body is actually doing - and buries almost all of it a tap or two too deep, behind a cluttered, corporate interface nobody opens for fun. Holt pulls the same numbers straight from a paired Garmin watch and puts the one that matters today in front of you first, in plain language, the moment the app opens.

It doesn't need a Garmin device to be useful, either. Point it at a walk, run, ride, or hike with nothing but your phone and it tracks the route, pace, and steps itself - no watch required. That's deliberate: Holt can fully replace Garmin Connect for someone who owns the hardware, and it's a complete GPS tracker on its own for someone who doesn't.

Holt's home screen showing a VO2 Max ring reading 43 ml/kg/min with a coaching note that aerobic fitness is dipping, plus Body Battery, steps, and sleep tiles for the day

What It Does

Recovery, decoded

Body Battery, VO2 Max, HRV, stress, sleep, resting heart rate, respiration, pulse ox - each pulled straight from your Garmin device, each with its own trend line, and each explained in one plain sentence instead of a bare number.

Track without a watch

Walk, run, ride, or hike using nothing but your phone's GPS and pedometer - full route, pace, and distance, no Garmin hardware required. Built-in fitness tests like the Cooper and Rockport walk test estimate VO2 Max with just a stopwatch.

Records that track themselves

Every personal best - longest distance, best pace, longest duration, steepest climb - is tracked automatically per sport, with a badge the moment you beat one. Any two activities can be laid side by side, stat for stat.

Strength training, too

Garmin Connect barely handles gym work. Holt has its own routine builder - save a workout once, then log sets and exercises against it every time you repeat it, with ready-made presets to start from.

Take A Look Inside

Holt's Vitals screen showing Fitness Age, VO2 Max, and Resting Heart Rate, with a list of health markers including HRV, stress, respiration, and pulse ox

Vitals - fitness age, VO2 Max, HRV, and stress, each with its own trend

Holt's Activities screen showing a trail run route plotted on a map, with Records, Trends, and Compare tools above a list of past activities

Activities - every walk and run mapped, with records and comparisons built in

Holt's Workout screen listing saved gym routines like Leg Day Essentials and Kettlebell Full Body, each with exercise and set counts

Workout - saved gym routines, ready to log again

Holt's Records screen showing a new personal best of 5.88 km for longest distance, plus best times and all-time bests for walking

Records - personal bests per sport, updated the moment you beat one

Designed As A Calm Instrument

Holt's whole design argument is that Garmin Connect's problem isn't the data, it's the mood. We built a real visual identity around it instead of another dashboard of gray cards: a warm off-white paper background instead of stark white or the neon-on-black look most fitness apps default to, and every number set in a condensed, tabular typeface so it reads like an instrument gauge rather than a spreadsheet cell.

Color carries meaning instead of decoration. One hue, one meaning, everywhere it appears - on a metric's ring on the home screen, its icon in a list, its own chart line - never reused elsewhere just for contrast.

EffortRecoverySleep

The otter mascot follows the same restraint. It's a drawn line-art mark, not a cartoon, and it only appears in three moments - an empty screen, first launch, and finishing a walk. It never decorates the chrome around it, which is exactly the discipline a health app needs: the data stays calm and legible, and the personality shows up only where it's earned.

How It's Built

Holt is Expo and React Native on the New Architecture, written in TypeScript, with Expo Router handling navigation and typed routes. Reanimated and the gesture handler drive every ring gauge and press animation; the maps - every recorded route, rendered live - run on MapLibre, open-source, so nothing depends on a Google or Apple Maps key.

Connecting a Garmin account runs through Garmin's own OAuth sign-in, handled entirely by our backend. From there, Holt never asks Garmin for anything - Garmin's Health API pushes new activities and health data to us the moment they're available, and the app just reads what's already arrived. Recording your own walk works the same way whether or not a Garmin is involved: your phone's GPS and pedometer feed the exact same activity model Garmin-synced data does, so both sources end up on one shared screen.

Start a walk and it stays visible without opening the app: a Live Activity on the Dynamic Island and lock screen on iOS, a persistent notification on Android, both counting up elapsed time as it climbs.

Behind it is a small Node and TypeScript API, Postgres for storage, both running in Docker, with real unit and integration test suites. Holt also works with no account at all - a random ID generated on first launch is enough to keep your data on your own phone; creating an account with just an email and password is only there for someone who wants their history to follow them to a second phone.

ExpoReact Native (New Architecture)TypeScriptExpo RouterReanimatedMapLibreNode.jsExpressPostgreSQLDockerGarmin Health API

Where It Stands

Holt is still in development, the same as Barki - not yet published to the App Store or Google Play. It's further along than that makes it sound: the backend is live, the Garmin integration is real and tested end to end, and we've already written the privacy policy both stores will ask for before we submit. What's left is the same thing that's left on every app before launch - time on real devices, and tightening what feels rough.

Say hello

Let's make something
you're proud of.

Tell us what you're working on - even a rough idea is plenty. Book a quick call, or send a message and we'll reply like actual humans, usually within a day.

Book a call

A short intro call - no pitch, just a chat about what you're working on.

Prefer email?

office@otterdev.me

Based in

Montenegro

Working with people here, and anywhere the wifi reaches.

Prefer to write?