<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://engahmed.hashnode.dev</loc>
    <lastmod>2026-09-19T14:54:08.090Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/hybrid-search-in-postgres-with-pgvector-field-notes-on-hnsw-tsvector-and-why-pure-vector-search-missed-exact-matches-8ff978</loc>
    <lastmod>2026-09-13T06:02:26.332Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/web-workers-in-the-next-js-app-router-field-notes-on-import-meta-url-datacloneerror-and-what-a-worker-cannot-fix-67fdb8</loc>
    <lastmod>2026-09-05T06:02:37.402Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/turborepo-in-a-real-monorepo-field-notes-on-cache-misses-next-public-poisoning-and-the-tasks-key-that-replaced-pipeline-1835a9</loc>
    <lastmod>2026-09-04T06:02:15.621Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/temporal-in-production-field-notes-on-replacing-javascript-date-the-same-day-bug-and-what-doesn-t-cross-the-rsc-boundary-6fa0e4</loc>
    <lastmod>2026-09-02T06:02:36.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/parallel-routes-and-intercepting-routes-in-the-next-js-app-router-field-notes-on-the-photo-modal-pattern-bc3e3f</loc>
    <lastmod>2026-09-01T06:02:18.352Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/observability-in-the-next-js-app-router-field-notes-on-instrumentation-ts-onrequesterror-and-the-trace-that-leaked-across-requests-d7bf86</loc>
    <lastmod>2026-08-31T06:06:48.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/multi-tenant-saas-in-the-next-js-app-router-field-notes-on-subdomain-middleware-tenant-scoped-caching-and-the-leak-i-almost-shipped-bbe064</loc>
    <lastmod>2026-08-29T06:02:35.275Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/database-connections-in-serverless-field-notes-on-pool-math-pgbouncer-transaction-mode-and-the-singleton-hmr-kept-recreating-e15ab7</loc>
    <lastmod>2026-08-28T06:10:30.497Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/environment-variables-in-next-js-field-notes-on-next-public-inlining-the-secret-that-almost-shipped-and-failing-the-build-with-zod-684beb</loc>
    <lastmod>2026-08-25T06:02:24.609Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/webhooks-in-the-next-js-app-router-field-notes-on-raw-bodies-signature-verification-and-returning-200-before-the-work-34d074</loc>
    <lastmod>2026-08-24T06:07:25.354Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/next-image-in-next-js-16-field-notes-on-lcp-the-sizes-prop-that-doubles-bandwidth-and-what-optimization-costs-2ca6f6</loc>
    <lastmod>2026-08-23T06:03:35.183Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/rate-limiting-in-the-next-js-app-router-field-notes-on-middleware-redis-and-the-server-action-that-looks-like-every-other-post-981432</loc>
    <lastmod>2026-08-21T13:47:33.542Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/testing-the-next-js-app-router-field-notes-on-server-components-mocking-fetch-and-where-playwright-takes-over-c62c76</loc>
    <lastmod>2026-08-19T06:11:56.143Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/file-uploads-in-the-next-js-app-router-field-notes-on-vercel-blob-client-uploads-and-the-callback-that-never-fires-on-localhost-0da6df</loc>
    <lastmod>2026-08-18T06:02:04.509Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/web-push-in-the-next-js-app-router-field-notes-on-service-workers-vapid-and-the-ios-rule-that-silently-blocks-everything-ba51d8</loc>
    <lastmod>2026-08-15T06:13:28.237Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/content-security-policy-in-the-next-js-app-router-field-notes-on-nonces-strict-dynamic-and-the-middleware-that-made-every-page-dynamic-50ccd5</loc>
    <lastmod>2026-08-14T06:03:49.844Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/passkeys-in-production-field-notes-on-webauthn-conditional-ui-and-the-rp-id-that-broke-my-login-094b4d</loc>
    <lastmod>2026-08-13T06:03:24.142Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/modern-css-deleted-my-layout-javascript-field-notes-on-container-queries-has-and-subgrid-93ff72</loc>
    <lastmod>2026-08-12T06:07:05.150Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/modern-css-deleted-my-layout-javascript-field-notes-on-container-queries-has-and-subgrid-c32379</loc>
    <lastmod>2026-08-11T06:03:32.674Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/background-jobs-on-vercel-in-2026-field-notes-on-waituntil-queues-workflow-and-cron-3f24a7</loc>
    <lastmod>2026-08-10T06:03:55.836Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/running-ai-generated-code-safely-field-notes-on-vercel-sandbox-9ce6f7</loc>
    <lastmod>2026-08-09T06:03:01.517Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/node-js-has-a-test-runner-now-field-notes-on-dropping-jest-for-scripts-and-libraries-5e5e95</loc>
    <lastmod>2026-08-08T06:33:54.895Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/getting-typed-json-out-of-llms-field-notes-on-generateobject-f56b84</loc>
    <lastmod>2026-08-07T06:02:54.885Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/node-js-runs-typescript-now-field-notes-on-native-type-stripping-8e0a5b</loc>
    <lastmod>2026-08-02T06:11:31.338Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/abortcontroller-beyond-fetch-the-cancellation-patterns-i-use-in-every-react-app-f9103a</loc>
    <lastmod>2026-08-01T06:12:53.867Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/one-api-key-for-every-model-field-notes-on-the-vercel-ai-gateway-639ed2</loc>
    <lastmod>2026-07-31T14:14:07.349Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/websockets-on-vercel-functions-real-time-without-a-separate-server-604b83</loc>
    <lastmod>2026-07-27T22:36:48.352Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/next-js-middleware-in-2026-auth-guards-a-b-tests-and-what-belongs-at-the-edge-86b191</loc>
    <lastmod>2026-07-26T21:06:43.049Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/shipping-a-bilingual-next-js-app-in-english-and-arabic-routing-rtl-and-what-crawlers-actually-see-0282e6</loc>
    <lastmod>2026-07-25T13:04:09.401Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/streaming-ai-responses-in-next-js-sse-fetch-streams-and-what-breaks-in-production-fbf2b6</loc>
    <lastmod>2026-07-23T06:12:47.171Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/what-changed-in-zod-4-and-how-i-migrated-production-schemas-3d2759</loc>
    <lastmod>2026-07-22T06:02:28.908Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/route-handlers-vs-server-actions-in-next-js-when-i-reach-for-each-4d12c7</loc>
    <lastmod>2026-07-21T06:09:06.006Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/url-state-in-the-next-js-app-router-how-i-stopped-losing-ui-state-on-refresh-9151f5</loc>
    <lastmod>2026-07-20T13:29:18.867Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/error-handling-in-the-next-js-app-router-how-i-stopped-one-throw-from-blanking-the-page-6cfc2b</loc>
    <lastmod>2026-07-19T15:53:28.762Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/view-transitions-in-next-js-how-i-added-animated-page-changes-without-a-library-c3f6f5</loc>
    <lastmod>2026-07-18T07:28:04.787Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/debugging-hydration-mismatches-in-the-next-js-app-router-3e99c5</loc>
    <lastmod>2026-07-16T10:18:59.709Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/fixing-inp-field-notes-on-interaction-to-next-paint-in-a-react-app-10c61a</loc>
    <lastmod>2026-07-16T06:24:42.106Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/fixing-inp-field-notes-on-interaction-to-next-paint-in-a-react-app-118edd</loc>
    <lastmod>2026-07-16T06:08:36.484Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/next-js-server-actions-are-public-endpoints-how-i-lock-them-down-4fd1b2</loc>
    <lastmod>2026-07-13T03:40:31.266Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/useoptimistic-react-19-patterns-pitfalls-tmp9k3x</loc>
    <lastmod>2026-07-13T00:26:33.469Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/useoptimistic-in-react-19-patterns-and-pitfalls-from-real-forms</loc>
    <lastmod>2026-07-13T00:14:46.370Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/upgrading-to-next-js-16-field-notes-from-two-production-apps</loc>
    <lastmod>2026-07-06T14:03:10.718Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/next-js-15-5-cache-components-the-rsc-caching-story-finally-clicks</loc>
    <lastmod>2026-06-30T10:16:08.136Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/shipping-with-the-claude-agent-sdk-6-patterns-that-survived-production</loc>
    <lastmod>2026-06-30T09:54:47.377Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/building-ai-native-frontends-with-claude-code-and-mcp</loc>
    <lastmod>2026-06-28T00:26:55.290Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/signals-vs-react-compiler-the-fine-grained-reactivity-showdown</loc>
    <lastmod>2026-06-28T00:24:22.299Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/react-server-components-in-production-lessons-from-2026</loc>
    <lastmod>2026-06-28T00:21:44.440Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/archive</loc>
    <lastmod>2026-09-19T14:54:08.090Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://engahmed.hashnode.dev/recommendations</loc>
    <lastmod>2026-09-19T14:54:08.090Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>