This Gatsby starter project fully integrates with dynamic sample content from your ButterCMS account, including main menu, pages, blog posts, categories, and tags, and all with a beautiful, custom theme with already-implemented search functionality. All of the included sample content is automatically created in your account dashboard when you sign up for a free trial of ButterCMS.
You can view a live demo hosted on Vercel, or you can click a button below to deploy your own copy of our starter project to the provider of your choice.
First, clone the repo and install the dependencies by running npm install
git clone https://github.com/ButterCMS/gatsbyjs-starter-buttercms.git
cd gatsbyjs-starter-buttercms
npm install
To fetch your ButterCMS content, add your API token as an environment variable.
$ echo 'BUTTER_CMS_API_KEY=<Your API Token>' >> .env
To view the app in the browser, you'll need to run the local development server:
$ npm run develop
Congratulations! Your starter project is now live at http://localhost:8000/.
Deploy your Gatsby app using Vercel, the creators of Next.js or with Heroku. With a single click, you'll create a copy of our starter project in your Git provider account, instantly deploy it, and institute a full content workflow connected to your ButterCMS account. Smooth.
In order for your deployed app to pull in content changes from your ButterCMS account, you'll need to follow your hosting provider's steps for setting up webhooks. The ButterCMS webhook settings are located at https://buttercms.com/webhooks/.
By default, your starter project is set up to allow previewing of draft changes saved in your ButterCMS.com account. To disable this functionality, set the following value in your .env file: BUTTER_CMS_PREVIEW=false
Note that if you deployed with heroku and you want to use the iframe previewing ability on the ButterCMS.com website, you'll need to include trailing slashes when specifying your URLS in your ButterCMS.com settings.
mydomain.com/blog/<slug> <-- Won't work for previewing
mydomain.com/blog/<slug>/ <-- Will work for previewing.