Convex Wearables
Getting Started

Installation

Install the component, register it in Convex, and create your shared client.

Install the package

npm install @clipin/convex-wearables convex

convex is a peer dependency and should be >= 1.17.0.

Register the component

// convex/convex.config.ts
import { defineApp } from "convex/server";
import wearables from "@clipin/convex-wearables/convex.config";

const app = defineApp();
app.use(wearables);

export default app;

Create a shared client

// convex/wearables.ts
import { WearablesClient } from "@clipin/convex-wearables";
import { components } from "./_generated/api";

export const wearables = new WearablesClient(components.wearables, {
  providers: {
    strava: {
      clientId: process.env.STRAVA_CLIENT_ID!,
      clientSecret: process.env.STRAVA_CLIENT_SECRET!,
    },
    garmin: {
      clientId: process.env.GARMIN_CLIENT_ID!,
      clientSecret: process.env.GARMIN_CLIENT_SECRET!,
    },
  },
});

Provider names

The component recognizes these provider keys:

  • garmin
  • suunto
  • polar
  • whoop
  • strava
  • apple
  • samsung
  • google

In practice today:

  • Garmin, Strava, Whoop, Polar, and Suunto use OAuth-based cloud integrations
  • Apple, Samsung, and Google are supported through normalized SDK/mobile pushes
  • Time-series storage policies matter today for Garmin, Whoop, Suunto, Apple, Samsung, and Google

See Provider Support for the current matrix.

What to do next

On this page