{"id":396975,"date":"2023-08-25T05:17:48","date_gmt":"2023-08-25T05:17:48","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=396975"},"modified":"2024-03-14T13:34:21","modified_gmt":"2024-03-14T13:34:21","slug":"redux-toolkit-implementation-in-next-js-project","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/","title":{"rendered":"Redux toolkit implementation in Next js project"},"content":{"rendered":"\n<p>Today in this blog we&#8217;ll cover the redux toolkit so let&#8217;s jump on the topic <\/p>\n\n\n\n<p>State management is a crucial aspect of modern web applications, allowing developers to efficiently handle data and capture user interactions.<\/p>\n\n\n\n<p>There are various options for state management. One of the widely used solutions is <a href=\"https:\/\/redux-toolkit.js.org\/\" rel=\"nofollow\">Redux Toolkit<\/a>, which aims to simplify working with Redux by reducing boilerplate code and providing developer-friendly tools.<\/p>\n\n\n\n<p>In this comprehensive guide, we will explore how to leverage  Redux Toolkit for state management in Next.js applications. We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why State Management Matters<\/h2>\n\n\n\n<p> State management involves handling and manuplating data within an application, ensuring that components have access to the necessary information to produce the desired results. <\/p>\n\n\n\n<p>In Next.js applications, state management typically involves two types of states: <strong>global<\/strong> state and <strong>component<\/strong> state. The global state contains data shared by all components, such as the authentication status, while the component state stores data specific to individual components. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up a Next.js Project with Redux Toolkit<\/h2>\n\n\n\n<p>To begin using Redux Toolkit in a Next.js project, we&#8217;ll need to set up a basic Next.js project and install the necessary dependencies. Let&#8217;s walk through the steps:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Create a Next.js Project<\/h3>\n\n\n\n<p>In the first step, you have to set up this project You can follow this <a href=\"https:\/\/webkul.com\/blog\/project-setup-next-js\/\">setup nextjs project<\/a> blog that covers all about the next js project setup.<\/p>\n\n\n\n<p>Now our next app name is &#8220;next-redux-toolkit&#8221;. Once the project is created, navigate into the project directory by running:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">cd next-redux-toolkit<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><br>Step 2: Install Dependencies<\/h3>\n\n\n\n<p>Now, we need to install the necessary dependencies for working with Redux Toolkit in our Next.js project. Run the following command in your terminal:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">npm install @reduxjs\/toolkit react-redux<\/pre>\n\n\n\n<p>This command will install Redux Toolkit and its integration with React, which is essential for using Redux in a Next.js application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuring the Redux Store<\/h2>\n\n\n\n<p>The next step is to configure the Redux store, which serves as the central container for the application&#8217;s state. The store is responsible for managing and updating the state through actions and reducers. To set up the Redux store, we&#8217;ll create a new folder named &#8220;redux&#8221; in the root directory of our Next.js project. Inside this folder, create a new file named &#8220;store.js&#8221; and add the following code:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import { configureStore } from &#039;@reduxjs\/toolkit&#039;;\nimport profileReducer from &#039;.\/reducers\/profileSlice&#039;;\n\nexport default configureStore({\n  reducer: {\n    profile: profileReducer\n  }\n});<\/pre>\n\n\n\n<p>In the code above, we use the <code><strong>configureStore<\/strong><\/code> function from Redux Toolkit to create and configure the Redux store. We specify the reducers using the <code>reducer<\/code> object, where <code><strong>profileReducer<\/strong><\/code> is responsible for managing actions related to the profile state. By setting up the Redux store, we establish the foundation for managing the application&#8217;s state using Redux Toolkit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Defining State Slices<\/h2>\n\n\n\n<p>In Redux, state slices are components that encapsulate the logic for managing the state of specific data items within the store. <\/p>\n\n\n\n<p>Redux Toolkit provides the <code>createSlice<\/code> function, which automatically generates the reducer, action creators, and action types for a slice. Let&#8217;s create a state slice for managing the user profile state.<\/p>\n\n\n\n<p>Inside the &#8220;redux&#8221; folder, create a new folder named &#8220;reducers&#8221;. Inside this folder, create a file named &#8220;profileSlice.js&#8221; and add the following code:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import { createSlice } from &#039;@reduxjs\/toolkit&#039;;\n\nconst profileSlice = createSlice({\n  name: &#039;profile&#039;,\n  initialState: {\n    name: null\n  },\n  reducers: {\n    SET_NAME: (state, action) =&gt; {\n      state.name = action.payload;\n    }\n  }\n});\n\nexport const { SET_NAME } = profileSlice.actions;\nexport default profileSlice.reducer;<\/pre>\n\n\n\n<p>In the code above, we use the <code>createSlice<\/code> function to create a state slice for the user profile state. The <code>profileSlice<\/code> object includes the name of the slice (<code>profile<\/code>) and its initial state, which contains the default values for the state properties. <\/p>\n\n\n\n<p>We define a single reducer function named <code>SET_NAME<\/code>, which updates the <code>name<\/code> property of the state when called with a payload.<\/p>\n\n\n\n<p>The <code><em>createSlice<\/em><\/code> function automatically generates action creators and action types based on the defined reducers. We export the <code><em>SET_NAME<\/em><\/code> action creator and <code><em>profileSlice.reducer<\/em><\/code>, which represents the generated action creator and reducer function for the profile slice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating a Component to Test Redux Toolkit&#8217;s State Management<\/h2>\n\n\n\n<p>To test the state management functionality provided by Redux Toolkit, let&#8217;s create a Next.js component that allows the user to enter a name and display it on the page.<\/p>\n\n\n\n<p> This component will utilize the Redux store and the profile state slice. Open the &#8220;index.js&#8221; file in the &#8220;pages&#8221; directory, delete the existing code, and add the following code:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import styles from &#039;@\/styles\/Home.module.css&#039;;\nimport { useRef } from &#039;react&#039;;\nimport { useSelector, useDispatch } from &#039;react-redux&#039;;\nimport { SET_NAME } from &#039;..\/..\/redux\/reducers\/profileSlice&#039;;\n\nfunction DisplayName() {\n  const { name } = useSelector((state) =&gt; state.profile);\n  return (\n    &lt;h1&gt; I am {name} !!&lt;\/h1&gt;\n  );\n}\n\nexport default function Home() {\n  const inputName = useRef();\n  const dispatch = useDispatch();\n\n  function submitName() {\n    dispatch(SET_NAME(inputName.current.value));\n  }\n\n  return (\n    &lt;&gt;\n      &lt;main className={styles.main}&gt;\n        &lt;input placeholder=&#039;enter name&#039; ref={inputName} \/&gt;\n        &lt;button onClick={submitName}&gt;Enter name&lt;\/button&gt;\n        &lt;DisplayName \/&gt;\n      &lt;\/main&gt;\n    &lt;\/&gt;\n  );\n}<\/pre>\n\n\n\n<p>The code above creates a Next.js component that renders an input field and a button. When the user enters a name and clicks the button, the <code>submitName<\/code> function dispatches the <code>SET_NAME<\/code> action with the entered name as the payload. <\/p>\n\n\n\n<p>This action updates the <code>name<\/code> property in the profile state. The <code>DisplayName<\/code> component utilizes the <code>useSelector<\/code> hook to access the <code>name<\/code> property from the profile state and display it on the page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Updating the _app.js File<\/h2>\n\n\n\n<p>To configure Redux Toolkit for the entire Next.js application, we need to wrap the application with the Redux Provider. This ensures that the Redux store and the available states are accessible to all components in the application. Open the &#8220;_app.js&#8221; file and update it as follows:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import { Provider } from &#039;react-redux&#039;;\nimport store from &#039;..\/..\/redux\/store&#039;;\n\nexport default function App({ Component, pageProps }) {\n  return (\n    &lt;Provider store={store}&gt;\n      &lt;Component {...pageProps} \/&gt;\n    &lt;\/Provider&gt;\n  );\n}<\/pre>\n\n\n\n<p>In the code above, we import the <code>Provider<\/code> component from <code>react-redux<\/code> and the Redux store from the &#8220;store.js&#8221; file we created earlier. We wrap the <code>&lt;Component {...pageProps} \/&gt;<\/code> with the <code>Provider<\/code> component, passing the Redux store as a prop. This ensures that all components in the Next.js application can access the Redux store and the associated states.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In this comprehensive guide, we explored how to leverage Redux Toolkit for state management in Next.js applications. We discussed the importance of state management and how Redux Toolkit simplifies the process by reducing boilerplate code. We provided step-by-step instructions on setting up a Next.js project with Redux Toolkit, configuring the Redux store, defining state slices, and creating components to test the state management functionality.<\/p>\n\n\n\n<p>By following this guide, you should now have a solid understanding of how to effectively manage state in Next.js applications using the Redux Toolkit. With Redux Toolkit&#8217;s streamlined development experience, you can focus more on building features and less on writing repetitive code. So go ahead, implement Redux Toolkit in your Next.js projects, and enjoy the benefits of efficient state management!<\/p>\n\n\n\n<p>Start your&nbsp;<a href=\"https:\/\/webkul.com\/nextjs-development-services\/\"> Headless <\/a><a href=\"https:\/\/webkul.com\/headless-commerce-development-services\/\">Development&nbsp;<\/a>with Webkul.<\/p>\n\n\n\n<p>Happy Coding !!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today in this blog we&#8217;ll cover the redux toolkit so let&#8217;s jump on the topic State management is a crucial aspect of modern web applications, allowing developers to efficiently handle data and capture user interactions. There are various options for state management. One of the widely used solutions is Redux Toolkit, which aims to simplify <a href=\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":556,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-396975","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Redux toolkit implementation in Next js project<\/title>\n<meta name=\"description\" content=\"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redux toolkit implementation in Next js project\" \/>\n<meta property=\"og:description\" content=\"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-25T05:17:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-14T13:34:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Abhijeet Kumar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhijeet Kumar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\"},\"author\":{\"name\":\"Abhijeet Kumar\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/b5a304024503b6ebcc17ca4eb99c4761\"},\"headline\":\"Redux toolkit implementation in Next js project\",\"datePublished\":\"2023-08-25T05:17:48+00:00\",\"dateModified\":\"2024-03-14T13:34:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\"},\"wordCount\":1005,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\",\"url\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\",\"name\":\"Redux toolkit implementation in Next js project\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"datePublished\":\"2023-08-25T05:17:48+00:00\",\"dateModified\":\"2024-03-14T13:34:21+00:00\",\"description\":\"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redux toolkit implementation in Next js project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/b5a304024503b6ebcc17ca4eb99c4761\",\"name\":\"Abhijeet Kumar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7da15c87a9e02a6df1a4c86e9c28fdc2b835c30595c7476236c342bd212d70f8?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7da15c87a9e02a6df1a4c86e9c28fdc2b835c30595c7476236c342bd212d70f8?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Abhijeet Kumar\"},\"description\":\"Abhijeet is a skilled Software Engineer specializing in the Magento platform. With expertise in Magento 2 Headless Compatible Extensions and Headless PWA services, he crafts innovative solutions that enhance eCommerce functionality. A skilled developer, offering unique, headless solutions.\",\"url\":\"https:\/\/webkul.com\/blog\/author\/abhijit-kumar018\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Redux toolkit implementation in Next js project","description":"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/","og_locale":"en_US","og_type":"article","og_title":"Redux toolkit implementation in Next js project","og_description":"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.","og_url":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2023-08-25T05:17:48+00:00","article_modified_time":"2024-03-14T13:34:21+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png","type":"image\/png"}],"author":"Abhijeet Kumar","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Abhijeet Kumar","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/"},"author":{"name":"Abhijeet Kumar","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/b5a304024503b6ebcc17ca4eb99c4761"},"headline":"Redux toolkit implementation in Next js project","datePublished":"2023-08-25T05:17:48+00:00","dateModified":"2024-03-14T13:34:21+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/"},"wordCount":1005,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/","url":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/","name":"Redux toolkit implementation in Next js project","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"datePublished":"2023-08-25T05:17:48+00:00","dateModified":"2024-03-14T13:34:21+00:00","description":"We will cover the basics of Redux, the benefits of using Redux Toolkit, and step-by-step instructions on integrating Redux Toolkit into a Next.js project.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/redux-toolkit-implementation-in-next-js-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Redux toolkit implementation in Next js project"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/b5a304024503b6ebcc17ca4eb99c4761","name":"Abhijeet Kumar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7da15c87a9e02a6df1a4c86e9c28fdc2b835c30595c7476236c342bd212d70f8?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7da15c87a9e02a6df1a4c86e9c28fdc2b835c30595c7476236c342bd212d70f8?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Abhijeet Kumar"},"description":"Abhijeet is a skilled Software Engineer specializing in the Magento platform. With expertise in Magento 2 Headless Compatible Extensions and Headless PWA services, he crafts innovative solutions that enhance eCommerce functionality. A skilled developer, offering unique, headless solutions.","url":"https:\/\/webkul.com\/blog\/author\/abhijit-kumar018\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/396975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/556"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=396975"}],"version-history":[{"count":9,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/396975\/revisions"}],"predecessor-version":[{"id":427536,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/396975\/revisions\/427536"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=396975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=396975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=396975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}