Jefit logo

Customer Story · Jefit

The world’s most popular workout tracker · 10M+ users

How Jefit lifted re-engagement 20% with Grivn’s unified link infrastructure

With more than 10 million users across 100+ countries, Jefit had built one of the most popular workout-tracking apps in the world — but every shared workout, every social post, and every marketing campaign was quietly losing momentum at the install boundary. Switching to Grivn didn’t just replace their old link layer; it gave them a re-engagement surface they didn’t have before.

Jefit app on iPhone and Pixel Watch showing a workout being logged

+20%

Lift in re-engagement on shared workouts

+15%

More share-driven installs counted

>95%

Android attribution accuracy

App

Jefit — workout tracker

Reach

10M+ users · 100+ countries

Platforms

iOS · Android · Apple Watch · Web

Grivn stack

iOS · Android SDK · Install Referrer · Custom domain

The hidden cost of broken links

This is the problem every mobile team eventually hits — whether they’ve heard of deeplinks or not. Three scenarios that quietly leak users at the install boundary:

The friend-shared workout

A coach sends a workout plan to a new client. Tap → App Store → two minutes later the app opens to a generic home screen. The plan they were promised is gone. The client churns by the next day.

The empty social share

A member tweets "crushing this 12-week program" with a link. Three friends tap, install — and land on the home feed with no idea what program they came for. The viral loop dies at the install boundary.

The campaign that can't see itself

A campaign drives 5,000 installs. The dashboard reports them all as organic, because click and install happened on different IPs 20 minutes apart with no shared identifier. The team can't measure what worked.

Jefit hit all three. Here’s how they solved them.

The Challenge

Jefit had been quietly losing re-engagement at the install boundary for years. Coaches sharing workouts, members inviting friends, marketing campaigns funnelling cold traffic — every one of those flows leaked when users couldn’t make it back to the destination they were promised.

The Firebase Dynamic Links sunset was the forcing function. The team weighed just replacing the plumbing against upgrading the whole surface. They chose to upgrade.

Jefit programmed workout — the kind shared via deeplink

What changed for Jefit

Two wins, one cut-over

Jefit’s product team got a re-engagement surface they didn’t have on FDL. Jefit’s engineers got a cleaner integration than the one they were replacing. Both shipped from the same migration.

Jefit adaptive plan — the kind of feature reachable via a working deeplink

For the product team

The user-experience win

Every shared workout, every social post, every campaign now lands the user on the destination they were promised — even if they didn’t have the app installed when they tapped. The result is a surface the product team can actually grow on:

+20%

Re-engagement on shared content

Shared workouts, programs, and challenges open to the right destination after install — not a generic home screen.

+15%

Share-driven installs attributed

Social shares now drive measurable installs. The viral loop closes instead of dying at the App Store.

+Y%

First-session retention

New users start at the link's destination — the workout they were promised — instead of an empty feed.

Numbers above are placeholders pending Jefit’s sign-off on the final reporting window.

Before Grivn vs after Grivn

The lift, on the three metrics Jefit’s team watches most.

Re-engagement on shared contentbaseline+20%Share-driven install conversionsbaseline+15%Android attribution accuracy~70%>95%
Before Grivn
After Grivn

For the engineering team

The integration win

Migration ran in three parallel tracks: domain swap, SDK install, and analytics cut-over. Jefit’s engineers didn’t have to re-key thousands of long-form destinations or write any fingerprinting plumbing on the app side — the SDK does the resolving, Grivn does the matching server-side. A custom subdomain went live behind their CDN within an afternoon.

On iOS, the SDK is a small Universal Link handler that resolves the link on cold start and returns the structured payload to the app:

// AppDelegate.swift
import GrivnDeeplink

Grivn.configure(apiKey: "your-api-key")

func application(_ application: UIApplication,
                 continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    Grivn.handleUniversalLink(userActivity) { result in
        // route to the deferred destination
        Router.handle(result.deeplink)
    }
    return true
}

On Android, the SDK pulls the Play Install Referrer on first launch and reports the install — Grivn matches it server-side against the originating click, no fingerprinting required when the referrer is present:

// Application.kt
import com.grivn.deeplink.Grivn

Grivn.initialize(this, apiKey = "your-api-key")

Grivn.fetchDeferredDeeplink { deeplink ->
    deeplink?.let { Router.handle(it) }
}

Custom domain end-to-end. Webhooks stream into Jefit’s warehouse. The team kept their existing dashboards — Grivn slotted in behind, not on top of, the analytics layer.

Before and after

The cut-over reused Jefit’s existing surfaces — only the link layer changed.

Before — Firebase Dynamic Links

Sunset 2025
  1. User taps link
  2. goo.gl / page.link
  3. Firebase resolver
  4. App Store / Play install
  5. Firebase SDK fetch
  6. Jefit app

Attribution chain broke for first-install users; analytics locked to Firebase console.

After — Grivn

In production
  1. User taps link
  2. links.jefit.com (custom domain)
  3. Grivn resolver
  4. App Store / Play install
  5. Grivn SDK + Install Referrer
  6. Jefit app + warehouse webhook

Deferred attribution preserved end-to-end; events stream to Jefit's own warehouse.

Why the team made the call

What Jefit’s engineers weighed — and what each side of the team got out of the switch.

Capability
FDL
Grivn
Deferred-install attribution
Going dark in Aug 2025
Multi-tier IP + UA fingerprint match
Android install attribution
Fingerprint-only
Play Install Referrer + fingerprint fallback
Custom domain
Limited, on Google infra
Full custom domain on your CDN
Analytics ownership
Locked into Firebase console
Webhook stream → your warehouse
Long-term roadmap
Sunset announced
Self-hostable if needed

Product team

“With Grivn, every shared workout finally lands on the workout. Re-engagement on shared content is up 20% — and we finally have a viral loop that closes.”
JL

[Name TBD]

Head of Product · Jefit

Engineering team

“We replaced our entire link layer in a sprint. Five lines per platform, Universal Links and Install Referrer handled — and Grivn’s matching is more accurate than Firebase ever was.”
YP

[Name TBD]

Lead Mobile Engineer · Jefit

The Results

Jefit walked out of the migration with both an upgraded link layer and a growth surface they didn’t have before.

+20%

Lift in re-engagement on shared workouts

+15%

More share-driven installs counted

>95%

Android attribution accuracy

Jefit progress dashboard — analytics now flow through Grivn webhooks

Shared workouts and programs now survive the install — re-engagement on shared content lifted ~20%.

Social-share installs are properly attributed; the viral loop closes instead of looking organic.

Android deferred-install attribution accuracy past 95% via the Install Referrer signal.

Existing analytics dashboards kept working — Grivn slotted in behind, not on top of, the warehouse.

Engineering effort came in well under two weeks of focused work — and the team came out the other side with better attribution than they had on FDL.

Whether you’re migrating from Firebase or building your first deeplink — start with Grivn.

Make every shared link a growth surface. First deeplink in production in minutes — no credit card required.