<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.craigbuckler.com</loc>
    <lastmod>2026-04-07T20:40:27.421Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/what-are-webhooks-a-simple-guide-with-practical-examples</loc>
    <lastmod>2024-11-26T11:11:30.127Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/nodemon-auto-restart-node-apps</loc>
    <lastmod>2024-10-31T12:37:16.440Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/css-animations-linear-easing-function</loc>
    <lastmod>2024-09-11T09:30:45.662Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/modern-media-queries-beyond-browser-widths</loc>
    <lastmod>2024-08-27T10:08:25.124Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/an-introduction-to-nodejs-debugging</loc>
    <lastmod>2023-06-06T09:27:43.325Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/an-introduction-to-javascript-proxies</loc>
    <lastmod>2023-06-02T09:40:43.927Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/javascript-asynchronous-programming-tips-tricks-gotchas</loc>
    <lastmod>2023-03-27T11:33:34.230Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/client-and-server-side-javascript-web-workers</loc>
    <lastmod>2023-02-14T14:46:18.454Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/30-ways-to-improve-website-performance-with-css</loc>
    <lastmod>2022-12-20T12:15:57.640Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/es-modules-browsers-nodejs</loc>
    <lastmod>2022-10-15T11:36:32.807Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/javascript-clipboard-api-cut-copy-paste</loc>
    <lastmod>2022-10-07T16:56:28.498Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/native-web-components-introduction</loc>
    <lastmod>2022-09-30T15:54:39.044Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/printer-friendly-web-pages-with-css</loc>
    <lastmod>2022-09-30T15:48:20.917Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/modern-css-selectors-is-where-has</loc>
    <lastmod>2022-08-11T00:00:34.559Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/use-chrome-code-editor-and-debugger</loc>
    <lastmod>2022-06-05T23:45:18.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/ajax-battle-xmlhttprequest-vs-the-fetch-api</loc>
    <lastmod>2022-04-16T16:41:27.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/an-introduction-to-javascript-error-handling-944ade15d83</loc>
    <lastmod>2022-02-21T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/form-validation-using-javascripts-constraint-validation-api-fd4b70720288</loc>
    <lastmod>2022-01-10T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/is-it-time-for-the-javascript-temporal-api-34804b13b25d</loc>
    <lastmod>2021-12-26T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/13-of-darkest-design-patterns-you-can-find-on-internet-9170f3584ef2</loc>
    <lastmod>2021-10-14T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/the-ultimate-guide-to-getting-started-with-the-rollup-js-javascript-bundler-2ebec9398656</loc>
    <lastmod>2021-10-07T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/the-complete-guide-to-localizing-your-app-with-javascripts-internationalization-api-a6bfb6584129</loc>
    <lastmod>2021-07-30T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/the-ultimate-guide-to-browser-side-storage-84bedc1d97e5</loc>
    <lastmod>2021-07-14T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-use-indexeddb-to-manage-state-in-javascript-50ac358d896c</loc>
    <lastmod>2021-07-08T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/getting-started-with-indexeddb-for-big-data-storage-c8d47c718471</loc>
    <lastmod>2021-06-03T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-evaluate-site-speed-with-the-performance-api-7a0ae742b465</loc>
    <lastmod>2021-05-12T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/the-complete-guide-to-googles-core-web-vitals-performance-metrics-228c8b8a4d9c</loc>
    <lastmod>2021-04-28T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-install-an-isolated-wordpress-development-environment-with-docker-7c1f21c05528</loc>
    <lastmod>2021-04-13T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/the-ultimate-guide-to-fixing-javascript-performance-problems-in-browser-devtools-fde6b57802c6</loc>
    <lastmod>2021-04-13T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-clean-your-docker-data-9fad45538888</loc>
    <lastmod>2021-03-31T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/15-devtool-secrets-for-javascript-developers-d1478daba095</loc>
    <lastmod>2021-03-22T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-setup-an-apache-php-and-https-development-environment-with-docker-ddad6c94364d</loc>
    <lastmod>2021-03-12T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/12-ways-to-improve-your-devtools-console-logging-d92089f71b01</loc>
    <lastmod>2021-03-12T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/10-of-the-weirdest-web-performance-tips-862e0007b19b</loc>
    <lastmod>2021-02-08T00:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/an-introduction-to-docker-for-web-developers-ca10f5b73775</loc>
    <lastmod>2020-07-02T15:33:26.486Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/how-to-use-web-fonts-in-css-a0326f4d6a4d</loc>
    <lastmod>2019-01-30T16:22:38.467Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/archive</loc>
    <lastmod>2026-04-07T20:40:27.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.craigbuckler.com/recommendations</loc>
    <lastmod>2026-04-07T20:40:27.421Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>