<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ihorkharchyshyn.vercel.app/</loc>
<lastmod>2026-10-07T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/extensions</loc>
<lastmod>2026-09-21T16:45:40.675Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog</loc>
<lastmod>2026-10-07T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/page/2</loc>
<lastmod>2026-09-09T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/page/3</loc>
<lastmod>2026-08-12T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/page/4</loc>
<lastmod>2026-07-19T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/page/5</loc>
<lastmod>2026-07-07T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/chrome-extension-foundations</loc>
<lastmod>2026-09-30T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/extension-security</loc>
<lastmod>2026-10-02T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/extension-publishing</loc>
<lastmod>2026-10-05T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/website-architecture</loc>
<lastmod>2026-10-07T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/react-next-typescript</loc>
<lastmod>2026-09-23T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/web-quality</loc>
<lastmod>2026-09-25T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/category/backend-devops</loc>
<lastmod>2026-09-28T08:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/landing-page-technology-keep-it-fast-and-maintainable</loc>
<lastmod>2026-10-07T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-publishing-checklist</loc>
<lastmod>2026-10-05T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/secure-message-passing-in-chrome-extensions</loc>
<lastmod>2026-10-02T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-use-the-chrome-tabs-api-safely</loc>
<lastmod>2026-09-30T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/session-cookies-vs-jwt-for-web-authentication</loc>
<lastmod>2026-09-28T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/technical-seo-checklist-for-next-js</loc>
<lastmod>2026-09-25T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/loading-and-error-boundaries-in-next-js</loc>
<lastmod>2026-09-23T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/multi-tenant-saas-architecture-for-web-products</loc>
<lastmod>2026-09-21T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-web-store-listing-optimization-without-hype</loc>
<lastmod>2026-09-18T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/content-script-isolation-and-page-security</loc>
<lastmod>2026-09-16T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-add-context-menus-to-a-chrome-extension</loc>
<lastmod>2026-09-14T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/postgresql-schema-design-for-web-applications</loc>
<lastmod>2026-09-11T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-reduce-javascript-bundle-size</loc>
<lastmod>2026-09-09T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/authentication-architecture-in-next-js</loc>
<lastmod>2026-09-07T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/ecommerce-website-architecture-decisions</loc>
<lastmod>2026-09-04T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-debug-a-manifest-v3-service-worker</loc>
<lastmod>2026-09-02T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/remote-code-rules-in-manifest-v3</loc>
<lastmod>2026-08-31T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/keyboard-shortcuts-for-chrome-extensions</loc>
<lastmod>2026-08-28T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/graphql-vs-rest-choose-by-workload</loc>
<lastmod>2026-08-26T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/image-optimization-for-modern-websites</loc>
<lastmod>2026-08-24T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/forms-and-server-actions-in-next-js</loc>
<lastmod>2026-08-21T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/website-architecture-for-a-small-business</loc>
<lastmod>2026-08-19T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/end-to-end-testing-chrome-extensions-with-playwright</loc>
<lastmod>2026-08-17T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/content-security-policy-for-chrome-extensions</loc>
<lastmod>2026-08-14T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-use-chrome-storage-in-manifest-v3</loc>
<lastmod>2026-08-12T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/rest-api-design-for-product-teams</loc>
<lastmod>2026-08-10T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/core-web-vitals-a-practical-optimization-workflow</loc>
<lastmod>2026-08-07T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/typescript-props-patterns-for-react-components</loc>
<lastmod>2026-08-05T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-choose-a-database-for-a-web-application</loc>
<lastmod>2026-08-03T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/unit-testing-chrome-extension-logic</loc>
<lastmod>2026-07-31T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-web-store-data-disclosure-checklist</loc>
<lastmod>2026-07-29T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-message-passing-without-fragile-code</loc>
<lastmod>2026-07-27T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/next-js-caching-and-revalidation-explained</loc>
<lastmod>2026-07-23T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/data-fetching-in-the-next-js-app-router</loc>
<lastmod>2026-07-22T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/react-server-components-vs-client-components</loc>
<lastmod>2026-07-21T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/a-maintainable-next-js-app-router-project-structure</loc>
<lastmod>2026-07-20T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/headless-cms-vs-traditional-cms</loc>
<lastmod>2026-07-19T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/next-js-vs-react-with-vite-for-a-new-website</loc>
<lastmod>2026-07-18T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/static-ssr-or-csr-choose-the-right-rendering-model</loc>
<lastmod>2026-07-17T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-choose-a-technology-stack-for-a-website</loc>
<lastmod>2026-07-16T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-write-a-chrome-extension-privacy-policy</loc>
<lastmod>2026-07-15T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/optional-permissions-for-better-extension-privacy</loc>
<lastmod>2026-07-14T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/host-permissions-in-manifest-v3-explained</loc>
<lastmod>2026-07-13T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-permissions-a-least-privilege-guide</loc>
<lastmod>2026-07-12T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-side-panel-extensions-architecture-and-setup</loc>
<lastmod>2026-07-11T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-build-a-chrome-extension-options-page</loc>
<lastmod>2026-07-10T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-build-a-chrome-extension-popup-ui</loc>
<lastmod>2026-07-09T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-content-scripts-a-practical-guide</loc>
<lastmod>2026-07-08T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-service-workers-explained</loc>
<lastmod>2026-07-07T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-write-a-manifest-v3-manifest-json-file</loc>
<lastmod>2026-07-06T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/chrome-extension-project-structure-that-scales</loc>
<lastmod>2026-07-05T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/blog/how-to-build-a-chrome-extension-with-manifest-v3</loc>
<lastmod>2026-07-04T08:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/watersportgps</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/daily-readings</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/it-future</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/people-street</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/pdf-ai</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/contiant</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/verblike</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/galterra</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/spendifly</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/intervit-pm</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/browser-extensions</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/zolution-society</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/consultant-w</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/projects/lightyear</loc>
<lastmod>2026-07-23T08:32:53.557Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/extensions/native-color-picker</loc>
<lastmod>2026-07-23T09:20:12.998Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/extensions/client-feedback-collector</loc>
<lastmod>2026-07-23T09:24:50.740Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/extensions/full-screen-capture</loc>
<lastmod>2026-07-23T09:25:47.816Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://ihorkharchyshyn.vercel.app/extensions/font-picker</loc>
<lastmod>2026-07-23T09:26:25.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
</urlset>
