github gatsbyjs/gatsby gatsby@5.16.0

12 hours ago

What's Changed

React 19

Note

🔐 As of January 26 2026, none of the React 19 security vulnerabilities affect Gatsby.

🚀 React 19 is here!

React 19 is now officially supported by Gatsby and all gatsby- packages maintained by the Gatsby team.

This is not a breaking change. You can safely upgrade to this release while staying on React 18.

All packages' peer dependencies on react and react-dom have been extended from ^18.0.0 to ^18.0.0 || ^19.0.0.

All existing stable Gatsby functionality is intended to now work with React 19.

PR: #39306

Upgrade Guide

Warning

Community plugins may not have been updated yet to support React 19, so please check their repository for the current status. All plugins managed by the Gatsby team (in the gatsbyjs/gatsby repository) have been updated.

To upgrade to React 19, first upgrade gatsby and all your dependencies that start with gatsby- to the latest version. (Check out this guide if you need help with that.)

Tip

If you use npm 7 or higher you’ll want to use the --legacy-peer-deps option. For example, if you use gatsby and gatsby-plugin-postcss:

npm install --legacy-peer-deps gatsby@latest gatsby-plugin-postcss@latest

Then, follow the React 19 upgrade guide. No other changes are required.

Please note:

  • Some new React 19 features may not be available yet via Gatsby.
  • Gatsby Partial Hydration, an experimental feature for three years now, is known to be incompatible with React 19 at this time. If you rely on this feature, do not upgrade to React 19.

New features

Gatsby now supports React 19's new root error callbacks.

Users can export onCaughtError and onUncaughtError from their gatsby-browser.js to handle errors caught by error boundaries and uncaught errors respectively:

// gatsby-browser.js

export const onCaughtError = ({ error, errorInfo }) => {
  // e.g. send to an error tracking service
  myErrorTracker.reportError(error, { extra: errorInfo })
}

export const onUncaughtError = ({ error, errorInfo }) => {
  // e.g. send to an error tracking service
  myErrorTracker.captureException(error, { extra: errorInfo })
}

In development, these errors also appear in Gatsby's Fast Refresh error overlay. These callbacks are only invoked in React 19.

Node.js 24

Node.js 24 is now officially supported by Gatsby.

PR: #39380 and #39398

Notable bugfixes & improvements

  • gatsby, gatsby-source-drupal:
    • fix(deps): bump body-parser to resolve qs vulnerability warning by @serhalp in #39396
  • chore: remove misc. outdated, invalid, or misleading contributor instructions by @serhalp in #39363

Full Changelog: https://github.com/gatsbyjs/gatsby/compare/gatsby@5.15.0...gatsby@5.16.0

Don't miss a new gatsby release

NewReleases is sending notifications on new releases.