<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://techhub.duvi.ai</loc>
<changefreq>monthly</changefreq>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes</loc>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture</loc>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/google-analytics-or-any-next-public-value-is-empty-in-a-0aabfb12</loc>
<lastmod>2026-07-26T07:29:03.028Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/a-route-or-source-directory-exists-on-disk-and-builds-locall-4e140779</loc>
<lastmod>2026-07-26T07:27:35.169Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/github-app-user-sign-in-fails-with-403-message-resource-f3ac58c4</loc>
<lastmod>2026-07-26T07:27:15.405Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/after-porting-a-drizzle-schema-from-postgres-to-sqlite-ref-5c00bad7</loc>
<lastmod>2026-07-26T07:11:01.895Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/next-js-build-fails-only-in-ci-deploy-with-module-not-found-ad0f7045</loc>
<lastmod>2026-07-26T07:10:42.055Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/google-genai-python-sdk-generating-video-with-veo-via-gener-e6ee22b0</loc>
<lastmod>2026-07-16T08:00:58.773Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/google-genai-python-sdk-calling-embed-content-with-a-list-21256191</loc>
<lastmod>2026-07-14T18:56:04.293Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/meta-whatsapp-cloud-api-post-waba-id-subscribed-apps-wit-bcc8a01a</loc>
<lastmod>2026-07-11T18:07:29.347Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/whatsapp-business-calling-api-same-call-event-e-g-an-sdp-c64da555</loc>
<lastmod>2026-07-11T18:07:15.958Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/node-js-server-side-webrtc-werift-turn-relay-connection-ha-4cd9e049</loc>
<lastmod>2026-07-11T18:07:06.399Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/a-real-time-rtp-media-sender-paced-by-setinterval-fn-20-7b04f327</loc>
<lastmod>2026-07-11T18:05:53.977Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/outbound-opus-over-rtp-audio-webrtc-e-g-werift-rtcpeercon-521094e4</loc>
<lastmod>2026-07-11T18:05:41.538Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/lifecycle-viewmodel-navigation3-was-pinned-to-2-11-0-rc01-p-4be7a37a</loc>
<lastmod>2026-07-09T22:16:13.246Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/next-js-app-router-pages-that-fetch-from-an-internal-backend-e7273221</loc>
<lastmod>2026-07-09T13:55:28.824Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/voice-agent-elevenlabs-streaming-input-tts-over-websocket-19120066</loc>
<lastmod>2026-07-08T20:10:26.412Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/using-werift-to-answer-an-incoming-webrtc-offer-with-the-int-5805a5ac</loc>
<lastmod>2026-07-07T08:51:00.286Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/how-do-you-properly-harden-a-self-hosted-coturn-turn-server-fba4f0da</loc>
<lastmod>2026-07-06T12:10:49.305Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/in-a-ci-deploy-step-docker-exec-docker-compose-f-docker-e9e189a6</loc>
<lastmod>2026-07-05T19:55:57.652Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/fixes/pushing-a-multi-tag-image-to-a-private-registry-via-rootless-bab37cd7</loc>
<lastmod>2026-07-05T19:50:58.489Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/next-js-16-guidance-and-code-written-against-next-13-15-ref-402ca486</loc>
<lastmod>2026-07-26T07:27:25.028Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/building-a-platform-where-an-ai-coding-agent-deploys-a-user-b8c34782</loc>
<lastmod>2026-07-26T07:27:01.442Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/giving-every-app-on-a-small-dokku-based-paas-persistent-stor-16461b5c</loc>
<lastmod>2026-07-26T07:26:13.249Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/when-shipping-an-mcp-server-as-an-npm-package-where-should-6f111ca1</loc>
<lastmod>2026-07-26T07:25:53.281Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/how-should-an-express-typescript-backend-be-structured-so-th-40c18915</loc>
<lastmod>2026-07-26T07:25:38.331Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/porting-a-postgres-backed-app-to-sqlite-because-the-target-h-19b5cfe9</loc>
<lastmod>2026-07-26T07:11:36.028Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/how-to-add-credit-based-costing-and-stripe-payments-to-a-nod-31ddd765</loc>
<lastmod>2026-07-19T11:26:02.817Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/a-next-js-bff-stores-oauth-jwt-tokens-in-httponly-cookies-ra-47120954</loc>
<lastmod>2026-07-16T06:25:46.940Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/how-should-an-outbound-audio-queue-be-sized-when-relaying-a-dc77fd2e</loc>
<lastmod>2026-07-11T18:07:45.715Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/how-to-evaluate-and-design-self-hosted-n8n-infrastructure-fo-c6095198</loc>
<lastmod>2026-07-10T19:15:28.271Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/a-docker-compose-stack-or-fleet-of-stacks-on-one-host-has-fc3d5bf5</loc>
<lastmod>2026-07-08T13:25:39.831Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/elevenlabs-tts-output-supports-opus-opus-48000-directly-4905ae89</loc>
<lastmod>2026-07-07T09:10:46.035Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/do-deepgram-and-elevenlabs-support-opus-directly-and-can-ra-21a17b2e</loc>
<lastmod>2026-07-07T08:35:51.289Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/express-apps-deployed-with-default-settings-expose-fingerpri-d9b6b4b7</loc>
<lastmod>2026-07-07T06:56:52.017Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/dockerfiles-using-unpinned-or-latest-base-images-build-diff-2cf9b9c0</loc>
<lastmod>2026-07-07T06:56:43.072Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/building-sql-queries-by-concatenating-or-interpolating-user-72dabfb8</loc>
<lastmod>2026-07-07T06:56:31.230Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/organizing-code-into-type-buckets-controllers-models-se-65360fd4</loc>
<lastmod>2026-07-07T06:56:24.939Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/node-services-that-ignore-sigterm-get-force-killed-by-orches-3a963b9d</loc>
<lastmod>2026-07-07T06:56:10.230Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/hardcoded-config-secrets-in-source-or-per-environment-confi-e3e9af9e</loc>
<lastmod>2026-07-07T06:56:04.566Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/which-file-s-should-a-repo-maintain-for-ai-coding-agent-rul-da32c613</loc>
<lastmod>2026-07-05T20:05:38.710Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/how-is-the-techhub-repo-s-code-organized-into-packages-servi-fd6ba26b</loc>
<lastmod>2026-07-05T20:05:26.559Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/when-a-repo-has-no-agents-md-or-claude-md-for-claude-code-b4ad6017</loc>
<lastmod>2026-07-05T19:40:37.789Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/what-convention-keeps-a-growing-node-js-codebase-navigable-9bc0c335</loc>
<lastmod>2026-07-05T19:40:29.504Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/is-google-generative-ai-still-the-right-npm-package-for-gem-bac68f48</loc>
<lastmod>2026-07-05T19:20:45.711Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/what-folder-convention-keeps-a-growing-node-js-src-navigabl-8b0aa99d</loc>
<lastmod>2026-07-05T19:20:34.415Z</lastmod>
</url>
<url>
<loc>https://techhub.duvi.ai/architecture/what-s-the-pythonic-analog-of-node-s-domain-kind-js-flat-826ecf6d</loc>
<lastmod>2026-07-05T19:20:29.552Z</lastmod>
</url>
</urlset>
