Search code examples
contentfulgatsbynetlify

How to handle Contentful content data in Gatsby


I'm interested in using Gatsby to build a Netlify static site using content from Contentful

Netlify has this nice gettting started Gatsby guide: ​​https://www.netlify.com/blog/2016/02/24/a-step-by-step-guide-gatsby-on-netlify

But I'm a bit unsure of how to bring Contentful into the mix. Do I need to write scripts to convert my Contentful content into Gatsby 'markdown'?

Any ideas, ideas, links appreciated!


Solution

  • Since this question was posted, an official Contentful plugin's been added to Gatsby's collection (official as in created by Gatsby team, not Contentful): https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-contentful

    An example site's src code is here: https://github.com/gatsbyjs/gatsby/tree/master/examples/using-contentful

    The plugin processes markdown via gatsby-transformer-remark and produces the resultant HTML, which you can access via Gatsby's GraphQL server w/ a query like this one from the example proj:

     contentfulProduct(id: { eq: $id }) {
          productName {
            productName
          }
          productDescription {
            childMarkdownRemark {
              html
            }
          }
          price
        }
    

    You can use the plugin to connect both to the Content API (for published assets/content) and/or the Preview API (for both published and draft content/assets).

    We use NODE_ENV to pull from the Preview API in dev and the Content API in production.