<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url><loc>https://jackwhitworth.com/</loc><lastmod>2026-04-24</lastmod></url><url><loc>https://jackwhitworth.com/about/</loc><lastmod>2026-02-04</lastmod></url><url><loc>https://jackwhitworth.com/blog/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/htmx-and-wagtail-cms-quickstart/</loc><lastmod>2025-11-12</lastmod></url><url><loc>https://jackwhitworth.com/blog/efficient-wagtail-page-querying/</loc><lastmod>2025-10-24</lastmod></url><url><loc>https://jackwhitworth.com/blog/wagtail-no-scheduled-publishing-option/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/using-wagtail-seo-hours-of-operation-in-templates/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/adding-request-headers-dokploy-traefik/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/changing-wagtail-choiceblocks-without-migrations/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/i-rebuilt-hermitclock-with-wagtail-django/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/dockerise-python-with-a-background-cron-runner/</loc><lastmod>2025-11-24</lastmod></url><url><loc>https://jackwhitworth.com/blog/writing-a-minimal-wagtail-poetry-node-dockerfile/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/how-to-run-pygame-in-the-browser/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/dokploy-and-docker-mailserver-with-10-10-deliverability/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/valet-linux-on-wsl-ubuntu-windows-11/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/wireguard-vpn-for-an-open-nat-wg-easy/</loc><lastmod>2026-04-08</lastmod></url><url><loc>https://jackwhitworth.com/blog/dockerise-django-npm-multi-stage-builds/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/auto-refresh-browser-with-django/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/how-to-correctly-size-wordpress-images/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/hosting-updateable-wordpress-plugins-on-github/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/testing-laravel-livewire-in-github-actions/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/hermitclock-development-august-2024/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/html-page-caching-with-wordpress-cloudflare/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/hermitclock-development-july-2024/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/remove-website-field-wordpress-comments/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/youtube-api-laravel-guzzle-http/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/add-a-honeypot-to-livewire-volt-forms/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/hermitclock-development-may-2024/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/the-success-of-hermitclocks-launch/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/block-wordpress-comment-spam-with-cloudflare/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/dnsmasq-domain-resolution-with-docker-compose/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/local-php-development-with-docker-compose/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/automatically-update-pypi-on-github-release/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/git-interactive-rebase-and-reset/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/foreign-keys-in-laravel/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/using-wordpress-via-composer/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/a-guide-to-optimising-image-sizes-in-divi/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/compile-python-to-exe-files-with-pyinstaller/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/run-npm-composer-in-git-deployment-actions/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/cloudflare-r2-buckets-with-wordpress/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/use-cloudflare-ssl-certificates-with-plesk/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/how-to-use-cloudflare-alongside-email-hosting/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/block-contact-form-7-spam-with-cloudflare/</loc><lastmod>2025-10-13</lastmod></url><url><loc>https://jackwhitworth.com/blog/optimise-swift-performance-divi/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/swift-performance-ai-benchmarks/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/view-and-dequeue-excess-scripts-in-wordpress/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/automatically-set-post-featured-image-on-publish/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/python-decorators/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/return-values-from-a-python-thread/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/python-pygame-solar-system-simulation/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/blog/get-xml-sitemap-using-python/</loc><lastmod>2025-10-09</lastmod></url><url><loc>https://jackwhitworth.com/blog/django-locking-database-records/</loc><lastmod>2025-11-24</lastmod></url><url><loc>https://jackwhitworth.com/blog/django-and-wagtail-test-factories/</loc><lastmod>2025-11-24</lastmod></url><url><loc>https://jackwhitworth.com/blog/directly-filtering-wagtail-parentchild-pages/</loc><lastmod>2025-12-18</lastmod></url><url><loc>https://jackwhitworth.com/blog/writing-wagtail-streamfield-content-migrations/</loc><lastmod>2026-02-18</lastmod></url><url><loc>https://jackwhitworth.com/blog/useful-django-unit-test-patterns/</loc><lastmod>2026-03-24</lastmod></url><url><loc>https://jackwhitworth.com/project/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/email-recognition-with-tensorflow/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/pygame-dungeon-crawler-game/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/thegmtim-ca-redesign-rebuild/</loc><lastmod>2026-02-05</lastmod></url><url><loc>https://jackwhitworth.com/project/zomboid-rcon-python-package/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/web-scraping-listings-from-rightmove/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/prismpress-gutenberg-block/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/hermitclock/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/my-website/</loc><lastmod>2026-02-16</lastmod></url><url><loc>https://jackwhitworth.com/project/the-imp-and-skizz-podcast/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/wagtailmenupage/</loc><lastmod>2025-10-14</lastmod></url><url><loc>https://jackwhitworth.com/project/ticketingstack/</loc><lastmod>2025-10-18</lastmod></url><url><loc>https://jackwhitworth.com/project/the-button/</loc><lastmod>2026-02-05</lastmod></url><url><loc>https://jackwhitworth.com/contact/</loc><lastmod>2026-02-05</lastmod></url>
</urlset>
