Skip to content

About

Gatsby plugin to use Strava as a data source

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Repository files navigation

gatsby-source-strava


gatsby-source-strava


Npm version Npm downloads MIT license PRs welcome


Gatsby plugin to use Strava as a data source

Requires Node 20 or later.

Usage

  1. Download gatsby-source-strava from the NPM registry:
yarn add gatsby-source-strava
  1. Generate a token

The package needs 3 .env variables with the following format to work:

STRAVA_CLIENT_ID=2845
STRAVA_CLIENT_SECRET=c3d62caed3sjf4vdjsb096d010d81f52a17ac5
STRAVA_TOKEN={"access_token":"ya...J0","refresh_token":"1..mE","expires_at":1581439030,"expires_in":21600}

gatsby-source-strava expose a script to make the generation easier.

Open a terminal at the root of your project and type:

gatsby-source-strava-token
  1. Add the plugin in your gatsby-config.js file
require("dotenv").config()

module.exports = {
    plugins: [
        {
            resolve: "gatsby-source-strava",
            options: {
                stravaClientId: process.env.STRAVA_CLIENT_ID,
                stravaClientSecret: process.env.STRAVA_CLIENT_SECRET,
                stravaToken: process.env.STRAVA_TOKEN,
            },
        },
    ],
}

That's it!

For advanced configuration, please read options documentation.

Data

The plugin creates a StravaAthlete node and one StravaActivity node per activity, with a coordinates field ready for a map. With the withRoutes option, it also creates one StravaRoute node per route, with the same coordinates field. Their GraphQL types are declared by the plugin, so your queries work even before the first activity is fetched.

Store

Your history is fetched once and kept in a .strava directory next to your gatsby-config.js, not in the Gatsby cache. A build only fetches the activities you recorded since the previous one, even after a gatsby clean or on a fresh continuous integration checkout.

Strava allows 100 requests every 15 minutes and 1000 a day. Read the rate limits documentation before enabling options that fetch more of every activity.

Commands

Command What it does
gatsby-source-strava-token Generates the token the plugin needs
gatsby-source-strava-activity <id> Fetches one activity again, with as much detail as asked
gatsby-source-strava-activities Deletes the activities gone from Strava, adds the missing ones

Documentation

Contributing

  • ⇄ Pull/Merge requests and ★ Stars are always welcome.
  • For bugs and feature requests, please create an issue.

Changelog

See CHANGELOG

License

This project is licensed under the MIT License - see the LICENCE file for details

About

Gatsby plugin to use Strava as a data source

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages