Skip to content

SweatStack Connect

SweatStack Connect is the onboarding product for apps built on SweatStack. It lets your users authenticate with the wearable platform they already use (Garmin, Intervals.icu, etc.) without first creating a SweatStack account. SweatStack provisions their account behind the scenes, the OAuth2 flow continues uninterrupted, and your app receives an access token.

For first-time onboarding this is the difference between two clicks and three. The friction you'd otherwise lose at "create yet another account" goes away.

What changes for your integration

Nothing on the API side. SweatStack Connect is a server-side flow that lives entirely on SweatStack. Your app initiates the standard OAuth2 / OIDC flow as usual; SweatStack handles wearable authentication, account provisioning, email collection, and consent before redirecting back to you.

What does change: the SweatStack login UI offers wearable-platform login as a first-class option. If the user picks one and doesn't yet have a SweatStack account, SweatStack creates one for them, attaches the integration, and continues your OAuth2 flow.

The user-facing flow

  1. Your app sends the user to https://app.sweatstack.no/oauth/authorize?... (the standard authorization URL).
  2. SweatStack shows a sign-in page that offers wearable-platform sign-in (Garmin, Intervals.icu, etc.) alongside email magic-link.
  3. If the user picks a wearable, SweatStack redirects them to that wearable's OAuth flow.
  4. After they grant permission, they come back to SweatStack. If they don't have a SweatStack account, one is created automatically.
  5. If SweatStack can't extract an email from the wearable, the user is prompted for one (some wearables don't share email).
  6. The standard OAuth2 consent screen appears for your app.
  7. Your app receives the authorization code and exchanges it for tokens.

For users who already have a SweatStack account linked to that wearable, step 4 logs them in directly. The flow is the same number of clicks regardless.

Button copy and brand

The button on your app that initiates the flow is your design choice. We recommend matching the dominant identity-button conventions your users already recognize.

Recommended button text:

  • "Continue with SweatStack" (default). Matches "Continue with Google" / "Sign in with Apple" conventions. The text most end users instantly understand.
  • "Connect with SweatStack" (alternative). Slightly more action-led, useful when the connection-establishment moment is what you want to emphasize.

SweatStack logo for buttons: the SweatStack mark is available for use on integration buttons. Email [email protected] for the asset pack. A formal brand kit page is on the roadmap.

What not to do:

  • Don't combine SweatStack branding with framing that suggests SweatStack endorses your app. SweatStack Connect signals integration, not endorsement.
  • Don't translate the SweatStack name. Brand names stay in their original form.

Supported wearables

SweatStack Connect currently supports:

  • Garmin Connect
  • Intervals.icu

The full list grows as new platforms are added. The same OAuth2 endpoints work for all of them; SweatStack handles the per-platform specifics internally.

What it looks like for users

For a first-time user:

  1. Click your "Continue with SweatStack" button.
  2. Click "Continue with Garmin" on the SweatStack sign-in page.
  3. Authorize on Garmin.
  4. (If needed) enter email.
  5. Authorize your app.

That's three to four clicks total, no SweatStack account required up front. The user effectively sees SweatStack as the connector to their wearable, which is what it is.

Why this exists

The default OAuth2 flow assumes the user already has an account with the OAuth provider. For SweatStack, that assumption is wrong for almost every new user. They have a Garmin account, not a SweatStack account. SweatStack Connect acknowledges that reality and removes the friction.

If you're building an app whose users are mostly new to SweatStack, this is the path you want them on.