<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.alainngongang.dev</loc>
<lastmod>2026-04-17T11:42:48.202Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/application-programming-interface</loc>
<lastmod>2026-04-01T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/zod-from-scratch-validate-infer-and-use-schemas-in-a-real-project</loc>
<lastmod>2026-03-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/real-life-use-case-codex-website-authentification-using-oauth-2-0</loc>
<lastmod>2026-03-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/mastering-zod-type-safe-validation-in-modern-typescript</loc>
<lastmod>2026-03-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/understanding-oauth-2-0-why-every-developer-should-know-this-protocol</loc>
<lastmod>2026-03-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/race-conditions-in-search-inputs-and-how-to-fix-them</loc>
<lastmod>2026-03-19T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/from-manual-checks-to-automated-guardrails-a-typescript-developer-s-guide-to-husky</loc>
<lastmod>2026-03-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/from-external-api-to-database-a-structured-data-pipeline-pattern-for-modern-web-apps</loc>
<lastmod>2026-03-12T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/the-provider-container-and-component-pattern-in-react</loc>
<lastmod>2026-04-17T11:42:19.461Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/why-your-backend-should-be-the-middleman-securing-third-party-api-calls-in-production</loc>
<lastmod>2026-04-17T11:42:20.766Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/representational-state-transfer-rest-architecture</loc>
<lastmod>2026-04-17T11:42:24.772Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.alainngongang.dev/posts/integrating-gsap-animations-into-react-a-codex-website-case-study</loc>
<lastmod>2026-04-17T11:42:26.181Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
