Gatsby starter site with Kentico Kontent
This repo contains a Gatsby v2 starter site pre-configured with Kentico Kontent source plugin. The site portrays a personal site of a fictional technical evangelist that attends user groups, writes blog posts and implements projects.
- Node.js with NPM installed
How to run the code
The preferred way is to use Gatsby CLI
gatsby new command, but you can of course simply clone or fork this repo.
Use Gatsby CLI
Make sure you have Gatsby CLI installed via
npm list -g gatsby-cli. If not, you can install CLI via
npm install --global gatsby-cli.
Then, navigate to your projects directory and run
gatsby new [subdirectory name] https://github.com/Kentico/gatsby-starter-kentico-cloud. Replace
[subdirctory name] with your project directory's name. The CLI tool will essentially do three things:
- create a subdirectory
- clone the starter site codefiles into that subdirectory
yarn installto get all dependencies for you
Clone or fork the repo
Run the starter site
yarn develop (or
gatsby develop, should you have the Gatsby CLI installed)
This will bootstrap the site, build all static pages and start the site at http://localhost:8000 . You'll also be able to test arbitrary GraphQL queries in the GraphiQL interface via http://localhost:8000/___graphql.
To get a smooth debugging experience, you can temporarily copy the
gatsby-source-kontent directory of the source plugin to the
/plugins/@kentico directory of your site. Then, in the context of
/plugins/@kentico/gatsby-source-kontent, run two commands
npm install and
npm run build.
The source plugin used by this starter in turn uses the Kentico Kontent Delivery SDK in the background. You can put the configuration object of the SDK into the
deliveryClientConfig property of the gatsby-config.js file.
Of all the artifacts of Kentico Kontent, the starter site only displays content items and only in the default language. But, our source plugin also provides content types and items in non-default languages. The plugin links them all so that these data can be fetched in one GraphQL query.
Check out the source plugin for more details on which kinds of data and relationships it supports.