Migrate to Netlify Today

Netlify announces the next evolution of Gatsby Cloud. Learn more

ContactSign Up
Community Plugin
View plugin on GitHub


A starter to bootstrap your next Gatsby Plugin
— automatic release to npm with semantic-release out of the box


Tweet by @Ash_Hitchcock: almost forgot thanks to @raae the Gatsby Plugin starter ... made the plugin blazingly fast to write, with full Semantic Release to NPM Raising hands

Heads up: This package is NOT to be used as a Gatsby Plugin; it’s a template for you to bootstrap your own plugin.


A message or two or three from Queen Raae 👑

1-on-1 Emergency Gatsby Call

Are you stuck on a reef in the sharky waters around the Gatsby islands? Check out 1-on-1 Emergency Gatsby Call with Queen Raae to get friendly advice you can put into action immediately from a seasoned Gatsby developer.

Stay updated and get the most out of Gatsby

Learn how to get the most out of Gatsby and stay updated on the template by subscribing to daily emails from Queen Raae and Cap’n Ola.

Video Walkthrough

Watch Queen Raae use this starter to create a new Gatsby plugin in a unauthorized and rum-fueled treasure hunt in the sharky waters around the Gatsby islands on YouTube.


Create your next Gatsby Plugin

Get started

  1. Use this template to create a new repository based on the code in this repository, but with a clean history. There is no need to drag all the commits of this repository by forking.
  2. Select the correct owner and give it a name according to the Gatsby Plugin naming standard.

Note: You will get a message about failing releases, this is expected and will sort itself out when you are ready for your first release.

Make it yours

  1. Clone your new repository onto your machine
  2. Make the readme template the root template (mv README_TEMPLATE.md README.md)
  3. Delete the changelog (rm CHANGELOG.md)
  4. Search and replace @raae/gatsby-plugin-starter with the name of your plugin
  5. Search and replace github.com/queen-raae/gatsby-plugin-starter with the link to your repository
  6. Search and replace queen@raae.codes with your email address
  7. Search and replace @raae with your GitHub username
  8. Change the description in plugin/package.json
  9. Change the tag line in README.md
  10. Run yarn install
  11. Commit changes git commit -a -m "chore: rename all the things"
  12. Create an initial tag (git tag v0.0.0 -a -m "Initial tag") and push it (git push origin --tags)

Develop and test

Check the CONTRIBUTING.md file.


The project uses conventional commits and semantic versioning to automate releases by utalizing the semantic-release project and GitHub Actions.

As the project owner, you need to add an NPM token to your repository secrets so that Semantic Release can do its thing 💪

  • Create an automation access token on npmjs.com/ (Avatar -> Access Token).
  • Add NPM_TOKEN to your repository secrets (Settings -> Secret -> Action) with the value from above.

Semantic Release Settings

Commits to the main branch will result in a new release while committing to a next branch will result in a pre-release. The releases follow Semantic Versioning, and your commit messages will decide the following version number.

  • Commits message titles prefixed by fix:, fix(<scope>): and docs(README): will result in a patch version update
  • Commits message titles prefixed by feat:, feat(<scope>): will result in a minor version update
  • Commits message footers containing BREAKING CHANGE: or BREAKING CHANGES: will result in a major version update

In addition to automating releases, Semantic Release creates and updates a CHANGELOG.md based on the above commit rules.

Check the .releaserc file, the .github/workflows/release.yml and the Semantic Release documentation for more details.


Questions, Feedback, and Suggestions

If you have any questions, feedback, or suggestions, head on over to discussions.

Found a bug?

If you find a bug, please open an issue and create a pull request to fix it if you are able.

© 2023 Gatsby, Inc.