Gatsby Opinionated Starter is a boilerplate for scaffolding a Gatsby site with a preconfigured development and release pipeline. It bundles TypeScript, ESLint with the Airbnb config, Jest, testing-library, Storybook, commitizen, commitlint, semantic-release, and Netlify deployment support, so a new project starts with code quality and automation already in place.
What is Gatsby Opinionated Starter?
Gatsby Opinionated Starter is a Gatsby starter (boilerplate) maintained by datacrafts-io. It takes a fresh Gatsby project and adds a strict stack: TypeScript for static typing, ESLint with Airbnb rules and Prettier for linting/formatting, Jest and testing-library for unit tests, Storybook for component development, and commitizen/commitlint/semantic-release for conventional commits and automated releases. The output is a Gatsby site project with these tools configured and ready to run.
Key Features
- TypeScript — The starter is written in TypeScript, giving you type checking across pages and components.
- ESLint + Airbnb config — Linting follows Airbnb's JavaScript style guide, integrated with Prettier for automatic formatting.
- Jest + testing-library — Unit testing is preconfigured with Jest and React Testing Library.
- Storybook — A component workshop runs alongside Gatsby's dev server via
npm run start, letting you develop UI in isolation. - commitizen + commitlint —
npm run commitstarts a guided conventional commit flow; commitlint enforces the format on every commit. - semantic-release — Automates versioning and changelog generation from commit messages; publishing to npm can be disabled by setting
npmPublishtofalsein.releaserc.json. - SCSS + SCSS Modules — Styling uses Sass and CSS Modules, with Typography.js for typography.
- Netlify-ready — Includes a Deploy to Netlify button and Netlify configuration for one-click deployment.
- GitHub Actions CI — A GitHub Actions workflow runs on the master branch, and Renovate keeps dependencies updated.
Who is it for?
Gatsby Opinionated Starter is for frontend developers and teams who want a Gatsby project with a complete quality and release toolchain without manual setup. It suits developers who prefer TypeScript and strict linting, teams that adopt conventional commits and semantic versioning, and anyone who wants CI and deployment to Netlify configured from the start.
What can you do with it?
- Start a new Gatsby project: run
gatsby new project-name https://github.com/datacrafts-io/gatsby-opinionated-starterto scaffold the site. - Develop components in Storybook: launch Storybook together with the Gatsby dev server using
npm run start. - Make conventional commits: use
npm run committo generate commit messages that pass commitlint and drive semantic-release. - Deploy to Netlify: click the Deploy to Netlify button or use the Netlify configuration for hosting.
How does it work?
After creating the project with the Gatsby CLI, you install Husky explicitly with npm i -D husky and then run npm run start to spin up both Storybook and Gatsby. Commits go through npm run commit to follow conventional commit format; semantic-release uses those commit messages to determine version bumps. The repository also includes GitHub Actions for CI and is ready for Netlify deployment.
FAQ
Is Gatsby Opinionated Starter free to use?
The repository is a public GitHub project and the starter is published on npm, so you can clone or install it directly. No pricing information is provided, and there are no paid tiers mentioned.
How do I create a site with this starter?
Install Gatsby CLI (npm i -g gatsby-cli), then run gatsby new project-name https://github.com/datacrafts-io/gatsby-opinionated-starter. This clones the starter and installs dependencies.
Can I stop it from publishing to npm?
Yes. In the .releaserc.json file, set the npmPublish option to false to disable publishing to npm on each semantic release.
What testing tools are included?
Jest is configured for running tests, and testing-library (specifically React Testing Library) is set up for component testing. The starter also integrates Storybook for visual component development.





