0.0.5 • Public • Published


Gatsby Provision Contentful

This package is to be used for provisioning Contentful content models and content associated with a Gatsby site. This is a way to include example content that is associated with the site in the repository and allow for others to make copies. A typical use case would be if you're building a Gatsby Starter, or a boilerplate or template site for your own re-use.

When included as a dependency to your Gatsby site, and configured correctly, it can be used in two contexts — within Gatsby Cloud and locally.


First, export your Contentful Space's content model and content. You can find instructions on how to do this in one of Contentful's tutorials.

Then, install this package as a dependency in the repository you want to enable easy provisioning of data for:

   npm install --save-dev gatsby-provision-contentful

or for the yarn users:

  yarn add --dev gatsby-provision-contentful

Next, convention dictates that this package be used in conjunction with an npm script named gatsby-provision. It also requires the path to the Contentful export JSON file as an argument to function. For example:

// package.json
"scripts": {
  "start": "gatsby develop",
  "test": "jest",
  "gatsby-provision": "gatsby-provision-contentful --contentful-data-path='./data.json'"

Optionally, you may include the Contentful Space ID and Management Token as arguments like so:

gatsby-provision-contentful --contentful-data-path='./data.json' --space-id=$CONTENTFUL_SPACE_ID --management-token=$CONTENTFUL_MANAGEMENT_TOKEN

Cloud usage

The easiest way for a gatsby-provision script to work in Gatsby Cloud is for you to use Deploy Now. If you are using this package in a template repository you intend other's to re-use, consider adding a Deploy Now button to the README like so:

Deploy to Gatsby

When adding a site with a gatsby-provision script in the Deploy Now flow, Gatsby Cloud will detect the script when you Quick Connect to the suggested Contentful integration and populate the necessary environment variables for the script to run successfully.

If for whatever reason you choose not to Quick Connect, for the purposes of gatsby-provision-contentful, both CONTENTFUL_SPACE_ID and CONTENTFUL_MANAGEMENT_TOKEN environment variables are required.

Local usage

When running the gatsby-provision locally, you will be prompted for environment variables if they are not found on the current process. Additionally, after provisioning your Contentful space, the script will generate a .env.development and an .env.production file, populated with the environment variables values you provided.


You can see an example of this package in use in the following repositories:



Package Sidebar


npm i gatsby-provision-contentful

Weekly Downloads






Unpacked Size

9.38 kB

Total Files


Last publish


  • aghreed