<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ctroenv.vercel.app</loc>
<lastmod>2026-06-25T11:42:24.320Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog</loc>
<lastmod>2026-06-25T11:42:24.320Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/getting-started</loc>
<lastmod>2026-06-25T11:41:44.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/getting-started/quick-start</loc>
<lastmod>2026-06-25T11:41:44.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/getting-started/core-concepts</loc>
<lastmod>2026-06-25T11:41:44.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/define-env</loc>
<lastmod>2026-06-25T11:41:43.970Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/string</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/number</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/boolean</loc>
<lastmod>2026-06-25T11:41:43.966Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/semver</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/pick</loc>
<lastmod>2026-06-25T11:41:43.982Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/ip</loc>
<lastmod>2026-06-25T11:41:43.974Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/uuid</loc>
<lastmod>2026-06-25T11:41:43.994Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/chainable</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/refinements</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/errors</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/schema-composition</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/security</loc>
<lastmod>2026-06-25T11:41:43.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/core/custom-validators</loc>
<lastmod>2026-06-25T11:41:43.966Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/index</loc>
<lastmod>2026-06-25T11:41:43.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/validate</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/generate</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/check</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/docs</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/init</loc>
<lastmod>2026-06-25T11:41:43.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/cli/configuration</loc>
<lastmod>2026-06-25T11:41:43.966Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/node</loc>
<lastmod>2026-06-25T11:41:44.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/vite</loc>
<lastmod>2026-06-25T11:41:44.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/nextjs</loc>
<lastmod>2026-06-25T11:41:44.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/migration/from-t3-env</loc>
<lastmod>2026-06-25T11:41:44.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/migration/from-envalid</loc>
<lastmod>2026-06-25T11:41:44.006Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/docs/v1/migration/from-dotenv</loc>
<lastmod>2026-06-25T11:41:44.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/build-vs-runtime-validation</loc>
<lastmod>2026-06-25T11:41:43.890Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/chain-order-gotcha</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/cicd-env-validation</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/cloudflare-workers</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/composite-source-detection</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/custom-validators</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/debugging-env-errors</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/deno-and-bun-support</loc>
<lastmod>2026-06-25T11:41:43.910Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/error-handling-patterns</loc>
<lastmod>2026-06-25T11:41:43.918Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/migrating-from-dotenv</loc>
<lastmod>2026-06-25T11:41:43.926Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/monorepo-env</loc>
<lastmod>2026-06-25T11:41:43.918Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/nextjs-adapter-patterns</loc>
<lastmod>2026-06-25T11:41:43.922Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/node-adapter-deep-dive</loc>
<lastmod>2026-06-25T11:41:43.922Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/performance-and-bundle-size</loc>
<lastmod>2026-06-25T11:41:43.926Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/proxy-traps-deep-dive</loc>
<lastmod>2026-06-25T11:41:43.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/schema-composition-for-library-authors</loc>
<lastmod>2026-06-25T11:41:43.942Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/secret-masking</loc>
<lastmod>2026-06-25T11:41:43.942Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/testing-env-vars</loc>
<lastmod>2026-06-25T11:41:43.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/turbopack-and-quality</loc>
<lastmod>2026-06-25T11:41:43.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/typescript-inference-tricks</loc>
<lastmod>2026-06-25T11:41:43.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/v1-0-0</loc>
<lastmod>2026-06-25T11:41:43.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/v1-0-1</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/v1-1-0</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/v1-1-1</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/v1-2-0</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/vite-build-time-validation</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ctroenv.vercel.app/blog/why-ctroenv</loc>
<lastmod>2026-06-25T11:41:43.954Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
