<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.greenroots.info</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/a-deep-dive-into-ssr-streaming-with-react</loc>
    <lastmod>2026-07-21T03:28:53.859Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/react-design-patterns-for-building-maintainable-forms</loc>
    <lastmod>2026-02-10T04:07:28.691Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/javascript-variables-explained-values-references</loc>
    <lastmod>2026-01-28T12:52:25.745Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/javascript-explained-from-scratch</loc>
    <lastmod>2026-01-22T03:54:32.175Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-does-event-loop-handle-promises-ever-thought</loc>
    <lastmod>2025-06-19T10:20:45.432Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/top-10-qa-automation-tools-for-startups-in-2026</loc>
    <lastmod>2026-01-12T13:18:53.951Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/exploring-advanced-javascript-features-ecmascript-2023</loc>
    <lastmod>2024-09-23T11:18:51.908Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/shadcn-dialog-with-form-three-tips</loc>
    <lastmod>2024-09-16T11:20:33.086Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/javascript-array-method-with-immutability</loc>
    <lastmod>2024-07-11T01:33:51.876Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/nextjs-and-next-auth-v5-guide-to-social-logins</loc>
    <lastmod>2024-06-12T11:13:07.672Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/what-is-authentication-and-authorization</loc>
    <lastmod>2024-03-20T06:09:15.149Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-upload-and-preview-images-in-reactjs</loc>
    <lastmod>2024-03-09T04:03:13.440Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-navigate-between-routes-in-nextjs</loc>
    <lastmod>2023-12-08T04:42:40.682Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/10-git-stash-commands-every-developer-should-know</loc>
    <lastmod>2023-12-08T05:06:31.438Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/the-definitive-guide-to-javascript-date-and-time</loc>
    <lastmod>2023-11-17T03:56:53.377Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/dynamic-routes-nextjs-app-router</loc>
    <lastmod>2023-11-09T08:31:35.800Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/the-best-way-to-pad-a-string-in-javascript</loc>
    <lastmod>2023-11-02T04:30:27.353Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/why-use-javascript-function-default-parameters</loc>
    <lastmod>2023-10-30T07:11:44.728Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/the-best-way-to-get-the-month-name-from-a-date-in-javascript</loc>
    <lastmod>2023-09-19T08:26:25.093Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/create-an-e-learning-platform-using-caisy-graphql-nextjs-app-router</loc>
    <lastmod>2024-02-28T11:39:57.152Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/understanding-nextjs-server-actions-with-examples</loc>
    <lastmod>2024-06-21T02:50:33.778Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-build-a-progressive-web-app-using-javascript-and-vite</loc>
    <lastmod>2023-07-04T04:44:05.534Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/explain-react-18-usetransition-hook-with-examples</loc>
    <lastmod>2023-05-03T02:30:40.845Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/advanced-javascript-console-logging-for-developers</loc>
    <lastmod>2023-05-03T02:59:55.601Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-create-a-self-clicking-button-with-reactjs</loc>
    <lastmod>2023-05-03T02:32:15.535Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/what-do-you-need-to-know-to-become-proficient-in-javascript</loc>
    <lastmod>2023-03-22T03:32:39.602Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/top-10-git-commands-every-developer-should-know</loc>
    <lastmod>2023-11-29T10:45:46.145Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/future-proof-your-code-top-javascript-frameworks-to-watch-in-2023</loc>
    <lastmod>2023-03-21T11:48:49.520Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/5-twitter-threads-to-teach-you-technical-blogging</loc>
    <lastmod>2023-01-23T12:51:25.382Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/dev-retro-2022-what-made-me-a-better-developer-this-year</loc>
    <lastmod>2022-12-28T15:45:11.839Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/do-you-take-notes-the-story-of-a-notetaker</loc>
    <lastmod>2022-11-30T03:38:44.955Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-create-an-eyedropper-tool-using-javascript</loc>
    <lastmod>2022-11-08T06:38:25.149Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/15-repositories-to-contribute-hactoberfest-2022</loc>
    <lastmod>2023-01-10T02:25:16.688Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/what-is-open-source-and-how-to-get-started</loc>
    <lastmod>2022-09-30T14:59:44.839Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-perform-an-end-to-end-test-of-a-react-app-using-cypress</loc>
    <lastmod>2022-09-20T02:39:42.045Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/nhost-an-open-source-backend-as-a-service-for-web-and-mobile-apps</loc>
    <lastmod>2022-09-30T02:36:10.834Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/build-your-ecommerce-store-using-gatsby-and-strapi</loc>
    <lastmod>2022-08-01T12:06:22.272Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/why-developers-must-start-blogging-and-how-to-start</loc>
    <lastmod>2022-06-29T01:01:32.063Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/20-useful-markdown-syntaxes-for-developers</loc>
    <lastmod>2022-09-30T02:36:41.266Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/the-story-of-the-custom-scrollbar-using-css</loc>
    <lastmod>2022-05-26T07:54:25.278Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/introducing-reactplay-learn-create-share-reactjs-projects</loc>
    <lastmod>2023-05-03T02:34:22.841Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/comment-system-using-react-and-github-discussions</loc>
    <lastmod>2023-05-03T02:35:13.378Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-copy-to-clipboard-in-javascript</loc>
    <lastmod>2022-05-02T06:34:05.647Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-parse-json-in-javascript</loc>
    <lastmod>2022-04-21T05:11:46.668Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/how-to-split-a-string-in-javascript</loc>
    <lastmod>2022-04-18T10:46:50.772Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/reactjs-virtual-dom-and-reconciliation-explain-like-im-five</loc>
    <lastmod>2023-05-03T02:35:42.036Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/why-do-we-need-a-social-network-for-software-developers</loc>
    <lastmod>2022-04-01T07:38:05.243Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/react-useeffect-hook-usages-you-must-know</loc>
    <lastmod>2023-05-08T10:35:37.961Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/integrate-supertokens-passwordless-authentication-with-nextjs</loc>
    <lastmod>2022-03-09T03:29:24.530Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/react-hook-usestate-lazy-initialization-previous-state</loc>
    <lastmod>2023-05-03T02:36:57.642Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/page/about</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/page/github-sponsors</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/page/collab</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/a-blend-of-redux-and-reactjs-state-management-made-easy</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/javascript-cracking-the-nuts</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/blogging-tips-and-tricks</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/jamstack</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/go-serverless</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/learn-with-tips-tricks</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/hacking</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/web-security</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/javascript-promises</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/build-with-next-js</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/git-github-open-source</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/react</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/40-days-of-javascript</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/series/tapascript-tidbits</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/archive</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.greenroots.info/recommendations</loc>
    <lastmod>2026-08-12T13:57:20.741Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>