Gatsby Book Launch

“The missing guide to the modern web” launches on Thursday, Sep 29th: Modular: The Web’s New Architecture

ContactSign Up for Free
Community Plugin
View plugin on GitHub


A Gatsby plugin for react-redux with built-in server-side rendering support and persistance.


npm install --save gatsby-plugin-react-redux-persist react-redux redux redux-persist

How to use

./src/state/createStore.js // same path you provided in gatsby-config

import { createStore } from 'redux';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';

function reducer() {

const persistConfig = {
  key: 'root',
const persistedReducer = persistReducer(persistConfig, reducer);

export default (preloadedState = {}) => {
  const store = createStore(
    preloadedState, // initial state
  const persistor = persistStore(store);
  return { store, persistor };


module.exports = {
  plugins: [
      resolve: `gatsby-plugin-react-redux-persist`,
      options: {
        // [required] - path to your createStore module
        pathToCreateStoreModule: './src/state/createStore',
        // [optional] - options passed to `serialize-javascript`
        // info:
        // will be merged with these defaults:
        serialize: {
          space: 0,
          // if `isJSON` is set to `false`, `eval` is used to deserialize redux state,
          // otherwise `JSON.parse` is used
          isJSON: true,
          unsafe: false,
          ignoreFunction: true,
        // [optional] - if true will clean up after itself on the client, default:
        cleanupOnClient: true,
        // [optional] - name of key on `window` where serialized state will be stored, default:
        windowKey: '__PRELOADED_STATE__',

For more informations about redux-persist visit their website


Thanks to Leonid Nikiforenko for original plugin.



© 2022 Gatsby, Inc.