<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://freevinlookup.hashnode.dev/why-input-masks-can-hurt-vin-paste-ux-more-than-they-help</loc>
    <lastmod>2026-10-07T11:51:25.385Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/opentelemetry-style-spans-for-vin-decode-latency-and-upstream-attribution</loc>
    <lastmod>2026-10-07T11:46:07.266Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/displaying-transmissionstyle-from-vpic-without-inventing-gear-counts</loc>
    <lastmod>2026-10-07T11:40:39.995Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/react-error-boundaries-around-vin-decode-widgets-without-blanking-the-page</loc>
    <lastmod>2026-10-07T11:37:05.503Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/deduplicating-vin-decode-jobs-in-a-queue-store-before-hitting-nhtsa</loc>
    <lastmod>2026-10-07T11:29:46.059Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/displaying-drivetype-from-vpic-without-inventing-awd-marketing-claims</loc>
    <lastmod>2026-10-07T11:24:27.016Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/safe-patterns-for-marketplace-webhooks-that-trigger-vin-verify-jobs</loc>
    <lastmod>2026-10-07T11:18:32.088Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/displaying-fueltypeprimary-from-vpic-without-overselling-range-or-mpg</loc>
    <lastmod>2026-10-07T11:13:00.581Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/designing-cache-keys-for-vin-decode-results-normalize-first</loc>
    <lastmod>2026-10-07T11:07:43.285Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/showing-enginehp-and-displacement-from-vpic-without-implying-dyno-numbers</loc>
    <lastmod>2026-10-07T11:01:40.599Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/accessible-vin-input-labels-errors-and-screen-reader-announcements</loc>
    <lastmod>2026-10-07T10:56:19.586Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/metrics-that-matter-for-a-free-vin-decode-product</loc>
    <lastmod>2026-10-07T10:50:54.682Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/when-to-proxy-nhtsa-vpic-from-your-backend-instead-of-calling-from-the-browser</loc>
    <lastmod>2026-10-07T10:41:46.857Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/handling-missing-plantcode-and-plantcity-from-vpic-without-fake-factory-labels</loc>
    <lastmod>2026-10-07T10:35:03.353Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/fair-queuing-of-vin-decode-requests-under-burst-traffic</loc>
    <lastmod>2026-10-07T10:29:23.444Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/displaying-bodyclass-from-vpic-without-inventing-trim-packages</loc>
    <lastmod>2026-10-07T10:23:54.186Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/why-not-to-autocomplete-vins-from-partial-input-against-nhtsa</loc>
    <lastmod>2026-10-07T10:18:26.542Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/setting-per-request-time-budgets-for-nhtsa-calls-in-serverless</loc>
    <lastmod>2026-10-07T10:13:19.125Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/sanitizing-clipboard-paste-events-for-vin-inputs-in-the-browser</loc>
    <lastmod>2026-10-07T10:08:13.112Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/using-etag-if-none-match-style-patterns-for-local-wmi-cache-freshness</loc>
    <lastmod>2026-10-07T10:03:19.030Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/feature-flagging-experimental-vin-decode-fields-without-confusing-users</loc>
    <lastmod>2026-10-07T09:58:19.732Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/detecting-manufacturer-string-renames-in-cached-wmi-data</loc>
    <lastmod>2026-10-07T09:51:45.754Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/progress-ux-for-decodevinvaluesbatch-jobs-when-some-vins-fail</loc>
    <lastmod>2026-10-07T09:46:14.514Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/structured-logging-for-vin-decode-pipelines-without-cleartext-vins</loc>
    <lastmod>2026-10-07T09:40:53.017Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/cleaning-ocr-noise-from-phone-photo-vin-captures-before-validation</loc>
    <lastmod>2026-10-07T09:34:48.524Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/surviving-nhtsa-vpic-response-field-additions-without-brittle-typescript-types</loc>
    <lastmod>2026-10-07T09:29:29.657Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/idempotent-vin-decode-handlers-for-retries-and-double-clicks</loc>
    <lastmod>2026-10-07T09:24:14.082Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/product-copy-for-ambiguous-vin-model-year-letters-across-the-30-year-cycle</loc>
    <lastmod>2026-10-07T09:18:23.646Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/circuit-breaker-for-nhtsa-decodevinvalues-when-error-rates-spike</loc>
    <lastmod>2026-10-07T09:13:56.566Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/strip-invisible-unicode-whitespace-from-pasted-vins-before-decode</loc>
    <lastmod>2026-10-07T09:07:10.459Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/soft-flag-listing-make-vs-decoded-make-without-auto-banning-sellers</loc>
    <lastmod>2026-10-07T09:01:45.452Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/guard-the-17-character-vin-length-before-any-nhtsa-call</loc>
    <lastmod>2026-10-07T08:57:15.948Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/negative-caching-unknown-wmis-and-failed-vin-decodes-without-hiding-real-assignments</loc>
    <lastmod>2026-10-07T08:50:36.326Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/showing-plantcity-and-plantstate-from-vpic-without-implying-a-build-date</loc>
    <lastmod>2026-10-07T08:45:58.457Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/stale-while-revalidate-caching-for-vin-decode-responses</loc>
    <lastmod>2026-10-07T08:39:03.622Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/decodevinvalues-vs-decodevin-choosing-a-vpic-json-shape-for-product-uis</loc>
    <lastmod>2026-10-07T08:34:32.825Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/partial-nhtsa-decodes-in-the-ui-without-fake-completeness</loc>
    <lastmod>2026-10-07T08:27:35.667Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/rejecting-i-o-and-q-iso-vin-charset-rules-in-validation</loc>
    <lastmod>2026-10-07T08:23:30.170Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/single-flight-request-coalescing-for-identical-vin-lookups</loc>
    <lastmod>2026-10-07T08:16:15.842Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/wmi-country-and-region-hints-from-vpic-without-overclaiming-origin</loc>
    <lastmod>2026-10-07T08:11:00.959Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/ux-for-nhtsa-decode-timeouts-and-partial-json</loc>
    <lastmod>2026-10-07T08:04:36.538Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/vin-vs-vis-in-code-year-plant-and-serial-in-positions-10-17</loc>
    <lastmod>2026-10-07T07:57:13.187Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/retry-backoff-and-jitter-for-nhtsa-decodevinvalues-without-thundering-herds</loc>
    <lastmod>2026-10-07T07:52:16.097Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/handling-null-and-empty-nhtsa-vpic-fields-without-inventing-specs</loc>
    <lastmod>2026-10-07T07:46:16.645Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/normalize-vin-input-before-check-digits-and-nhtsa-calls</loc>
    <lastmod>2026-10-07T07:39:57.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/handling-nhtsa-rate-limits-in-a-free-vin-product-without-lying-to-users</loc>
    <lastmod>2026-10-07T07:31:11.943Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/combining-wmi-and-plant-code-a-two-field-sanity-check-for-marketplace-listings</loc>
    <lastmod>2026-10-07T07:24:39.269Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/caching-nhtsa-wmi-lookups-safely-ttls-stale-data-and-manufacturer-changes</loc>
    <lastmod>2026-10-07T07:15:54.049Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/mapping-vin-model-year-codes-in-typescript-without-hard-coding-one-decade</loc>
    <lastmod>2026-10-07T07:09:04.115Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://freevinlookup.hashnode.dev/designing-error-states-for-vin-lookup-uis</loc>
    <lastmod>2026-10-07T07:04:13.259Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>