<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://expona.dev</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://expona.dev/blog</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/categories</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/interviews</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/tags</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/authors</loc>
<lastmod>2026-10-29T19:34:31.991Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/privacy</loc>
<changefreq>yearly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://expona.dev/about</loc>
<changefreq>yearly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/contact</loc>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-distributed-events</loc>
<lastmod>2026-10-27T14:41:18.555Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-i-prepare-for-senior-interviews</loc>
<lastmod>2026-10-27T14:40:51.674Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-strangler-fig-pattern</loc>
<lastmod>2026-10-27T14:41:07.546Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/circuit-breaker</loc>
<lastmod>2026-10-27T14:41:07.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-saga-pattern</loc>
<lastmod>2026-10-27T14:41:07.684Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managed-real-time-services</loc>
<lastmod>2026-10-27T14:41:18.589Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-on-mobile</loc>
<lastmod>2026-10-27T14:41:18.644Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-metrics-to-track</loc>
<lastmod>2026-10-27T14:41:18.700Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-toggles</loc>
<lastmod>2026-10-27T14:41:07.283Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/competing-consumers</loc>
<lastmod>2026-10-27T14:41:07.423Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiter-patterns</loc>
<lastmod>2026-10-27T14:41:07.476Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observability-for-websockets</loc>
<lastmod>2026-10-27T14:41:18.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-design-patterns-lessons</loc>
<lastmod>2026-10-27T14:41:06.904Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/patterns-inside-nestjs</loc>
<lastmod>2026-10-27T14:41:07.036Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/patterns-inside-dotnet</loc>
<lastmod>2026-10-27T14:41:07.054Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refactoring-toward-patterns</loc>
<lastmod>2026-10-27T14:41:07.090Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/anti-patterns-to-recognize</loc>
<lastmod>2026-10-27T14:41:07.161Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crdts-in-one-minute</loc>
<lastmod>2026-10-27T14:41:18.773Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mediatr-pipeline-behaviors</loc>
<lastmod>2026-10-27T14:41:39.474Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/learning-aws-as-an-application-developer</loc>
<lastmod>2026-10-28T05:41:46.445Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/promise-vs-settimeout-who-runs-first</loc>
<lastmod>2026-10-27T14:41:03.667Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vertical-slice-architecture</loc>
<lastmod>2026-10-27T14:41:39.509Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/respect-notification-preferences</loc>
<lastmod>2026-10-27T14:41:18.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/atomic-operations-in-go</loc>
<lastmod>2026-10-27T14:40:06.145Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/growing-your-career-by-building-in-public</loc>
<lastmod>2026-10-27T14:40:51.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/objects-and-references</loc>
<lastmod>2026-10-27T14:41:03.508Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managing-dns-and-certificates-across-accounts</loc>
<lastmod>2026-10-27T14:39:54.196Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/types-equality-and-coercion</loc>
<lastmod>2026-10-27T14:41:03.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-slow-consumers</loc>
<lastmod>2026-10-27T14:41:18.985Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sustainable-pace-beats-heroics</loc>
<lastmod>2026-10-27T14:40:51.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dates-intl-and-temporal</loc>
<lastmod>2026-10-27T14:41:03.261Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/health-checks-and-uptime-for-laravel</loc>
<lastmod>2026-10-27T14:40:26.714Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-patterns</loc>
<lastmod>2026-10-27T14:41:03.296Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/limit-async-concurrency</loc>
<lastmod>2026-10-27T14:41:03.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-snapshot-plus-delta-pattern</loc>
<lastmod>2026-10-27T14:41:19.022Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-ihttpclientfactory-always</loc>
<lastmod>2026-10-27T14:41:39.150Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/basic-types-done-right</loc>
<lastmod>2026-10-27T14:41:03.146Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/valuetask-vs-task</loc>
<lastmod>2026-10-27T14:41:39.169Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/live-location-tracking-architecture</loc>
<lastmod>2026-10-27T14:41:19.078Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tracing-with-opentelemetry</loc>
<lastmod>2026-10-27T14:41:39.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scheduled-jobs-hangfire-vs-quartz</loc>
<lastmod>2026-10-27T14:41:39.073Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/health-checks-that-mean-something</loc>
<lastmod>2026-10-27T14:41:39.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-logging-with-serilog</loc>
<lastmod>2026-10-27T14:41:39.035Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typing-indicators-without-flooding</loc>
<lastmod>2026-10-27T14:41:19.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/heartbeats-keep-connections-honest</loc>
<lastmod>2026-10-27T14:41:19.325Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-flows-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/performance-avoid-unnecessary-rebuilds</loc>
<lastmod>2026-10-27T14:40:57.852Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exhaustiveness-checks-with-never</loc>
<lastmod>2026-10-27T14:41:02.875Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/type-guards-and-assertion-functions</loc>
<lastmod>2026-10-27T14:41:02.893Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-sent-events-are-underrated</loc>
<lastmod>2026-10-27T14:41:19.452Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-types-in-typescript</loc>
<lastmod>2026-10-27T14:41:02.567Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/erasable-syntax-only</loc>
<lastmod>2026-10-27T14:41:02.622Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enums-vs-unions-vs-const-objects</loc>
<lastmod>2026-10-27T14:41:02.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typing-third-party-libraries</loc>
<lastmod>2026-10-27T14:41:02.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/runtime-validation</loc>
<lastmod>2026-10-27T14:41:02.750Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-vs-sse-vs-polling</loc>
<lastmod>2026-10-27T14:41:19.468Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-rabbitmq-sqs-or-redis-streams</loc>
<lastmod>2026-10-27T14:41:19.554Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-kafka-applications</loc>
<lastmod>2026-10-27T14:41:19.590Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/named-capture-groups</loc>
<lastmod>2026-10-27T14:41:02.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typescript-monorepos</loc>
<lastmod>2026-10-27T14:41:02.248Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-js-ts-toolchain-in-2026</loc>
<lastmod>2026-10-27T14:41:02.286Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sink-connectors-save-weeks</loc>
<lastmod>2026-10-27T14:41:19.678Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dotnet-aspire-for-local-development</loc>
<lastmod>2026-10-27T14:41:38.450Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/native-aot-for-dotnet-apis</loc>
<lastmod>2026-10-27T14:41:38.468Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-a-javascript-codebase-to-typescript</loc>
<lastmod>2026-10-27T14:41:01.925Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-typescript-code-review-checklist</loc>
<lastmod>2026-10-27T14:41:01.961Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stateless-vs-stateful-processing</loc>
<lastmod>2026-10-27T14:41:19.712Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/layout-constraints-go-down-sizes-go-up</loc>
<lastmod>2026-10-27T14:40:58.650Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sound-null-safety-in-dart</loc>
<lastmod>2026-10-27T14:40:58.771Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dart-essentials-for-typescript-developers</loc>
<lastmod>2026-10-27T14:40:58.789Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-i-added-flutter-to-my-toolkit</loc>
<lastmod>2026-10-27T14:40:58.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-javascript-and-typescript-lessons</loc>
<lastmod>2026-10-27T14:41:01.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/log-compaction</loc>
<lastmod>2026-10-27T14:41:19.762Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keys-in-flutter</loc>
<lastmod>2026-10-27T14:40:58.529Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/schema-validation-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.300Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/projections-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.371Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-query-operators</loc>
<lastmod>2026-10-27T14:40:13.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-php-and-laravel-the-recap</loc>
<lastmod>2026-10-27T14:40:26.602Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/outbox-and-change-data-capture</loc>
<lastmod>2026-10-27T14:41:19.796Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-repository-pattern-in-flutter</loc>
<lastmod>2026-10-27T14:40:58.153Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/networking-with-dio</loc>
<lastmod>2026-10-27T14:40:58.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flutter-app-architecture</loc>
<lastmod>2026-10-27T14:40:58.262Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/don-t-mix-three-state-libraries</loc>
<lastmod>2026-10-27T14:40:58.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/riverpod-for-scalable-state</loc>
<lastmod>2026-10-27T14:40:58.369Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-much-data-belongs-in-an-event</loc>
<lastmod>2026-10-27T14:41:19.814Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-in-nestjs</loc>
<lastmod>2026-10-27T14:41:35.148Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nestjs-architecture-in-one-picture</loc>
<lastmod>2026-10-27T14:41:35.185Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fonts-for-tamil-and-sinhala</loc>
<lastmod>2026-10-27T14:40:57.543Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payments-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.605Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/alert-on-lag-not-just-errors</loc>
<lastmod>2026-10-27T14:41:19.913Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-specific-configuration</loc>
<lastmod>2026-10-27T14:41:35.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/releasing-to-play-store-and-app-store</loc>
<lastmod>2026-10-27T14:40:57.345Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validation-with-validationpipe</loc>
<lastmod>2026-10-27T14:41:35.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/zod-as-an-alternative-to-class-validator</loc>
<lastmod>2026-10-27T14:41:35.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-consumer-lag</loc>
<lastmod>2026-10-27T14:41:19.930Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/back-of-the-envelope-estimation</loc>
<lastmod>2026-10-27T14:40:53.375Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-flutter-lessons</loc>
<lastmod>2026-10-27T14:40:57.021Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-flutter-starter</loc>
<lastmod>2026-10-27T14:40:57.060Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-flutter-versions</loc>
<lastmod>2026-10-27T14:40:57.096Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-mobile-tech-for-your-team</loc>
<lastmod>2026-10-27T14:40:57.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backward-compatible-schema-changes</loc>
<lastmod>2026-10-27T14:41:19.979Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/one-less-system-to-run</loc>
<lastmod>2026-10-27T14:41:20.081Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-replication-factor-3</loc>
<lastmod>2026-10-27T14:41:20.127Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cap-and-pacelc-without-the-jargon</loc>
<lastmod>2026-10-27T14:40:53.208Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/read-replicas-the-fine-print</loc>
<lastmod>2026-10-27T14:40:53.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/where-to-cache-browser-to-database</loc>
<lastmod>2026-10-27T14:40:53.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enable-the-idempotent-producer</loc>
<lastmod>2026-10-27T14:41:20.198Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/find-service-boundaries-in-the-business</loc>
<lastmod>2026-10-27T14:40:52.934Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monolith-first-the-honest-default</loc>
<lastmod>2026-10-27T14:40:52.969Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-an-e-commerce-checkout</loc>
<lastmod>2026-10-27T14:40:53.025Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/webhooks-that-don-t-lose-data</loc>
<lastmod>2026-10-27T14:40:53.080Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/idempotency-the-api-property-nobody-teaches</loc>
<lastmod>2026-10-27T14:40:53.115Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/delivery-semantics-explained</loc>
<lastmod>2026-10-27T14:41:20.216Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/practices-for-remote-and-hybrid-teams</loc>
<lastmod>2026-10-27T14:40:51.730Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/documentation-people-actually-read</loc>
<lastmod>2026-10-27T14:40:51.765Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observability-logs-metrics-and-traces</loc>
<lastmod>2026-10-27T14:40:52.804Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/special-index-types</loc>
<lastmod>2026-10-27T14:40:13.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-a-search-feature</loc>
<lastmod>2026-10-27T14:40:52.840Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-in-one-picture</loc>
<lastmod>2026-10-27T14:41:20.356Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-i-review-code-as-a-tech-lead</loc>
<lastmod>2026-10-27T14:40:52.589Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-git-workflow-for-teams</loc>
<lastmod>2026-10-27T14:40:52.625Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/trunk-based-development</loc>
<lastmod>2026-10-27T14:40:52.643Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/failure-is-a-feature-designing-resilient-systems</loc>
<lastmod>2026-10-27T14:40:52.733Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-technical-seo-launch-checklist</loc>
<lastmod>2026-10-27T14:41:23.357Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testcontainers-for-node</loc>
<lastmod>2026-10-27T14:41:34.251Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/e2e-tests-with-supertest</loc>
<lastmod>2026-10-27T14:41:34.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/estimating-software-work-honestly</loc>
<lastmod>2026-10-27T14:40:52.482Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/architecture-decision-records</loc>
<lastmod>2026-10-27T14:40:52.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keep-staging-out-of-google</loc>
<lastmod>2026-10-27T14:41:23.375Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rawbody-without-breaking-json-parsing</loc>
<lastmod>2026-10-27T14:41:34.082Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-with-multer-and-s3</loc>
<lastmod>2026-10-27T14:41:34.140Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graceful-shutdown-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.160Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/author-pages-and-e-e-a-t</loc>
<lastmod>2026-10-27T14:41:23.516Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-modules-forroot-and-forrootasync</loc>
<lastmod>2026-10-27T14:41:33.978Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graphql-with-nestjs-code-first</loc>
<lastmod>2026-10-27T14:41:34.020Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/an-idempotency-interceptor</loc>
<lastmod>2026-10-27T14:41:34.042Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/controlling-ai-crawlers</loc>
<lastmod>2026-10-27T14:41:23.567Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/helmet-in-nestjs</loc>
<lastmod>2026-10-27T14:41:33.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profiling-the-node-event-loop</loc>
<lastmod>2026-10-27T14:41:33.871Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/http-keep-alive-and-compression-in-node</loc>
<lastmod>2026-10-27T14:41:33.888Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-versioning-in-nestjs</loc>
<lastmod>2026-10-27T14:41:33.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-for-nestjs</loc>
<lastmod>2026-10-27T14:41:33.724Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pm2-docker-or-kubernetes-for-node</loc>
<lastmod>2026-10-27T14:41:33.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/time-to-first-byte-matters</loc>
<lastmod>2026-10-27T14:41:23.620Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-split-into-microservices</loc>
<lastmod>2026-10-27T14:41:33.597Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sessions-vs-jwt-an-honest-comparison</loc>
<lastmod>2026-10-27T14:40:52.165Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-module-boundaries</loc>
<lastmod>2026-10-27T14:41:33.633Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-modular-monolith-with-nestjs</loc>
<lastmod>2026-10-27T14:41:33.615Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cdn-and-caching-for-seo</loc>
<lastmod>2026-10-27T14:41:23.637Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-express-to-nestjs</loc>
<lastmod>2026-10-27T14:41:33.433Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-meta-lead-ads-webhook-pipeline</loc>
<lastmod>2026-10-27T14:41:33.506Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/process-webhooks-in-the-background</loc>
<lastmod>2026-10-27T14:41:33.488Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-nestjs-anti-patterns</loc>
<lastmod>2026-10-27T14:41:33.452Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prioritize-seo-issues-by-impact</loc>
<lastmod>2026-10-27T14:41:23.760Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-react-and-next-js-are-still-my-frontend-default</loc>
<lastmod>2026-10-27T14:41:30.296Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-node-devs-moving-to-nestjs</loc>
<lastmod>2026-10-27T14:41:33.376Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-personalization-engine</loc>
<lastmod>2026-10-27T14:40:52.016Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/integrating-third-party-apis-safely</loc>
<lastmod>2026-10-27T14:40:52.054Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/out-of-stock-product-pages</loc>
<lastmod>2026-10-27T14:41:23.863Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/local-seo-for-service-businesses</loc>
<lastmod>2026-10-27T14:41:23.915Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/find-and-fix-orphan-pages</loc>
<lastmod>2026-10-27T14:41:24.009Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/using-ai-in-the-engineering-workflow</loc>
<lastmod>2026-10-27T14:40:51.800Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/what-building-four-side-products-taught-me</loc>
<lastmod>2026-10-27T14:40:51.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-performance-optimization-method</loc>
<lastmod>2026-10-27T14:40:51.904Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-engineering-craft-lessons</loc>
<lastmod>2026-10-27T14:40:51.619Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-technology-a-decision-framework</loc>
<lastmod>2026-10-27T14:40:51.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-i-learn-a-new-stack-fast</loc>
<lastmod>2026-10-27T14:40:51.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/replica-sets-explained</loc>
<lastmod>2026-10-27T14:40:12.991Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-transactions</loc>
<lastmod>2026-10-27T14:40:13.053Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modern-java-syntax-you-should-be-using</loc>
<lastmod>2026-10-27T14:40:47.249Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-tunnel-platform-taught-me-networking</loc>
<lastmod>2026-10-27T14:40:51.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/precision-math-in-finance-apps</loc>
<lastmod>2026-10-27T14:40:51.922Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lessons-from-building-a-trading-platform</loc>
<lastmod>2026-10-27T14:40:51.941Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-vs-spring-boot-what-is-the-difference</loc>
<lastmod>2026-10-27T14:40:46.952Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-interview-questions-strings-and-memory</loc>
<lastmod>2026-10-27T14:40:46.987Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/equals-and-hashcode-the-contract</loc>
<lastmod>2026-10-27T14:40:47.128Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/email-systems-that-scale</loc>
<lastmod>2026-10-27T14:40:51.976Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-actions-are-public-endpoints</loc>
<lastmod>2026-10-27T14:41:29.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-in-spring-boot</loc>
<lastmod>2026-10-27T14:40:46.899Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-modern-next-js</loc>
<lastmod>2026-10-27T14:41:29.794Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-actions</loc>
<lastmod>2026-10-27T14:41:29.778Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rule-engines-for-non-engineers</loc>
<lastmod>2026-10-27T14:40:51.993Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/notfound-and-redirect</loc>
<lastmod>2026-10-27T14:41:29.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/loading-tsx</loc>
<lastmod>2026-10-27T14:41:29.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streaming-with-suspense</loc>
<lastmod>2026-10-27T14:41:29.676Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reconciliation-jobs-catch-silent-failures</loc>
<lastmod>2026-10-27T14:40:52.073Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/core-web-vitals-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.503Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/next-image-properly</loc>
<lastmod>2026-10-27T14:41:29.537Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-og-images-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.554Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-multi-gateway-payments</loc>
<lastmod>2026-10-27T14:40:52.092Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/useformstatus</loc>
<lastmod>2026-10-27T14:41:29.377Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keys-in-lists-explained</loc>
<lastmod>2026-10-27T14:41:29.414Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rendering-long-lists-fast</loc>
<lastmod>2026-10-27T14:41:29.432Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/owasp-api-security-risks-for-developers</loc>
<lastmod>2026-10-27T14:40:52.128Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/log-frontend-errors-in-production</loc>
<lastmod>2026-10-27T14:41:29.196Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-component-library</loc>
<lastmod>2026-10-27T14:41:29.286Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-cn-helper</loc>
<lastmod>2026-10-27T14:41:29.305Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/least-privilege-everywhere</loc>
<lastmod>2026-10-27T14:40:52.147Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/folder-structure-for-large-next-js-apps</loc>
<lastmod>2026-10-27T14:41:29.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/end-to-end-tests-with-playwright</loc>
<lastmod>2026-10-27T14:41:29.142Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-custom-hooks</loc>
<lastmod>2026-10-27T14:41:29.160Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/threat-modeling-in-30-minutes</loc>
<lastmod>2026-10-27T14:40:52.183Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-data-jpa-in-five-minutes</loc>
<lastmod>2026-10-27T14:40:46.599Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-post-release-monitoring-checklist</loc>
<lastmod>2026-10-27T14:40:52.218Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-elasticsearch-and-search-engineering-the-recap</loc>
<lastmod>2026-10-27T14:39:04.396Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/open-source-vs-hosted-models</loc>
<lastmod>2026-10-27T14:40:31.954Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/from-notebook-to-production</loc>
<lastmod>2026-10-27T14:40:31.991Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/talking-tech-with-non-technical-stakeholders</loc>
<lastmod>2026-10-27T14:40:52.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/canvas-vs-svg</loc>
<lastmod>2026-10-27T14:41:28.939Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-real-time-order-ticket</loc>
<lastmod>2026-10-27T14:41:28.991Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/throttle-high-frequency-updates</loc>
<lastmod>2026-10-27T14:41:28.974Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svg-in-react-for-custom-visuals</loc>
<lastmod>2026-10-27T14:41:28.956Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-readme-that-onboards</loc>
<lastmod>2026-10-27T14:40:52.286Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/standalone-output-for-docker</loc>
<lastmod>2026-10-27T14:41:28.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-for-product-listing-pages</loc>
<lastmod>2026-10-27T14:41:28.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lazy-vs-eager-fetching-in-jpa</loc>
<lastmod>2026-10-27T14:40:46.548Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-technical-interviews</loc>
<lastmod>2026-10-27T14:40:52.338Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-b-testing-without-layout-shift</loc>
<lastmod>2026-10-27T14:41:28.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/headless-cms-with-next-js</loc>
<lastmod>2026-10-27T14:41:28.727Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rendering-ckeditor-content-in-next-js</loc>
<lastmod>2026-10-27T14:41:28.744Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/what-senior-actually-means</loc>
<lastmod>2026-10-27T14:40:52.391Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-pages-router-to-app-router</loc>
<lastmod>2026-10-27T14:41:28.570Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-react-code-review-checklist</loc>
<lastmod>2026-10-27T14:41:28.605Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generic-components-in-typescript</loc>
<lastmod>2026-10-27T14:41:28.622Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/from-senior-engineer-to-tech-lead</loc>
<lastmod>2026-10-27T14:40:52.409Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-googlebot-renders-javascript</loc>
<lastmod>2026-10-27T14:41:25.046Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/method-security-with-preauthorize</loc>
<lastmod>2026-10-27T14:40:46.337Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-security-jwt-authentication</loc>
<lastmod>2026-10-27T14:40:46.372Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enums-in-go-with-iota</loc>
<lastmod>2026-10-27T14:40:06.281Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-geolocation-and-permissions</loc>
<lastmod>2026-10-27T14:39:32.303Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tf-idf-explained</loc>
<lastmod>2026-10-27T14:40:31.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/readable-assertions-with-assertj</loc>
<lastmod>2026-10-27T14:40:46.231Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-product-ux-patterns</loc>
<lastmod>2026-10-27T14:40:31.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/practical-ml-roadmap-for-developers</loc>
<lastmod>2026-10-27T14:40:31.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/standups-that-don-t-waste-time</loc>
<lastmod>2026-10-27T14:40:52.426Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keep-lastmod-honest</loc>
<lastmod>2026-10-27T14:41:24.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/x-robots-tag-for-non-html-files</loc>
<lastmod>2026-10-27T14:41:24.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/meta-robots-and-x-robots-tag</loc>
<lastmod>2026-10-27T14:41:24.933Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/write-a-design-doc-before-big-builds</loc>
<lastmod>2026-10-27T14:40:52.500Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/site-migrations-without-losing-traffic</loc>
<lastmod>2026-10-27T14:41:24.765Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/contract-testing-spring-boot-apis</loc>
<lastmod>2026-10-27T14:40:46.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/trailing-slashes-and-letter-case</loc>
<lastmod>2026-10-27T14:41:24.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/build-a-redirect-map-before-migrating</loc>
<lastmod>2026-10-27T14:41:24.782Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keep-a-tech-debt-register</loc>
<lastmod>2026-10-27T14:40:52.536Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internal-linking-architecture</loc>
<lastmod>2026-10-27T14:41:24.628Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-microservices-when-to-split</loc>
<lastmod>2026-10-27T14:40:46.058Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/infinite-scroll-that-google-can-crawl</loc>
<lastmod>2026-10-27T14:41:24.680Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-url-parameters</loc>
<lastmod>2026-10-27T14:41:24.646Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/technical-debt-talking-about-it-and-paying-it-down</loc>
<lastmod>2026-10-27T14:40:52.554Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/breadcrumblist-structured-data</loc>
<lastmod>2026-10-27T14:41:24.503Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/distributed-tracing-with-micrometer-and-opentelemetry</loc>
<lastmod>2026-10-27T14:40:45.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/article-structured-data</loc>
<lastmod>2026-10-27T14:41:24.574Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/faq-rich-results-are-mostly-gone</loc>
<lastmod>2026-10-27T14:41:24.539Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/write-commit-messages-for-future-you</loc>
<lastmod>2026-10-27T14:40:52.607Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/do-you-need-exactly-one-h1</loc>
<lastmod>2026-10-27T14:41:24.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/title-tags-that-rank-and-get-clicked</loc>
<lastmod>2026-10-27T14:41:24.452Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/meta-descriptions-still-matter</loc>
<lastmod>2026-10-27T14:41:24.434Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/heading-structure-for-seo-and-accessibility</loc>
<lastmod>2026-10-27T14:41:24.417Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/anatomy-of-a-solid-ci-cd-pipeline</loc>
<lastmod>2026-10-27T14:40:52.661Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/field-data-vs-lab-data</loc>
<lastmod>2026-10-27T14:41:24.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/interaction-to-next-paint</loc>
<lastmod>2026-10-27T14:41:24.314Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fonts-that-don-t-shift-your-layout</loc>
<lastmod>2026-10-27T14:41:24.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/zero-downtime-schema-changes-step-by-step</loc>
<lastmod>2026-10-27T14:40:52.697Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-for-cms-driven-content</loc>
<lastmod>2026-10-27T14:41:24.159Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/javascript-seo-essentials</loc>
<lastmod>2026-10-27T14:41:24.212Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hydration-and-seo</loc>
<lastmod>2026-10-27T14:41:24.194Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/next-js-seo-checklist</loc>
<lastmod>2026-10-27T14:41:24.177Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graceful-degradation-in-practice</loc>
<lastmod>2026-10-27T14:40:52.715Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/verify-real-googlebot</loc>
<lastmod>2026-10-27T14:41:24.049Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/speeding-up-spring-boot-startup</loc>
<lastmod>2026-10-27T14:40:45.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/check-content-parity-on-mobile</loc>
<lastmod>2026-10-27T14:41:24.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/incident-response-at-3-am</loc>
<lastmod>2026-10-27T14:40:52.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/e-commerce-seo-essentials</loc>
<lastmod>2026-10-27T14:41:23.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/programmatic-seo-done-right</loc>
<lastmod>2026-10-27T14:41:23.950Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-quality-decides-programmatic-seo</loc>
<lastmod>2026-10-27T14:41:23.933Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nap-consistency</loc>
<lastmod>2026-10-27T14:41:23.898Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slis-slos-and-error-budgets</loc>
<lastmod>2026-10-27T14:40:52.786Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crawlers-must-respect-robots-txt</loc>
<lastmod>2026-10-27T14:41:23.795Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-interview-questions</loc>
<lastmod>2026-10-27T14:40:45.670Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/don-t-index-internal-search-results</loc>
<lastmod>2026-10-27T14:41:23.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-seo-audit-crawler</loc>
<lastmod>2026-10-27T14:41:23.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/full-text-search-in-postgresql</loc>
<lastmod>2026-10-27T14:40:52.821Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/https-and-security-for-seo</loc>
<lastmod>2026-10-27T14:41:23.672Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-backend-developer-roadmap</loc>
<lastmod>2026-10-27T14:40:45.548Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/automating-search-console</loc>
<lastmod>2026-10-27T14:41:23.705Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-indexing-api-has-limits</loc>
<lastmod>2026-10-27T14:41:23.689Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rest-vs-graphql-vs-grpc</loc>
<lastmod>2026-10-27T14:40:52.877Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/content-structure-for-humans-and-machines</loc>
<lastmod>2026-10-27T14:41:23.533Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/what-about-llms-txt</loc>
<lastmod>2026-10-27T14:41:23.585Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/get-cited-in-ai-answers</loc>
<lastmod>2026-10-27T14:41:23.550Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-design-principles-i-follow</loc>
<lastmod>2026-10-27T14:40:52.914Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/connect-ga4-and-search-console</loc>
<lastmod>2026-10-27T14:41:23.411Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-error-handling-done-right</loc>
<lastmod>2026-10-27T14:40:40.712Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-for-your-engineering-blog</loc>
<lastmod>2026-10-27T14:41:23.464Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refresh-old-content</loc>
<lastmod>2026-10-27T14:41:23.446Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-multi-tenant-saas</loc>
<lastmod>2026-10-27T14:40:52.987Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/topics-are-not-queues</loc>
<lastmod>2026-10-27T14:41:20.337Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pydantic-models-for-request-validation</loc>
<lastmod>2026-10-27T14:40:40.639Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-is-a-product-feature</loc>
<lastmod>2026-10-27T14:41:23.338Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-every-senior-engineer-should-know-events-and-real-time</loc>
<lastmod>2026-10-27T14:41:20.374Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-a-ride-hailing-backend</loc>
<lastmod>2026-10-27T14:40:53.061Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auto-commit-can-lose-events</loc>
<lastmod>2026-10-27T14:41:20.233Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-in-fastapi</loc>
<lastmod>2026-10-27T14:40:40.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-a-partition-key</loc>
<lastmod>2026-10-27T14:41:20.302Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-many-partitions-do-you-need</loc>
<lastmod>2026-10-27T14:41:20.268Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-a-rate-limiter</loc>
<lastmod>2026-10-27T14:40:53.134Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kraft-kafka-without-zookeeper</loc>
<lastmod>2026-10-27T14:41:20.102Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pick-a-compression-codec</loc>
<lastmod>2026-10-27T14:41:20.162Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/producer-settings-that-matter</loc>
<lastmod>2026-10-27T14:41:20.181Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-a-url-shortener</loc>
<lastmod>2026-10-27T14:40:53.172Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/poison-pills</loc>
<lastmod>2026-10-27T14:41:19.947Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/schema-registry-and-compatibility</loc>
<lastmod>2026-10-27T14:41:19.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/what-migrating-kafka-from-json-to-avro-taught-me</loc>
<lastmod>2026-10-27T14:41:20.025Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-sharding-explained</loc>
<lastmod>2026-10-27T14:40:53.244Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/notification-events-vs-state-transfer</loc>
<lastmod>2026-10-27T14:41:19.830Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-django</loc>
<lastmod>2026-10-27T14:40:40.123Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-a-kafka-client-for-node</loc>
<lastmod>2026-10-27T14:41:19.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-good-events</loc>
<lastmod>2026-10-27T14:41:19.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-connect</loc>
<lastmod>2026-10-27T14:41:19.695Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stream-processing-basics</loc>
<lastmod>2026-10-27T14:41:19.729Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compacted-topics-as-a-source-of-truth</loc>
<lastmod>2026-10-27T14:41:19.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/run-kafka-locally-with-docker</loc>
<lastmod>2026-10-27T14:41:19.573Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managed-kafka-options</loc>
<lastmod>2026-10-27T14:41:19.608Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retention-policies</loc>
<lastmod>2026-10-27T14:41:19.643Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-security</loc>
<lastmod>2026-10-27T14:41:19.625Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-in-fastapi-and-django</loc>
<lastmod>2026-10-27T14:40:39.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sql-or-nosql-choosing-a-database</loc>
<lastmod>2026-10-27T14:40:53.281Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-fundamentals</loc>
<lastmod>2026-10-27T14:41:19.485Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-gil-explained</loc>
<lastmod>2026-10-27T14:40:39.699Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/case-study-live-ride-tracking</loc>
<lastmod>2026-10-27T14:41:19.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lessons-from-dispatch-notifications</loc>
<lastmod>2026-10-27T14:41:19.502Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scale-up-or-scale-out</loc>
<lastmod>2026-10-27T14:40:53.338Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reconnection-and-resilience</loc>
<lastmod>2026-10-27T14:41:19.343Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-api-deployment-options</loc>
<lastmod>2026-10-27T14:40:39.627Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/socket-io-is-not-plain-websocket</loc>
<lastmod>2026-10-27T14:41:19.398Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/token-expiry-on-long-lived-sockets</loc>
<lastmod>2026-10-27T14:41:19.364Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/load-balancing-explained-simply</loc>
<lastmod>2026-10-27T14:40:53.356Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/acknowledgement-based-delivery</loc>
<lastmod>2026-10-27T14:41:19.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nginx-for-websockets</loc>
<lastmod>2026-10-27T14:41:19.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/connection-limits-and-file-descriptors</loc>
<lastmod>2026-10-27T14:41:19.206Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ordering-and-delivery-over-websockets</loc>
<lastmod>2026-10-27T14:41:19.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backpressure-in-real-time-systems</loc>
<lastmod>2026-10-27T14:41:19.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-market-data-fan-out</loc>
<lastmod>2026-10-27T14:41:19.040Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/throttle-gps-updates</loc>
<lastmod>2026-10-27T14:41:19.059Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-enums-and-literal-types</loc>
<lastmod>2026-10-27T14:40:39.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-framework-for-system-design-interviews</loc>
<lastmod>2026-10-27T14:40:53.394Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/one-consumer-group-or-one-per-instance</loc>
<lastmod>2026-10-27T14:41:18.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-in-dotnet-with-signalr</loc>
<lastmod>2026-10-27T14:41:18.932Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/signalr-vs-socket-io</loc>
<lastmod>2026-10-27T14:41:18.915Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bridging-kafka-to-websockets</loc>
<lastmod>2026-10-27T14:41:18.897Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-web-developers-moving-to-flutter</loc>
<lastmod>2026-10-27T14:40:57.041Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cross-site-websocket-hijacking</loc>
<lastmod>2026-10-27T14:41:18.736Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/collaborative-editing-basics</loc>
<lastmod>2026-10-27T14:41:18.790Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/message-ids-and-deduplication</loc>
<lastmod>2026-10-27T14:41:18.808Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/push-notifications-vs-sockets-on-mobile</loc>
<lastmod>2026-10-27T14:41:18.626Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-reconnect-storms</loc>
<lastmod>2026-10-27T14:41:18.662Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/load-testing-websockets</loc>
<lastmod>2026-10-27T14:41:18.680Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-backend-developer-roadmap</loc>
<lastmod>2026-10-27T14:40:39.183Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-i-choose-flutter-packages</loc>
<lastmod>2026-10-27T14:40:57.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pydantic-v2-performance-and-features</loc>
<lastmod>2026-10-27T14:40:39.069Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-engineers-new-to-real-time</loc>
<lastmod>2026-10-27T14:41:18.517Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/log-file-analysis-for-seo</loc>
<lastmod>2026-10-27T14:41:24.067Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hreflang-with-x-default</loc>
<lastmod>2026-10-27T14:41:24.123Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/obfuscate-release-builds</loc>
<lastmod>2026-10-27T14:40:57.152Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iam-roles-for-compute</loc>
<lastmod>2026-10-27T14:41:14.515Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/responsive-images-with-srcset</loc>
<lastmod>2026-10-27T14:41:24.229Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/chrome-ux-report-crux</loc>
<lastmod>2026-10-27T14:41:24.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pandas-for-data-preparation</loc>
<lastmod>2026-10-27T14:40:33.496Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-python-backend-development-the-recap</loc>
<lastmod>2026-10-27T14:40:38.991Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auto-scaling-groups</loc>
<lastmod>2026-10-27T14:41:14.351Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/break-up-long-tasks</loc>
<lastmod>2026-10-27T14:41:24.297Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/try-graviton-instances</loc>
<lastmod>2026-10-27T14:41:14.370Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cross-cluster-search</loc>
<lastmod>2026-10-27T14:39:04.517Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/linear-regression-explained</loc>
<lastmod>2026-10-27T14:40:33.367Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-groups-vs-nacls</loc>
<lastmod>2026-10-27T14:41:14.445Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keep-databases-in-private-subnets</loc>
<lastmod>2026-10-27T14:41:14.408Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flutter-vs-react-native-an-honest-take</loc>
<lastmod>2026-10-27T14:40:57.241Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/task-role-vs-execution-role</loc>
<lastmod>2026-10-27T14:41:14.259Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fetchpriority-for-your-hero-image</loc>
<lastmod>2026-10-27T14:41:24.365Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reindex-from-remote</loc>
<lastmod>2026-10-27T14:39:04.533Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-engineering-that-improves-models</loc>
<lastmod>2026-10-27T14:40:33.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/alb-listener-rules</loc>
<lastmod>2026-10-27T14:41:14.295Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crash-reporting-and-analytics</loc>
<lastmod>2026-10-27T14:40:57.310Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/localbusiness-schema-for-service-companies</loc>
<lastmod>2026-10-27T14:41:24.486Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lambda-and-relational-databases</loc>
<lastmod>2026-10-27T14:41:14.115Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lambda-cold-starts</loc>
<lastmod>2026-10-27T14:41:14.150Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ecs-vs-eks</loc>
<lastmod>2026-10-27T14:41:14.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lambda-patterns-i-use</loc>
<lastmod>2026-10-27T14:41:14.132Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-for-flutter</loc>
<lastmod>2026-10-27T14:40:57.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudfront-cache-policies</loc>
<lastmod>2026-10-27T14:41:13.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/product-structured-data</loc>
<lastmod>2026-10-27T14:41:24.557Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transfer-learning</loc>
<lastmod>2026-10-27T14:40:32.939Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/s3-event-notifications</loc>
<lastmod>2026-10-27T14:41:13.991Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/uploads-with-presigned-urls</loc>
<lastmod>2026-10-27T14:41:14.037Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/be-careful-with-single-table-design</loc>
<lastmod>2026-10-27T14:41:13.856Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/breadcrumbs-help-users-and-crawlers</loc>
<lastmod>2026-10-27T14:41:24.611Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/faceted-navigation-without-crawl-traps</loc>
<lastmod>2026-10-27T14:41:24.663Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rds-backups-and-point-in-time-recovery</loc>
<lastmod>2026-10-27T14:41:13.890Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aurora-vs-standard-rds</loc>
<lastmod>2026-10-27T14:41:13.907Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/chunking-strategies-for-rag</loc>
<lastmod>2026-10-27T14:40:32.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-step-functions-instead-of-retry-code</loc>
<lastmod>2026-10-27T14:41:13.717Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eventbridge-scheduler</loc>
<lastmod>2026-10-27T14:41:13.750Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crawl-the-old-site-before-migrating</loc>
<lastmod>2026-10-27T14:41:24.747Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/versioning-and-concurrency</loc>
<lastmod>2026-10-27T14:39:04.551Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-ml-models-with-fastapi</loc>
<lastmod>2026-10-27T14:40:32.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sqs-fifo-queues</loc>
<lastmod>2026-10-27T14:41:13.786Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rotate-database-credentials</loc>
<lastmod>2026-10-27T14:41:13.613Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/url-design-for-seo</loc>
<lastmod>2026-10-27T14:41:24.832Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/self-referencing-canonicals-everywhere</loc>
<lastmod>2026-10-27T14:41:24.850Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudfront-certificates-live-in-us-east-1</loc>
<lastmod>2026-10-27T14:41:13.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tls-with-acm</loc>
<lastmod>2026-10-27T14:41:13.666Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/experiment-tracking-with-mlflow</loc>
<lastmod>2026-10-27T14:40:32.414Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cdk-in-typescript</loc>
<lastmod>2026-10-27T14:41:13.473Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/xml-sitemaps-at-scale</loc>
<lastmod>2026-10-27T14:41:24.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/query-logs-with-logs-insights</loc>
<lastmod>2026-10-27T14:41:13.509Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/set-log-retention</loc>
<lastmod>2026-10-27T14:41:13.545Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tracing-on-aws</loc>
<lastmod>2026-10-27T14:41:13.527Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-analytics-natural-language-to-sql</loc>
<lastmod>2026-10-27T14:40:32.322Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cost-optimization-on-aws</loc>
<lastmod>2026-10-27T14:41:13.345Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/see-your-page-the-way-google-does</loc>
<lastmod>2026-10-27T14:41:25.026Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-search-engines-work</loc>
<lastmod>2026-10-27T14:41:25.084Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-next-js-on-aws</loc>
<lastmod>2026-10-27T14:41:13.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-dotnet-on-aws</loc>
<lastmod>2026-10-27T14:41:13.417Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/blue-green-deployments-on-aws</loc>
<lastmod>2026-10-27T14:41:13.363Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/turn-on-cloudtrail-everywhere</loc>
<lastmod>2026-10-27T14:41:13.216Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-react-and-next-js-lessons</loc>
<lastmod>2026-10-27T14:41:28.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-next-js-starter</loc>
<lastmod>2026-10-27T14:41:28.534Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/understand-data-transfer-costs</loc>
<lastmod>2026-10-27T14:41:13.289Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/budgets-and-cost-anomaly-detection</loc>
<lastmod>2026-10-27T14:41:13.252Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/an-aws-security-baseline</loc>
<lastmod>2026-10-27T14:41:13.234Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flavors-and-environments</loc>
<lastmod>2026-10-27T14:40:57.418Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/widget-tests</loc>
<lastmod>2026-10-27T14:40:57.469Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-next-js-safely</loc>
<lastmod>2026-10-27T14:41:28.552Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rto-and-rpo</loc>
<lastmod>2026-10-27T14:41:13.066Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wp-query-explained</loc>
<lastmod>2026-10-27T14:39:28.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-b-testing-ml-models</loc>
<lastmod>2026-10-27T14:40:32.113Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-az-by-default</loc>
<lastmod>2026-10-27T14:41:13.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cognito-or-your-own-auth</loc>
<lastmod>2026-10-27T14:41:12.915Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-react-anti-patterns</loc>
<lastmod>2026-10-27T14:41:28.588Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/react-native-for-react-developers</loc>
<lastmod>2026-10-27T14:41:28.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/personalization-without-slow-pages</loc>
<lastmod>2026-10-27T14:41:28.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/email-deliverability-basics</loc>
<lastmod>2026-10-27T14:41:12.951Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sending-email-with-ses</loc>
<lastmod>2026-10-27T14:41:12.969Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-flutter-apps</loc>
<lastmod>2026-10-27T14:40:57.488Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-in-react-apps</loc>
<lastmod>2026-10-27T14:41:28.779Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/next-public-means-public</loc>
<lastmod>2026-10-27T14:41:28.797Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-aws-lessons</loc>
<lastmod>2026-10-27T14:41:12.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-aws-architecture-review-checklist</loc>
<lastmod>2026-10-27T14:41:12.857Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-to-learn-aws-effectively</loc>
<lastmod>2026-10-27T14:41:12.798Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-store-payment-rules</loc>
<lastmod>2026-10-27T14:40:57.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-next-js</loc>
<lastmod>2026-10-27T14:41:28.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/command-pattern</loc>
<lastmod>2026-10-27T14:41:08.169Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/incremental-migration-beats-rewrites</loc>
<lastmod>2026-10-27T14:41:28.903Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/liskov-substitution-in-plain-words</loc>
<lastmod>2026-10-27T14:41:08.591Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-llm-integration-mistakes</loc>
<lastmod>2026-10-27T14:40:32.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-location-is-restricted</loc>
<lastmod>2026-10-27T14:40:57.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dates-and-time-zones-in-the-ui</loc>
<lastmod>2026-10-27T14:41:29.048Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/abstract-factory</loc>
<lastmod>2026-10-27T14:41:08.467Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/yagni-and-kiss</loc>
<lastmod>2026-10-27T14:41:08.519Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sentiment-analysis-for-product-reviews</loc>
<lastmod>2026-10-27T14:40:31.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/support-vector-machines</loc>
<lastmod>2026-10-27T14:40:31.847Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/maps-and-live-location</loc>
<lastmod>2026-10-27T14:40:57.641Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/barrel-files-can-hurt</loc>
<lastmod>2026-10-27T14:41:29.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/facade-pattern</loc>
<lastmod>2026-10-27T14:41:08.327Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/object-pool</loc>
<lastmod>2026-10-27T14:41:08.397Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-is-a-pattern-too</loc>
<lastmod>2026-10-27T14:41:08.380Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adapter-pattern</loc>
<lastmod>2026-10-27T14:41:08.344Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strategy-pattern</loc>
<lastmod>2026-10-27T14:41:08.204Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mock-apis-with-msw</loc>
<lastmod>2026-10-27T14:41:29.123Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-react-the-right-way</loc>
<lastmod>2026-10-27T14:41:29.178Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composite-pattern</loc>
<lastmod>2026-10-27T14:41:08.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flyweight-pattern</loc>
<lastmod>2026-10-27T14:41:08.238Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/behavioral-patterns-overview</loc>
<lastmod>2026-10-27T14:41:08.221Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-features-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.676Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/focus-management-in-modals</loc>
<lastmod>2026-10-27T14:41:29.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mediator-pattern</loc>
<lastmod>2026-10-27T14:41:08.078Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ref-is-just-a-prop-in-react-19</loc>
<lastmod>2026-10-27T14:41:29.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-method</loc>
<lastmod>2026-10-27T14:41:08.133Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-project-structure-explained</loc>
<lastmod>2026-10-27T14:40:28.340Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dtos-and-mappers</loc>
<lastmod>2026-10-27T14:41:07.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/react-19-features-i-use</loc>
<lastmod>2026-10-27T14:41:29.396Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-splitting-with-dynamic-imports</loc>
<lastmod>2026-10-27T14:41:29.469Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/repository-pattern</loc>
<lastmod>2026-10-27T14:41:07.993Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-service-layer</loc>
<lastmod>2026-10-27T14:41:07.957Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unit-of-work</loc>
<lastmod>2026-10-27T14:41:07.975Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/push-notifications-with-fcm</loc>
<lastmod>2026-10-27T14:40:57.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/analyze-your-bundle</loc>
<lastmod>2026-10-27T14:41:29.486Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fonts-without-layout-shift-using-next-font</loc>
<lastmod>2026-10-27T14:41:29.520Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/firebase-in-flutter-apps</loc>
<lastmod>2026-10-27T14:40:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/domain-events</loc>
<lastmod>2026-10-27T14:41:07.852Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-migrations</loc>
<lastmod>2026-10-27T14:40:28.170Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generatestaticparams</loc>
<lastmod>2026-10-27T14:41:29.589Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rendering-strategies-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.607Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/images-and-caching</loc>
<lastmod>2026-10-27T14:40:57.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/plugin-architecture</loc>
<lastmod>2026-10-27T14:41:07.735Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-pipeline-pattern</loc>
<lastmod>2026-10-27T14:41:07.752Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/event-sourcing-in-one-minute</loc>
<lastmod>2026-10-27T14:41:07.702Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/defer-in-go</loc>
<lastmod>2026-10-27T14:40:06.299Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-in-the-app-router</loc>
<lastmod>2026-10-27T14:41:29.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strings-bytes-and-runes-in-go</loc>
<lastmod>2026-10-27T14:40:06.316Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retry-with-exponential-backoff</loc>
<lastmod>2026-10-27T14:41:07.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/always-set-timeouts</loc>
<lastmod>2026-10-27T14:41:07.598Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/arrays-vs-slices-in-go</loc>
<lastmod>2026-10-27T14:40:06.334Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/leader-election</loc>
<lastmod>2026-10-27T14:41:07.459Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/middleware-is-now-proxy</loc>
<lastmod>2026-10-27T14:41:29.727Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/idempotency-keys</loc>
<lastmod>2026-10-27T14:41:07.493Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-deletes-in-elasticsearch</loc>
<lastmod>2026-10-27T14:39:04.572Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/using-target-safely</loc>
<lastmod>2026-10-27T14:39:53.934Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-terraform-errors-and-fixes</loc>
<lastmod>2026-10-27T14:39:53.969Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-backend-interview-questions</loc>
<lastmod>2026-10-27T14:40:06.440Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-components-vs-client-components</loc>
<lastmod>2026-10-27T14:41:29.861Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compound-components</loc>
<lastmod>2026-10-27T14:41:07.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-provider-pattern</loc>
<lastmod>2026-10-27T14:41:07.354Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/from-render-props-to-hooks</loc>
<lastmod>2026-10-27T14:41:07.371Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/optimistic-ui</loc>
<lastmod>2026-10-27T14:41:07.317Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-url-shortener-in-go</loc>
<lastmod>2026-10-27T14:40:06.568Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/controlled-vs-uncontrolled-inputs</loc>
<lastmod>2026-10-27T14:41:29.895Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/notification-channels-as-strategies</loc>
<lastmod>2026-10-27T14:41:07.213Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-a-pricing-engine</loc>
<lastmod>2026-10-27T14:41:07.265Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-rules-engine-pattern</loc>
<lastmod>2026-10-27T14:41:07.248Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/abstracting-payment-gateways</loc>
<lastmod>2026-10-27T14:41:07.230Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-jobs-in-go</loc>
<lastmod>2026-10-27T14:40:06.606Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tanstack-query-essentials</loc>
<lastmod>2026-10-27T14:41:29.945Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rtk-query-vs-tanstack-query</loc>
<lastmod>2026-10-27T14:41:29.964Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/evaluating-llm-features</loc>
<lastmod>2026-10-27T14:40:32.690Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pattern-itis</loc>
<lastmod>2026-10-27T14:41:07.108Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-anemic-domain-model</loc>
<lastmod>2026-10-27T14:41:07.143Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kms-keys-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.628Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/communicate-designs-with-patterns</loc>
<lastmod>2026-10-27T14:41:06.925Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-management-in-2026</loc>
<lastmod>2026-10-27T14:41:30.040Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prop-drilling-is-not-always-bad</loc>
<lastmod>2026-10-27T14:41:30.066Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/patterns-in-flutter</loc>
<lastmod>2026-10-27T14:41:06.997Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/patterns-in-react</loc>
<lastmod>2026-10-27T14:41:07.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-data-builders</loc>
<lastmod>2026-10-27T14:41:06.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/concurrency-patterns-in-go</loc>
<lastmod>2026-10-27T14:40:06.730Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-react-memo-is-worth-it</loc>
<lastmod>2026-10-27T14:41:30.151Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-event-loop-microtasks-vs-macrotasks</loc>
<lastmod>2026-10-27T14:41:03.685Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/destroying-infrastructure-safely</loc>
<lastmod>2026-10-27T14:39:53.495Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deep-javascript-still-matters-in-the-typescript-era</loc>
<lastmod>2026-10-27T14:41:03.734Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-javascript-runs</loc>
<lastmod>2026-10-27T14:41:03.718Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-generics-explained</loc>
<lastmod>2026-10-27T14:40:06.765Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-up-your-effects</loc>
<lastmod>2026-10-27T14:41:30.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composition-over-configuration</loc>
<lastmod>2026-10-27T14:41:30.259Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/classes-are-syntax-sugar</loc>
<lastmod>2026-10-27T14:41:03.560Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/arrow-functions-and-this</loc>
<lastmod>2026-10-27T14:41:03.597Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-three-areas-working-tree-staging-repository</loc>
<lastmod>2026-10-27T14:39:49.993Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-cli-in-go</loc>
<lastmod>2026-10-27T14:40:06.784Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-nestjs-starter-template</loc>
<lastmod>2026-10-27T14:41:33.395Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/using-express-middleware-in-nestjs</loc>
<lastmod>2026-10-27T14:41:33.414Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/promises-deep-dive</loc>
<lastmod>2026-10-27T14:41:03.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/map-filter-and-reduce-done-well</loc>
<lastmod>2026-10-27T14:41:03.473Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/immutable-updates-without-libraries</loc>
<lastmod>2026-10-27T14:41:03.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/weakmap-and-weakref</loc>
<lastmod>2026-10-27T14:41:03.314Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/metrics-with-prometheus</loc>
<lastmod>2026-10-27T14:41:33.560Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/response-serialization</loc>
<lastmod>2026-10-27T14:41:33.669Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/avoiding-merge-conflicts</loc>
<lastmod>2026-10-27T14:39:49.789Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-import</loc>
<lastmod>2026-10-27T14:41:03.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/es-modules-vs-commonjs</loc>
<lastmod>2026-10-27T14:41:03.365Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-reverse-proxy-in-go</loc>
<lastmod>2026-10-27T14:40:06.837Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prisma-migrations-in-ci-cd</loc>
<lastmod>2026-10-27T14:41:33.705Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-typescript</loc>
<lastmod>2026-10-27T14:41:03.186Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-a-nestjs-app</loc>
<lastmod>2026-10-27T14:41:33.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/format-currency-with-intl</loc>
<lastmod>2026-10-27T14:41:03.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/amending-commits</loc>
<lastmod>2026-10-27T14:39:49.703Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-pwas</loc>
<lastmod>2026-10-27T14:39:31.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mass-assignment-in-nestjs</loc>
<lastmod>2026-10-27T14:41:33.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/secrets-and-configuration-in-production</loc>
<lastmod>2026-10-27T14:41:33.798Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-satisfies-operator</loc>
<lastmod>2026-10-27T14:41:03.092Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/type-inference</loc>
<lastmod>2026-10-27T14:41:03.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/discriminated-unions</loc>
<lastmod>2026-10-27T14:41:03.056Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cross-compiling-go-binaries</loc>
<lastmod>2026-10-27T14:40:06.929Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/worker-threads-for-cpu-heavy-work</loc>
<lastmod>2026-10-27T14:41:33.853Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-decorators-explained</loc>
<lastmod>2026-10-27T14:40:40.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/readonly-and-as-const</loc>
<lastmod>2026-10-27T14:41:02.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keyof-and-typeof</loc>
<lastmod>2026-10-27T14:41:02.945Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mapped-types</loc>
<lastmod>2026-10-27T14:41:02.963Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/end-to-end-type-safety</loc>
<lastmod>2026-10-27T14:41:02.787Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nest-cli-monorepo-mode</loc>
<lastmod>2026-10-27T14:41:33.925Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configurablemodulebuilder</loc>
<lastmod>2026-10-27T14:41:33.961Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/branded-types</loc>
<lastmod>2026-10-27T14:41:02.857Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/function-overloads-vs-unions</loc>
<lastmod>2026-10-27T14:41:02.821Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/branded-ids</loc>
<lastmod>2026-10-27T14:41:02.838Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reducing-allocations-in-go</loc>
<lastmod>2026-10-27T14:40:07.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dataloader-for-graphql-n-1</loc>
<lastmod>2026-10-27T14:41:33.996Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streaming-files-with-streamablefile</loc>
<lastmod>2026-10-27T14:41:34.119Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tsconfig-explained</loc>
<lastmod>2026-10-27T14:41:02.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forks-vs-branches</loc>
<lastmod>2026-10-27T14:39:49.510Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/remote-repositories</loc>
<lastmod>2026-10-27T14:39:49.544Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-awaited-type</loc>
<lastmod>2026-10-27T14:41:02.514Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/health-checks-with-terminus</loc>
<lastmod>2026-10-27T14:41:34.185Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-tiny-result-type</loc>
<lastmod>2026-10-27T14:41:02.549Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/node-js-runs-typescript-natively</loc>
<lastmod>2026-10-27T14:41:02.603Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tsc-as-a-type-checker</loc>
<lastmod>2026-10-27T14:41:02.585Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-actions-basics</loc>
<lastmod>2026-10-27T14:39:49.394Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/measure-with-performance-now</loc>
<lastmod>2026-10-27T14:41:02.479Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/correlation-ids-across-services</loc>
<lastmod>2026-10-27T14:41:34.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-logging-with-pino</loc>
<lastmod>2026-10-27T14:41:34.225Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unit-testing-nestjs-services</loc>
<lastmod>2026-10-27T14:41:34.305Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/openapi-docs-with-nestjs-swagger</loc>
<lastmod>2026-10-27T14:41:34.339Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cqrs-with-nestjs-cqrs</loc>
<lastmod>2026-10-27T14:41:34.375Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profiling-go-with-pprof</loc>
<lastmod>2026-10-27T14:40:07.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nestjs-microservices-transports</loc>
<lastmod>2026-10-27T14:41:34.445Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cron-jobs-with-multiple-instances</loc>
<lastmod>2026-10-27T14:41:34.535Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiting-with-nestjs-throttler</loc>
<lastmod>2026-10-27T14:41:34.617Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-with-redis-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.634Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-your-types</loc>
<lastmod>2026-10-27T14:41:02.303Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-tiny-pipe-function</loc>
<lastmod>2026-10-27T14:41:02.123Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refresh-tokens-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.748Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hotfix-workflow</loc>
<lastmod>2026-10-27T14:39:49.258Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/publishing-dual-packages</loc>
<lastmod>2026-10-27T14:41:02.181Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/path-aliases</loc>
<lastmod>2026-10-27T14:41:02.223Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/splitting-large-terraform-states</loc>
<lastmod>2026-10-27T14:39:54.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/benchmarks-in-go</loc>
<lastmod>2026-10-27T14:40:07.143Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/roles-and-permissions-with-decorators</loc>
<lastmod>2026-10-27T14:41:34.784Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-in-go</loc>
<lastmod>2026-10-27T14:40:07.221Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/precision-loss-in-large-ids</loc>
<lastmod>2026-10-27T14:41:01.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-0-1-0-2-isn-t-0-3</loc>
<lastmod>2026-10-27T14:41:02.019Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/baseline-profiles</loc>
<lastmod>2026-10-27T14:39:44.456Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiting-in-go</loc>
<lastmod>2026-10-27T14:40:07.238Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/request-context-with-nestjs-cls</loc>
<lastmod>2026-10-27T14:41:34.835Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cors-in-go-apis</loc>
<lastmod>2026-10-27T14:40:07.255Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-transactions-in-go</loc>
<lastmod>2026-10-27T14:40:07.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenancy-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.852Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-leveling-up-in-js-and-ts</loc>
<lastmod>2026-10-27T14:41:01.906Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-lfs</loc>
<lastmod>2026-10-27T14:39:49.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gorm-when-to-use-an-orm</loc>
<lastmod>2026-10-27T14:40:07.420Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cursor-pagination-with-prisma</loc>
<lastmod>2026-10-27T14:41:34.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/isolates-for-heavy-work</loc>
<lastmod>2026-10-27T14:40:58.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-dart-future-and-stream</loc>
<lastmod>2026-10-27T14:40:58.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-const-constructors</loc>
<lastmod>2026-10-27T14:40:58.702Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-widget-lifecycle</loc>
<lastmod>2026-10-27T14:40:58.685Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sqlc-type-safe-sql-in-go</loc>
<lastmod>2026-10-27T14:40:07.438Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/layoutbuilder-and-mediaquery-sizeof</loc>
<lastmod>2026-10-27T14:40:58.564Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/row-column-expanded-and-flexible</loc>
<lastmod>2026-10-27T14:40:58.633Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stack-and-positioned</loc>
<lastmod>2026-10-27T14:40:58.598Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/responsive-and-adaptive-layouts</loc>
<lastmod>2026-10-27T14:40:58.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stacked-pull-requests</loc>
<lastmod>2026-10-27T14:39:48.895Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setstate-is-fine-locally</loc>
<lastmod>2026-10-27T14:40:58.421Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prisma-schema-design-tips</loc>
<lastmod>2026-10-27T14:41:34.959Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prisma-with-nestjs-the-clean-setup</loc>
<lastmod>2026-10-27T14:41:34.994Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/themeextension-for-custom-tokens</loc>
<lastmod>2026-10-27T14:40:58.495Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/theming-with-material-3</loc>
<lastmod>2026-10-27T14:40:58.512Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deep-links-in-flutter</loc>
<lastmod>2026-10-27T14:40:58.458Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-access-in-go</loc>
<lastmod>2026-10-27T14:40:07.457Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-providers-usevalue-useclass-usefactory</loc>
<lastmod>2026-10-27T14:41:35.129Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/organizing-a-go-project</loc>
<lastmod>2026-10-27T14:40:07.512Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/riverpod-code-generation</loc>
<lastmod>2026-10-27T14:40:58.352Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/changenotifier</loc>
<lastmod>2026-10-27T14:40:58.387Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cubit-or-bloc</loc>
<lastmod>2026-10-27T14:40:58.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-a-go-web-framework</loc>
<lastmod>2026-10-27T14:40:07.604Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/json-serialization</loc>
<lastmod>2026-10-27T14:40:58.190Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-engineering-career-tips</loc>
<lastmod>2026-10-27T14:39:04.646Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-internals-packfiles-and-garbage-collection</loc>
<lastmod>2026-10-27T14:39:48.758Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-first-folders</loc>
<lastmod>2026-10-27T14:40:58.244Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auth-interceptors-in-dio</loc>
<lastmod>2026-10-27T14:40:58.208Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/golang-rest-api-tutorial</loc>
<lastmod>2026-10-27T14:40:07.623Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-i-use-nestjs-for-serious-node-backends</loc>
<lastmod>2026-10-27T14:41:35.203Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-result-type-with-sealed-classes</loc>
<lastmod>2026-10-27T14:40:58.133Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/switch-expressions-in-dart</loc>
<lastmod>2026-10-27T14:40:58.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/local-storage-options</loc>
<lastmod>2026-10-27T14:40:58.075Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/store-tokens-in-secure-storage</loc>
<lastmod>2026-10-27T14:40:58.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kubernetes-provider-vs-helm-provider</loc>
<lastmod>2026-10-27T14:39:54.214Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/architecture-tests-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.135Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/extension-methods-done-right</loc>
<lastmod>2026-10-27T14:41:38.249Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/always-dispose-controllers</loc>
<lastmod>2026-10-27T14:40:57.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-and-validation</loc>
<lastmod>2026-10-27T14:40:57.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/animatedcontainer</loc>
<lastmod>2026-10-27T14:40:57.906Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-channels-explained</loc>
<lastmod>2026-10-27T14:40:07.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/raw-sql-in-ef-core-safely</loc>
<lastmod>2026-10-27T14:41:38.360Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profile-with-flutter-devtools</loc>
<lastmod>2026-10-27T14:40:57.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cached-network-image</loc>
<lastmod>2026-10-27T14:40:57.800Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/platform-channels</loc>
<lastmod>2026-10-27T14:40:57.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/type-safe-native-calls-with-pigeon</loc>
<lastmod>2026-10-27T14:40:57.764Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-1-22-loop-variable-change</loc>
<lastmod>2026-10-27T14:40:06.748Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slices-and-maps-in-go</loc>
<lastmod>2026-10-27T14:40:07.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-headers-and-https</loc>
<lastmod>2026-10-27T14:41:38.415Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-professional-github-profile</loc>
<lastmod>2026-10-27T14:39:48.563Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streambuilder</loc>
<lastmod>2026-10-27T14:40:57.659Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/biometric-authentication</loc>
<lastmod>2026-10-27T14:40:57.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-syntax-essentials</loc>
<lastmod>2026-10-27T14:40:07.884Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managing-secrets-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.433Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-a-dotnet-app</loc>
<lastmod>2026-10-27T14:41:38.502Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-semantics-widget</loc>
<lastmod>2026-10-27T14:40:57.505Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.524Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-signing-without-pain</loc>
<lastmod>2026-10-27T14:40:57.363Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/masstransit-in-a-nutshell</loc>
<lastmod>2026-10-27T14:41:38.539Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-in-ef-core</loc>
<lastmod>2026-10-27T14:41:38.647Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-with-mocktail</loc>
<lastmod>2026-10-27T14:40:57.435Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/golden-tests</loc>
<lastmod>2026-10-27T14:40:57.453Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compile-time-config-with-dart-define</loc>
<lastmod>2026-10-27T14:40:57.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-go-project</loc>
<lastmod>2026-10-27T14:40:07.904Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flutter-on-desktop</loc>
<lastmod>2026-10-27T14:40:57.259Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reduce-app-size</loc>
<lastmod>2026-10-27T14:40:57.328Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/remote-config-and-feature-flags</loc>
<lastmod>2026-10-27T14:40:57.293Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flutter-for-web-when-it-fits</loc>
<lastmod>2026-10-27T14:40:57.276Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-attributes-for-diffs-and-merges</loc>
<lastmod>2026-10-27T14:39:48.333Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.132Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grpc-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.701Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/linq-performance-traps</loc>
<lastmod>2026-10-27T14:41:38.757Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/global-error-handling-in-flutter</loc>
<lastmod>2026-10-27T14:40:57.207Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mobile-app-security</loc>
<lastmod>2026-10-27T14:40:57.170Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/show-friendly-errors</loc>
<lastmod>2026-10-27T14:40:57.189Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-go-is-great-for-backend-services</loc>
<lastmod>2026-10-27T14:40:07.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-with-nsubstitute</loc>
<lastmod>2026-10-27T14:41:38.902Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/5-5-years-6-industries-one-lesson</loc>
<lastmod>2026-10-27T14:40:53.412Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/integration-tests-with-webapplicationfactory</loc>
<lastmod>2026-10-27T14:41:38.939Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-sealed-classes</loc>
<lastmod>2026-10-27T14:39:45.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strict-lints</loc>
<lastmod>2026-10-27T14:40:57.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/soft-deletes-in-mongodb</loc>
<lastmod>2026-10-27T14:40:11.644Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/read-heavy-vs-write-heavy-workloads</loc>
<lastmod>2026-10-27T14:40:11.697Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-versioning-in-aspdotnet-core</loc>
<lastmod>2026-10-27T14:41:38.973Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-indexes-a-mental-model</loc>
<lastmod>2026-10-27T14:40:53.299Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-services-in-dotnet</loc>
<lastmod>2026-10-27T14:41:39.111Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/collecting-flows-safely-in-compose</loc>
<lastmod>2026-10-27T14:39:45.258Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/window-functions-in-aggregation</loc>
<lastmod>2026-10-27T14:40:11.735Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generating-unique-ids-at-scale</loc>
<lastmod>2026-10-27T14:40:53.153Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jetpack-compose-navigation</loc>
<lastmod>2026-10-27T14:39:44.988Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strong-vs-eventual-consistency</loc>
<lastmod>2026-10-27T14:40:53.190Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rich-animations-with-lottie-and-rive</loc>
<lastmod>2026-10-27T14:40:57.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/consistent-hashing-in-one-minute</loc>
<lastmod>2026-10-27T14:40:53.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/embedding-vs-referencing-real-examples</loc>
<lastmod>2026-10-27T14:40:11.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/geospatial-queries-in-practice</loc>
<lastmod>2026-10-27T14:40:53.043Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-with-hilt</loc>
<lastmod>2026-10-27T14:39:44.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-a-news-feed</loc>
<lastmod>2026-10-27T14:40:53.097Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/implicit-vs-explicit-animations</loc>
<lastmod>2026-10-27T14:40:57.924Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hero-and-page-transitions</loc>
<lastmod>2026-10-27T14:40:57.889Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/regex-queries-in-mongodb</loc>
<lastmod>2026-10-27T14:40:11.863Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/resilience-with-microsoft-extensions-http-resilience</loc>
<lastmod>2026-10-27T14:41:39.131Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configureawait-false-in-aspdotnet-core</loc>
<lastmod>2026-10-27T14:41:39.207Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-hidden-costs-of-microservices</loc>
<lastmod>2026-10-27T14:40:52.951Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/workmanager-for-background-work</loc>
<lastmod>2026-10-27T14:39:44.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/preventing-overselling</loc>
<lastmod>2026-10-27T14:40:53.006Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/collations-and-case-insensitive-queries</loc>
<lastmod>2026-10-27T14:40:11.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-await-pitfalls-in-dotnet</loc>
<lastmod>2026-10-27T14:41:39.227Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/output-caching-in-aspdotnet-core</loc>
<lastmod>2026-10-27T14:41:39.302Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backward-compatible-api-changes</loc>
<lastmod>2026-10-27T14:40:52.858Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/http-status-codes-that-matter</loc>
<lastmod>2026-10-27T14:40:52.896Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/permissions-in-android</loc>
<lastmod>2026-10-27T14:39:44.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dark-launches-ship-code-release-later</loc>
<lastmod>2026-10-27T14:40:52.679Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/policy-based-authorization</loc>
<lastmod>2026-10-27T14:41:39.380Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-user-scenarios</loc>
<lastmod>2026-10-27T14:39:32.355Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cqrs-with-mediatr-in-practice</loc>
<lastmod>2026-10-27T14:41:39.492Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/blameless-postmortems</loc>
<lastmod>2026-10-27T14:40:52.751Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-vue-2-to-vue-3</loc>
<lastmod>2026-10-27T14:39:16.013Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/small-pull-requests-win</loc>
<lastmod>2026-10-27T14:40:52.572Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-the-dotnet-project-layout</loc>
<lastmod>2026-10-27T14:41:39.528Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-concurrency-in-ef-core</loc>
<lastmod>2026-10-27T14:41:39.566Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/build-variants-and-flavors</loc>
<lastmod>2026-10-27T14:39:44.337Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/biometric-authentication-android-kotlin</loc>
<lastmod>2026-10-27T14:39:44.372Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-android-apps</loc>
<lastmod>2026-10-27T14:39:44.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-indexes-for-real-queries</loc>
<lastmod>2026-10-27T14:40:11.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compiled-queries-for-hot-paths</loc>
<lastmod>2026-10-27T14:41:39.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/agile-practices-that-actually-help</loc>
<lastmod>2026-10-27T14:40:52.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ef-core-migrations-in-a-team</loc>
<lastmod>2026-10-27T14:41:39.637Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-scope-creep-without-conflict</loc>
<lastmod>2026-10-27T14:40:52.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/localization-in-android</loc>
<lastmod>2026-10-27T14:39:44.210Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/onboarding-a-developer-in-one-week</loc>
<lastmod>2026-10-27T14:40:52.304Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configuring-ef-core-relationships</loc>
<lastmod>2026-10-27T14:41:39.674Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/global-error-handling-with-problemdetails</loc>
<lastmod>2026-10-27T14:41:39.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feedback-that-lands</loc>
<lastmod>2026-10-27T14:40:52.356Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mentoring-junior-developers</loc>
<lastmod>2026-10-27T14:40:52.374Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/signals-i-look-for-when-hiring</loc>
<lastmod>2026-10-27T14:40:52.321Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-tools-you-should-know</loc>
<lastmod>2026-10-27T14:40:11.937Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/di-lifetimes-singleton-scoped-transient</loc>
<lastmod>2026-10-27T14:41:39.852Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-fundamentals-every-engineer-needs</loc>
<lastmod>2026-10-27T14:40:52.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-android-mistakes</loc>
<lastmod>2026-10-27T14:39:43.919Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/translate-tech-debt-into-business-impact</loc>
<lastmod>2026-10-27T14:40:52.252Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/production-releases-as-a-tech-lead</loc>
<lastmod>2026-10-27T14:40:52.235Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-archiving-strategies</loc>
<lastmod>2026-10-27T14:40:11.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/program-cs-line-by-line</loc>
<lastmod>2026-10-27T14:41:39.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/check-ownership-on-every-request</loc>
<lastmod>2026-10-27T14:40:52.111Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-serialization</loc>
<lastmod>2026-10-27T14:39:43.774Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-enums-vs-sealed-classes</loc>
<lastmod>2026-10-27T14:39:43.827Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-real-time-dashboard-with-mongodb</loc>
<lastmod>2026-10-27T14:40:12.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transactional-vs-marketing-email</loc>
<lastmod>2026-10-27T14:40:51.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wrap-every-vendor-sdk</loc>
<lastmod>2026-10-27T14:40:52.035Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/edge-to-edge-display</loc>
<lastmod>2026-10-27T14:39:43.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/denormalization-in-practice</loc>
<lastmod>2026-10-27T14:40:12.142Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mistakes-i-made-as-a-junior-developer</loc>
<lastmod>2026-10-27T14:40:51.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profile-before-you-optimize</loc>
<lastmod>2026-10-27T14:40:51.886Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-optionals-explained</loc>
<lastmod>2026-10-27T14:39:39.454Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-between-sql-and-nosql</loc>
<lastmod>2026-10-27T14:40:12.160Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-i-document-everything</loc>
<lastmod>2026-10-27T14:40:51.747Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adding-llm-features-to-products</loc>
<lastmod>2026-10-27T14:40:51.782Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-async-await-explained</loc>
<lastmod>2026-10-27T14:39:39.333Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/arrays-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.286Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-modern-java-project</loc>
<lastmod>2026-10-27T14:40:47.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-java-still-wins-for-backend-teams</loc>
<lastmod>2026-10-27T14:40:47.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-sync-conflicts</loc>
<lastmod>2026-10-27T14:40:58.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/boring-technology-wins</loc>
<lastmod>2026-10-27T14:40:51.638Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observable-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.193Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-mongodb-anti-patterns</loc>
<lastmod>2026-10-27T14:40:12.323Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/offline-first-apps</loc>
<lastmod>2026-10-27T14:40:58.036Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-collections-choosing-list-set-and-map</loc>
<lastmod>2026-10-27T14:40:47.233Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-streams-examples-you-will-reuse-daily</loc>
<lastmod>2026-10-27T14:40:47.216Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/collectors-groupingby-recipes</loc>
<lastmod>2026-10-27T14:40:47.199Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-optional-done-right</loc>
<lastmod>2026-10-27T14:40:47.181Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/analytics-on-mongodb</loc>
<lastmod>2026-10-27T14:40:12.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/completablefuture-basics</loc>
<lastmod>2026-10-27T14:40:47.058Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dart-3-features-worth-using</loc>
<lastmod>2026-10-27T14:40:58.115Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/immutability-in-java</loc>
<lastmod>2026-10-27T14:40:47.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-generics-and-wildcards-pecs</loc>
<lastmod>2026-10-27T14:40:47.093Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/virtual-threads-in-java-21</loc>
<lastmod>2026-10-27T14:40:47.075Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/event-sourcing-with-mongodb</loc>
<lastmod>2026-10-27T14:40:12.398Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/immutable-models-with-freezed</loc>
<lastmod>2026-10-27T14:40:58.172Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-features-worth-learning-in-2026</loc>
<lastmod>2026-10-27T14:40:46.970Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftdata-tutorial</loc>
<lastmod>2026-10-27T14:39:39.022Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/g1-vs-zgc-choosing-a-garbage-collector</loc>
<lastmod>2026-10-27T14:40:47.023Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-a-java-thread-dump</loc>
<lastmod>2026-10-27T14:40:47.005Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-with-mongodb-and-redis</loc>
<lastmod>2026-10-27T14:40:12.418Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-state-management</loc>
<lastmod>2026-10-27T14:40:58.298Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configurationproperties-for-typed-config</loc>
<lastmod>2026-10-27T14:40:46.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bloc-and-cubit</loc>
<lastmod>2026-10-27T14:40:58.333Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structure-spring-boot-projects-by-feature</loc>
<lastmod>2026-10-27T14:40:46.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/local-notifications</loc>
<lastmod>2026-10-27T14:39:38.882Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-schemas-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.473Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/provider-basics</loc>
<lastmod>2026-10-27T14:40:58.404Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dtos-vs-jpa-entities</loc>
<lastmod>2026-10-27T14:40:46.775Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-performance</loc>
<lastmod>2026-10-27T14:39:38.747Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/global-error-handling-with-restcontrolleradvice</loc>
<lastmod>2026-10-27T14:40:46.810Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/responseentity-and-http-status-codes</loc>
<lastmod>2026-10-27T14:40:46.792Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/connection-pool-sizing</loc>
<lastmod>2026-10-27T14:40:12.493Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-state-management-landscape</loc>
<lastmod>2026-10-27T14:40:58.439Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-with-spring-data-pageable</loc>
<lastmod>2026-10-27T14:40:46.650Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-real-time-features</loc>
<lastmod>2026-10-27T14:39:32.373Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/openapi-docs-with-springdoc</loc>
<lastmod>2026-10-27T14:40:46.686Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dark-mode-in-ios</loc>
<lastmod>2026-10-27T14:39:38.612Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nosql-injection</loc>
<lastmod>2026-10-27T14:40:12.569Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transactional-pitfalls-in-spring</loc>
<lastmod>2026-10-27T14:40:46.513Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/navigation-with-go-router</loc>
<lastmod>2026-10-27T14:40:58.476Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-architecture-options-for-swiftui</loc>
<lastmod>2026-10-27T14:39:38.561Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hibernate-n-1-query-problem-how-to-fix-it</loc>
<lastmod>2026-10-27T14:40:46.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-data-queries-derived-query-and-projections</loc>
<lastmod>2026-10-27T14:40:46.530Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-security-filter-chain-explained</loc>
<lastmod>2026-10-27T14:40:46.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auditing-with-spring-data-jpa</loc>
<lastmod>2026-10-27T14:40:46.423Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lists-and-slivers</loc>
<lastmod>2026-10-27T14:40:58.547Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/layout-widgets-you-ll-use-daily</loc>
<lastmod>2026-10-27T14:40:58.616Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-intents-and-shortcuts</loc>
<lastmod>2026-10-27T14:39:38.423Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/location-services-in-ios</loc>
<lastmod>2026-10-27T14:39:38.478Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modeling-multi-tenant-data</loc>
<lastmod>2026-10-27T14:40:12.627Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/buildcontext-explained</loc>
<lastmod>2026-10-27T14:40:58.668Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stateless-vs-stateful-widgets</loc>
<lastmod>2026-10-27T14:40:58.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-as-an-oauth2-resource-server</loc>
<lastmod>2026-10-27T14:40:46.283Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cors-in-spring-boot-configured-correctly</loc>
<lastmod>2026-10-27T14:40:46.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testflight-beta-testing</loc>
<lastmod>2026-10-27T14:39:38.337Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modeling-e-commerce-data-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.664Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/everything-is-a-widget</loc>
<lastmod>2026-10-27T14:40:58.809Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-flutter-works</loc>
<lastmod>2026-10-27T14:40:58.826Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-coverage-with-jacoco</loc>
<lastmod>2026-10-27T14:40:46.118Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/integration-tests-with-springboottest</loc>
<lastmod>2026-10-27T14:40:46.176Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/repository-tests-with-datajpatest-and-testcontainers</loc>
<lastmod>2026-10-27T14:40:46.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-with-python-mongodb-nosql</loc>
<lastmod>2026-10-27T14:40:12.699Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/apache-kafka-with-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.994Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typescript-anti-patterns</loc>
<lastmod>2026-10-27T14:41:01.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bigint-and-large-numbers</loc>
<lastmod>2026-10-27T14:41:01.997Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-macros</loc>
<lastmod>2026-10-27T14:39:37.984Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-uikit-apps-to-swiftui</loc>
<lastmod>2026-10-27T14:39:38.141Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-with-nestjs</loc>
<lastmod>2026-10-27T14:40:12.717Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-a-spring-boot-app</loc>
<lastmod>2026-10-27T14:40:45.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/money-and-floating-point</loc>
<lastmod>2026-10-27T14:41:02.038Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/regex-essentials</loc>
<lastmod>2026-10-27T14:41:02.076Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-values-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.966Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/idempotent-consumers-in-java</loc>
<lastmod>2026-10-27T14:40:45.904Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongoose-populate-vs-lookup</loc>
<lastmod>2026-10-27T14:40:12.736Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/functional-programming-in-javascript</loc>
<lastmod>2026-10-27T14:41:02.149Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graceful-shutdown-in-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-actions-ci-for-maven-projects</loc>
<lastmod>2026-10-27T14:40:45.778Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-image-caching</loc>
<lastmod>2026-10-27T14:39:37.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/drag-and-drop-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.836Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-with-node-js</loc>
<lastmod>2026-10-27T14:40:12.795Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-with-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.601Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-typed-sdk</loc>
<lastmod>2026-10-27T14:41:02.202Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/biome-vs-eslint-prettier</loc>
<lastmod>2026-10-27T14:41:02.268Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-lazyinitializationexception</loc>
<lastmod>2026-10-27T14:40:45.635Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-no-qualifying-bean-of-type-in-spring</loc>
<lastmod>2026-10-27T14:40:45.652Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/full-text-search-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.830Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-typescript-with-vitest</loc>
<lastmod>2026-10-27T14:41:02.321Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-python-project-the-modern-way</loc>
<lastmod>2026-10-27T14:40:40.874Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-codegen</loc>
<lastmod>2026-10-27T14:39:33.159Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-vs-java-for-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-java-and-spring-boot-the-recap</loc>
<lastmod>2026-10-27T14:40:45.528Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-generators-and-iterators</loc>
<lastmod>2026-10-27T14:40:40.765Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prototype-pollution</loc>
<lastmod>2026-10-27T14:41:02.338Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/javascript-security-essentials</loc>
<lastmod>2026-10-27T14:41:02.355Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stream-large-responses</loc>
<lastmod>2026-10-27T14:41:02.372Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dataclasses-in-python</loc>
<lastmod>2026-10-27T14:40:40.801Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/list-dict-and-set-comprehensions</loc>
<lastmod>2026-10-27T14:40:40.820Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/time-series-collections</loc>
<lastmod>2026-10-27T14:40:12.869Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streams-in-javascript</loc>
<lastmod>2026-10-27T14:41:02.390Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-response-models</loc>
<lastmod>2026-10-27T14:40:40.621Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transfer-don-t-copy</loc>
<lastmod>2026-10-27T14:41:02.407Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-with-the-trace-viewer</loc>
<lastmod>2026-10-27T14:39:32.918Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-logging-for-production</loc>
<lastmod>2026-10-27T14:40:40.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-in-fastapi</loc>
<lastmod>2026-10-27T14:40:40.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/web-workers</loc>
<lastmod>2026-10-27T14:41:02.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cancel-requests-with-abortcontroller</loc>
<lastmod>2026-10-27T14:41:02.442Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/web-apis-every-developer-should-know</loc>
<lastmod>2026-10-27T14:41:02.460Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-database-access-in-fastapi</loc>
<lastmod>2026-10-27T14:40:40.500Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-tasks-in-fastapi</loc>
<lastmod>2026-10-27T14:40:40.552Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/capped-collections</loc>
<lastmod>2026-10-27T14:40:12.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/javascript-performance-fundamentals</loc>
<lastmod>2026-10-27T14:41:02.497Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typing-async-code</loc>
<lastmod>2026-10-27T14:41:02.531Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiting-fastapi-endpoints</loc>
<lastmod>2026-10-27T14:40:40.405Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-models-and-migrations</loc>
<lastmod>2026-10-27T14:40:40.369Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-n-1-queries-in-django</loc>
<lastmod>2026-10-27T14:40:40.334Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-class-based-vs-function-based-views</loc>
<lastmod>2026-10-27T14:40:40.162Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloud-native-buildpacks-for-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.850Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scheduled-jobs-in-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.886Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-rest-api-authentication</loc>
<lastmod>2026-10-27T14:40:40.243Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-settings-for-multiple-environments</loc>
<lastmod>2026-10-27T14:40:40.197Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-and-filtering-in-drf</loc>
<lastmod>2026-10-27T14:40:40.218Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/change-streams</loc>
<lastmod>2026-10-27T14:40:12.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/connection-pooling-in-python-apps</loc>
<lastmod>2026-10-27T14:40:40.020Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/definitelytyped</loc>
<lastmod>2026-10-27T14:41:02.657Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sqlalchemy-2-0-basics</loc>
<lastmod>2026-10-27T14:40:40.084Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-django-apps-with-pytest</loc>
<lastmod>2026-10-27T14:40:40.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-migrations-with-alembic</loc>
<lastmod>2026-10-27T14:40:40.044Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sharding-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.957Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/moduleresolution-bundler</loc>
<lastmod>2026-10-27T14:41:02.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-with-python</loc>
<lastmod>2026-10-27T14:40:39.956Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/redis-with-python</loc>
<lastmod>2026-10-27T14:40:39.974Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/calling-http-apis-with-httpx</loc>
<lastmod>2026-10-27T14:40:39.918Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-settings-with-pydantic-settings</loc>
<lastmod>2026-10-27T14:40:39.901Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-stripe-checkout</loc>
<lastmod>2026-10-27T14:39:32.392Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-for-cli-tools</loc>
<lastmod>2026-10-27T14:40:39.809Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pytest-fixtures-explained</loc>
<lastmod>2026-10-27T14:40:39.791Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-in-python-tests</loc>
<lastmod>2026-10-27T14:40:39.773Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/integration-tests-with-testcontainers-in-python</loc>
<lastmod>2026-10-27T14:40:39.756Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-quality-ruff-mypy-and-pre-commit</loc>
<lastmod>2026-10-27T14:40:39.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/optimistic-concurrency-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gunicorn-vs-uvicorn</loc>
<lastmod>2026-10-27T14:40:39.610Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-django-to-production</loc>
<lastmod>2026-10-27T14:40:39.645Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-annotations</loc>
<lastmod>2026-10-27T14:39:32.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-multiprocessing-for-cpu-work</loc>
<lastmod>2026-10-27T14:40:39.681Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/organizing-a-large-playwright-suite</loc>
<lastmod>2026-10-27T14:39:32.551Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-dates-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.072Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/parse-don-t-validate</loc>
<lastmod>2026-10-27T14:41:02.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-dates-and-time-zones</loc>
<lastmod>2026-10-27T14:40:39.466Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-preview-deployments</loc>
<lastmod>2026-10-27T14:39:32.468Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-packaging-basics</loc>
<lastmod>2026-10-27T14:40:39.555Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-vs-flask-vs-fastapi</loc>
<lastmod>2026-10-27T14:40:39.519Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-match-statements</loc>
<lastmod>2026-10-27T14:40:39.483Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-common-mistakes</loc>
<lastmod>2026-10-27T14:40:39.350Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/types-from-zod-schemas</loc>
<lastmod>2026-10-27T14:41:02.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typing-callbacks</loc>
<lastmod>2026-10-27T14:41:02.804Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-literal-types</loc>
<lastmod>2026-10-27T14:41:02.910Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-backend-interview-questions</loc>
<lastmod>2026-10-27T14:40:39.390Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-interview-questions-fundamentals</loc>
<lastmod>2026-10-27T14:40:39.408Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/facet-for-search-pages</loc>
<lastmod>2026-10-27T14:40:13.108Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/conditional-types-and-infer</loc>
<lastmod>2026-10-27T14:41:02.927Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/utility-types-you-ll-use-weekly</loc>
<lastmod>2026-10-27T14:41:02.997Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unwind-and-array-processing</loc>
<lastmod>2026-10-27T14:40:13.128Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grpc-with-python</loc>
<lastmod>2026-10-27T14:40:39.277Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-with-python</loc>
<lastmod>2026-10-27T14:40:39.295Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-performance-tips-that-matter</loc>
<lastmod>2026-10-27T14:40:39.239Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reporters-in-playwright</loc>
<lastmod>2026-10-27T14:39:32.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generic-constraints</loc>
<lastmod>2026-10-27T14:41:03.019Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tagging-and-filtering-tests</loc>
<lastmod>2026-10-27T14:39:32.534Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-virtual-environments-explained</loc>
<lastmod>2026-10-27T14:40:39.145Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-not-to-use-python</loc>
<lastmod>2026-10-27T14:40:39.164Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-custom-user-model</loc>
<lastmod>2026-10-27T14:40:39.105Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lookup-joins-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.146Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generics-fundamentals</loc>
<lastmod>2026-10-27T14:41:03.038Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unions-and-narrowing</loc>
<lastmod>2026-10-27T14:41:03.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/machine-learning-for-software-engineers</loc>
<lastmod>2026-10-27T14:40:33.556Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/uploading-to-s3-with-boto3</loc>
<lastmod>2026-10-27T14:40:39.033Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/measuring-test-suite-health</loc>
<lastmod>2026-10-27T14:39:32.038Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-sail-with-docker</loc>
<lastmod>2026-10-27T14:40:26.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cross-validation-explained</loc>
<lastmod>2026-10-27T14:40:33.385Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mutation-testing-with-pit</loc>
<lastmod>2026-10-27T14:40:46.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-data-builders-in-java</loc>
<lastmod>2026-10-27T14:40:46.155Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/supervised-vs-unsupervised-learning</loc>
<lastmod>2026-10-27T14:40:33.438Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/train-validation-and-test-sets</loc>
<lastmod>2026-10-27T14:40:33.404Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/regression-metrics-mae-rmse-and-r</loc>
<lastmod>2026-10-27T14:40:33.262Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unknown-vs-any</loc>
<lastmod>2026-10-27T14:41:03.128Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/turn-on-strict-mode</loc>
<lastmod>2026-10-27T14:41:03.165Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logistic-regression-for-classification</loc>
<lastmod>2026-10-27T14:40:33.351Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gradient-boosting-with-xgboost-and-lightgbm</loc>
<lastmod>2026-10-27T14:40:33.316Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/f1-score-roc-and-auc</loc>
<lastmod>2026-10-27T14:40:33.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-next-js-apps-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.604Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-leakage-the-silent-model-killer</loc>
<lastmod>2026-10-27T14:40:33.131Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-scaling-when-it-matters</loc>
<lastmod>2026-10-27T14:40:33.171Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/and-done-right</loc>
<lastmod>2026-10-27T14:41:03.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/encoding-categorical-features</loc>
<lastmod>2026-10-27T14:40:33.190Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-cookies-and-local-storage</loc>
<lastmod>2026-10-27T14:39:31.976Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ocr-and-document-extraction</loc>
<lastmod>2026-10-27T14:40:32.562Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modern-javascript-features-worth-using</loc>
<lastmod>2026-10-27T14:41:03.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-error-cause</loc>
<lastmod>2026-10-27T14:41:03.279Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prompt-injection-and-ai-security</loc>
<lastmod>2026-10-27T14:40:32.635Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/recommendation-systems-basics</loc>
<lastmod>2026-10-27T14:40:32.599Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/image-classification-basics</loc>
<lastmod>2026-10-27T14:40:32.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/training-neural-networks-well</loc>
<lastmod>2026-10-27T14:40:32.956Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/memory-leaks-in-javascript</loc>
<lastmod>2026-10-27T14:41:03.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/promise-all-allsettled-race-and-any</loc>
<lastmod>2026-10-27T14:41:03.401Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/anomaly-detection-for-applications</loc>
<lastmod>2026-10-27T14:40:33.035Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dimensionality-reduction-with-pca</loc>
<lastmod>2026-10-27T14:40:33.053Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pytorch-basics-for-developers</loc>
<lastmod>2026-10-27T14:40:32.992Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-testing-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.641Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-with-async-await</loc>
<lastmod>2026-10-27T14:41:03.419Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/new-array-and-object-methods</loc>
<lastmod>2026-10-27T14:41:03.455Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vector-databases-explained</loc>
<lastmod>2026-10-27T14:40:32.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/text-classification-with-transformers</loc>
<lastmod>2026-10-27T14:40:32.904Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nlp-basics-for-developers</loc>
<lastmod>2026-10-27T14:40:32.921Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-two-factor-authentication</loc>
<lastmod>2026-10-27T14:39:32.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/always-use</loc>
<lastmod>2026-10-27T14:41:03.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prototypes-and-classes</loc>
<lastmod>2026-10-27T14:41:03.579Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/improving-rag-retrieval</loc>
<lastmod>2026-10-27T14:40:32.798Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prompt-engineering-for-developers</loc>
<lastmod>2026-10-27T14:40:32.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/function-calling-and-tool-use</loc>
<lastmod>2026-10-27T14:40:32.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-emails-in-e2e-tests</loc>
<lastmod>2026-10-27T14:39:32.676Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tokens-and-context-windows</loc>
<lastmod>2026-10-27T14:40:31.721Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/this-explained</loc>
<lastmod>2026-10-27T14:41:03.614Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hooks-beforeeach-and-aftereach</loc>
<lastmod>2026-10-27T14:39:31.727Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/named-entity-recognition</loc>
<lastmod>2026-10-27T14:40:31.793Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/summarization-with-llms</loc>
<lastmod>2026-10-27T14:40:31.775Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-llm-responses</loc>
<lastmod>2026-10-27T14:40:31.757Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-across-browsers</loc>
<lastmod>2026-10-27T14:39:32.762Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/explainable-ai-with-shap</loc>
<lastmod>2026-10-27T14:40:32.378Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-third-party-widgets</loc>
<lastmod>2026-10-27T14:39:31.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/batch-vs-real-time-predictions</loc>
<lastmod>2026-10-27T14:40:32.508Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mlops-basics</loc>
<lastmod>2026-10-27T14:40:32.457Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-stores-explained</loc>
<lastmod>2026-10-27T14:40:32.396Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/component-testing-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.796Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/closures-in-loops-let-vs-var</loc>
<lastmod>2026-10-27T14:41:03.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/speech-to-text-and-text-to-speech</loc>
<lastmod>2026-10-27T14:40:32.266Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-coding-standards</loc>
<lastmod>2026-10-27T14:39:28.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-privacy-in-ai-features</loc>
<lastmod>2026-10-27T14:40:32.340Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-report-generation</loc>
<lastmod>2026-10-27T14:40:32.303Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-powered-search-for-products</loc>
<lastmod>2026-10-27T14:40:32.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-practical-ai-and-ml-the-recap</loc>
<lastmod>2026-10-27T14:40:31.684Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scope-and-closures</loc>
<lastmod>2026-10-27T14:41:03.650Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/execution-context-and-hoisting</loc>
<lastmod>2026-10-27T14:41:03.701Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-to-choose-a-pattern</loc>
<lastmod>2026-10-27T14:41:06.944Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/active-learning</loc>
<lastmod>2026-10-27T14:40:32.150Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/labeling-data-efficiently</loc>
<lastmod>2026-10-27T14:40:32.169Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/flaky-test-fixes</loc>
<lastmod>2026-10-27T14:39:32.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/psr-standards-worth-knowing</loc>
<lastmod>2026-10-27T14:40:28.378Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-8-features-every-developer-should-use</loc>
<lastmod>2026-10-27T14:40:28.450Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-enums</loc>
<lastmod>2026-10-27T14:40:28.413Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composer-and-autoloading</loc>
<lastmod>2026-10-27T14:40:28.395Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-post-types-tutorial</loc>
<lastmod>2026-10-27T14:39:28.578Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/test-data-management</loc>
<lastmod>2026-10-27T14:39:32.989Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-patterns</loc>
<lastmod>2026-10-27T14:41:06.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-smells-that-suggest-a-pattern</loc>
<lastmod>2026-10-27T14:41:07.072Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-validation-with-form-requests</loc>
<lastmod>2026-10-27T14:40:28.265Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-database-tables-in-wordpress</loc>
<lastmod>2026-10-27T14:39:28.488Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-routing</loc>
<lastmod>2026-10-27T14:40:28.322Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/combining-api-and-ui-tests</loc>
<lastmod>2026-10-27T14:39:33.011Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-apis-with-page-route</loc>
<lastmod>2026-10-27T14:39:33.048Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-n-1-queries-in-laravel</loc>
<lastmod>2026-10-27T14:40:28.190Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/factories-and-seeders</loc>
<lastmod>2026-10-27T14:40:28.151Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/query-scopes-and-query-builder</loc>
<lastmod>2026-10-27T14:40:28.132Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-transactions-in-laravel</loc>
<lastmod>2026-10-27T14:40:28.113Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-multiple-user-roles</loc>
<lastmod>2026-10-27T14:39:33.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-reliable-form-tests</loc>
<lastmod>2026-10-27T14:39:33.178Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authorization-with-policies-and-gates</loc>
<lastmod>2026-10-27T14:40:28.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-queues-explained</loc>
<lastmod>2026-10-27T14:40:28.014Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-horizon</loc>
<lastmod>2026-10-27T14:40:27.986Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-task-scheduling</loc>
<lastmod>2026-10-27T14:40:27.967Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structuring-a-terraform-repository</loc>
<lastmod>2026-10-27T14:39:54.288Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-patterns-become-over-engineering</loc>
<lastmod>2026-10-27T14:41:07.125Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-and-action-classes-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.801Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-webhook-dispatcher</loc>
<lastmod>2026-10-27T14:41:07.178Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-container-and-dependency-injection</loc>
<lastmod>2026-10-27T14:40:27.837Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-storage-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.877Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/web-first-assertions</loc>
<lastmod>2026-10-27T14:39:33.197Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-workflow-automation-engine</loc>
<lastmod>2026-10-27T14:41:07.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cors-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-blocks</loc>
<lastmod>2026-10-27T14:39:28.313Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/phpunit-vs-pest</loc>
<lastmod>2026-10-27T14:40:27.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/static-analysis-with-phpstan-and-larastan</loc>
<lastmod>2026-10-27T14:40:27.709Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-locators-explained</loc>
<lastmod>2026-10-27T14:39:33.249Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/webhooks-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.504Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenancy-patterns</loc>
<lastmod>2026-10-27T14:41:07.300Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/child-themes</loc>
<lastmod>2026-10-27T14:39:28.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/livewire-for-interactive-uis</loc>
<lastmod>2026-10-27T14:40:27.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/subscriptions-with-laravel-cashier</loc>
<lastmod>2026-10-27T14:40:27.522Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/understanding-playwright-config-ts</loc>
<lastmod>2026-10-27T14:39:33.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logging-and-monitoring-laravel</loc>
<lastmod>2026-10-27T14:40:27.357Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-octane</loc>
<lastmod>2026-10-27T14:40:27.448Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-performance-tuning</loc>
<lastmod>2026-10-27T14:40:27.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-telescope</loc>
<lastmod>2026-10-27T14:40:27.381Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hardening-wordpress-sites</loc>
<lastmod>2026-10-27T14:39:28.068Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-tutorial-your-first-test</loc>
<lastmod>2026-10-27T14:39:33.304Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-laravel-and-vue-or-react</loc>
<lastmod>2026-10-27T14:40:27.156Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-optimization-for-wordpress</loc>
<lastmod>2026-10-27T14:39:27.986Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-documentation-for-laravel</loc>
<lastmod>2026-10-27T14:40:27.231Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-transfer-objects-in-php</loc>
<lastmod>2026-10-27T14:40:27.193Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-collections-tips</loc>
<lastmod>2026-10-27T14:40:27.175Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-playwright-for-end-to-end-testing</loc>
<lastmod>2026-10-27T14:39:33.321Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-for-e-commerce</loc>
<lastmod>2026-10-27T14:40:27.006Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-laravel-errors-and-fixes</loc>
<lastmod>2026-10-27T14:40:27.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-php-mistakes</loc>
<lastmod>2026-10-27T14:40:27.065Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-laravel-versions</loc>
<lastmod>2026-10-27T14:40:27.046Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-vs-symfony</loc>
<lastmod>2026-10-27T14:40:27.028Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dates-and-formatting-in-swift</loc>
<lastmod>2026-10-27T14:39:37.744Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-interfaces-and-abstract-classes</loc>
<lastmod>2026-10-27T14:40:26.862Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-customization</loc>
<lastmod>2026-10-27T14:39:27.882Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-and-ai-features</loc>
<lastmod>2026-10-27T14:40:26.934Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-choose-php-for-a-new-project</loc>
<lastmod>2026-10-27T14:40:26.898Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-traits-explained</loc>
<lastmod>2026-10-27T14:40:26.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sharing-content-with-sharelink</loc>
<lastmod>2026-10-27T14:39:37.857Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-machines-for-ui</loc>
<lastmod>2026-10-27T14:41:07.336Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-pint-for-code-style</loc>
<lastmod>2026-10-27T14:40:26.696Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/soft-deletes-in-laravel</loc>
<lastmod>2026-10-27T14:40:26.788Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eloquent-observers</loc>
<lastmod>2026-10-27T14:40:26.770Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-localization</loc>
<lastmod>2026-10-27T14:40:26.752Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-pagination</loc>
<lastmod>2026-10-27T14:40:26.733Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aggregation-pipeline-basics</loc>
<lastmod>2026-10-27T14:40:13.185Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/design-systems-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.892Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/react-component-patterns</loc>
<lastmod>2026-10-27T14:41:07.406Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pub-sub-vs-point-to-point-queues</loc>
<lastmod>2026-10-27T14:41:07.441Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/documents-and-collections-explained</loc>
<lastmod>2026-10-27T14:40:13.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-vs-postgresql</loc>
<lastmod>2026-10-27T14:40:13.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-schema-design-embed-or-reference</loc>
<lastmod>2026-10-27T14:40:13.336Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/result-builders</loc>
<lastmod>2026-10-27T14:39:38.038Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-patterns</loc>
<lastmod>2026-10-27T14:41:07.511Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-sidecar-pattern</loc>
<lastmod>2026-10-27T14:41:07.528Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/property-wrappers-in-swift</loc>
<lastmod>2026-10-27T14:39:38.058Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-wordpress-sites</loc>
<lastmod>2026-10-27T14:39:27.681Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generics-in-swift</loc>
<lastmod>2026-10-27T14:39:38.079Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-cloud-and-hcp</loc>
<lastmod>2026-10-27T14:39:54.307Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backend-for-frontend-bff</loc>
<lastmod>2026-10-27T14:41:07.564Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-gateway-pattern</loc>
<lastmod>2026-10-27T14:41:07.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-explain-plans</loc>
<lastmod>2026-10-27T14:40:13.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-aggregation-examples</loc>
<lastmod>2026-10-27T14:40:13.166Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-interview-questions</loc>
<lastmod>2026-10-27T14:39:38.213Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/atomic-operations-without-transactions</loc>
<lastmod>2026-10-27T14:40:13.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-bulkhead-pattern</loc>
<lastmod>2026-10-27T14:41:07.614Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-outbox-pattern</loc>
<lastmod>2026-10-27T14:41:07.666Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-wordpress-plugins</loc>
<lastmod>2026-10-27T14:39:27.505Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.090Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/privacy-manifests</loc>
<lastmod>2026-10-27T14:39:38.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cqrs-without-the-complexity</loc>
<lastmod>2026-10-27T14:41:07.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ttl-indexes-for-expiring-data</loc>
<lastmod>2026-10-27T14:40:12.905Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-a-shard-key</loc>
<lastmod>2026-10-27T14:40:12.940Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/write-concern-and-read-concern</loc>
<lastmod>2026-10-27T14:40:12.974Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-data-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.402Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crash-reporting-and-analytics-on-ios</loc>
<lastmod>2026-10-27T14:39:38.320Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fluent-interfaces</loc>
<lastmod>2026-10-27T14:41:07.769Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongoose-performance-tips</loc>
<lastmod>2026-10-27T14:40:12.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/email-deliverability-for-wordpress</loc>
<lastmod>2026-10-27T14:39:27.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/geospatial-queries</loc>
<lastmod>2026-10-27T14:40:12.850Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-atlas-vector-search</loc>
<lastmod>2026-10-27T14:40:12.812Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongoose-tutorial</loc>
<lastmod>2026-10-27T14:40:12.774Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-security-checklist</loc>
<lastmod>2026-10-27T14:40:12.587Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/null-object-pattern</loc>
<lastmod>2026-10-27T14:41:07.803Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-result-pattern</loc>
<lastmod>2026-10-27T14:41:07.819Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-with-dotnet</loc>
<lastmod>2026-10-27T14:40:12.682Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modeling-a-blog-or-cms-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.646Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/storing-files-in-mongodb-with-gridfs</loc>
<lastmod>2026-10-27T14:40:12.607Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upserts-explained</loc>
<lastmod>2026-10-27T14:40:12.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bulk-writes-in-mongodb</loc>
<lastmod>2026-10-27T14:40:12.454Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/anti-corruption-layer</loc>
<lastmod>2026-10-27T14:41:07.835Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-mongodb</loc>
<lastmod>2026-10-27T14:40:12.511Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/widgets-and-sidebars</loc>
<lastmod>2026-10-27T14:39:27.116Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/domain-services</loc>
<lastmod>2026-10-27T14:41:07.870Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-developer-roadmap</loc>
<lastmod>2026-10-27T14:39:27.173Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/publishing-to-the-app-store</loc>
<lastmod>2026-10-27T14:39:38.354Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/entities-and-aggregates</loc>
<lastmod>2026-10-27T14:41:07.888Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-objectid</loc>
<lastmod>2026-10-27T14:40:12.304Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/outbox-pattern-with-mongodb</loc>
<lastmod>2026-10-27T14:40:12.379Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-wordpress-development-and-plugins-the-recap</loc>
<lastmod>2026-10-27T14:39:26.895Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cron-alternatives-for-busy-sites</loc>
<lastmod>2026-10-27T14:39:26.940Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/in-app-purchases-with-storekit-2</loc>
<lastmod>2026-10-27T14:39:38.388Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/value-objects</loc>
<lastmod>2026-10-27T14:41:07.906Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-data-modeling-interview-questions</loc>
<lastmod>2026-10-27T14:40:12.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-interview-questions</loc>
<lastmod>2026-10-27T14:40:12.212Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-vs-redis</loc>
<lastmod>2026-10-27T14:40:12.178Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-vs-dynamodb</loc>
<lastmod>2026-10-27T14:40:12.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-for-mobile-and-offline-apps</loc>
<lastmod>2026-10-27T14:40:12.024Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/maps-with-mapkit-in-swiftui</loc>
<lastmod>2026-10-27T14:39:38.494Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-in-ios</loc>
<lastmod>2026-10-27T14:39:38.511Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-mongodb-versions</loc>
<lastmod>2026-10-27T14:40:12.045Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-performance-checklist</loc>
<lastmod>2026-10-27T14:40:12.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wiredtiger-storage-engine-basics</loc>
<lastmod>2026-10-27T14:40:12.066Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-package-manager</loc>
<lastmod>2026-10-27T14:39:38.595Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nosql-data-modeling-roadmap</loc>
<lastmod>2026-10-27T14:40:11.899Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-mapper-vs-active-record</loc>
<lastmod>2026-10-27T14:41:07.940Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/memento-pattern</loc>
<lastmod>2026-10-27T14:41:08.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/trials-upgrades-and-downgrades</loc>
<lastmod>2026-10-27T14:39:22.972Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/idempotency-in-your-own-apis</loc>
<lastmod>2026-10-27T14:39:23.113Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/localization-in-ios</loc>
<lastmod>2026-10-27T14:39:38.628Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/views-in-mongodb</loc>
<lastmod>2026-10-27T14:40:11.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dunning-and-failed-payments</loc>
<lastmod>2026-10-27T14:39:22.938Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/polymorphic-documents</loc>
<lastmod>2026-10-27T14:40:11.828Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/counting-documents-efficiently</loc>
<lastmod>2026-10-27T14:40:11.810Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/merge-and-out</loc>
<lastmod>2026-10-27T14:40:11.773Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-swiftui</loc>
<lastmod>2026-10-27T14:39:38.644Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iterator-pattern-and-generators</loc>
<lastmod>2026-10-27T14:41:08.097Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-mongodb-and-nosql-the-recap</loc>
<lastmod>2026-10-27T14:40:11.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observer-pattern</loc>
<lastmod>2026-10-27T14:41:08.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/document-versioning</loc>
<lastmod>2026-10-27T14:40:11.680Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/saving-cards-for-later</loc>
<lastmod>2026-10-27T14:39:22.827Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/snapshot-testing-swiftui</loc>
<lastmod>2026-10-27T14:39:38.763Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-pointers-explained</loc>
<lastmod>2026-10-27T14:40:07.774Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/marketplace-payments-with-stripe-connect</loc>
<lastmod>2026-10-27T14:39:22.703Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structs-and-methods-in-go</loc>
<lastmod>2026-10-27T14:40:07.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-error-handling</loc>
<lastmod>2026-10-27T14:40:07.809Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/panic-and-recover</loc>
<lastmod>2026-10-27T14:40:07.792Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/face-id-and-touch-id</loc>
<lastmod>2026-10-27T14:39:38.813Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bridge-pattern</loc>
<lastmod>2026-10-27T14:41:08.256Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/race-conditions-and-the-race-detector</loc>
<lastmod>2026-10-27T14:40:07.642Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/securing-payment-endpoints</loc>
<lastmod>2026-10-27T14:39:22.566Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-select-statement</loc>
<lastmod>2026-10-27T14:40:07.717Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sync-waitgroup-and-mutex</loc>
<lastmod>2026-10-27T14:40:07.679Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/context-context-in-go</loc>
<lastmod>2026-10-27T14:40:07.660Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/push-notifications-in-ios</loc>
<lastmod>2026-10-27T14:39:38.899Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configuration-in-go-services</loc>
<lastmod>2026-10-27T14:40:07.475Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/middleware-in-go</loc>
<lastmod>2026-10-27T14:40:07.569Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/request-validation-in-go</loc>
<lastmod>2026-10-27T14:40:07.551Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-logging-with-slog</loc>
<lastmod>2026-10-27T14:40:07.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-dependency-injection</loc>
<lastmod>2026-10-27T14:40:07.492Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/offline-first-ios-apps</loc>
<lastmod>2026-10-27T14:39:38.932Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/decorator-pattern</loc>
<lastmod>2026-10-27T14:41:08.309Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/password-hashing-in-go</loc>
<lastmod>2026-10-27T14:40:07.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-migrations-in-go</loc>
<lastmod>2026-10-27T14:40:07.382Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/connection-pooling-in-go</loc>
<lastmod>2026-10-27T14:40:07.363Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/redis-with-go</loc>
<lastmod>2026-10-27T14:40:07.345Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jwt-authentication-in-go</loc>
<lastmod>2026-10-27T14:40:07.327Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mvvm-in-swiftui</loc>
<lastmod>2026-10-27T14:39:38.965Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structural-patterns-overview</loc>
<lastmod>2026-10-27T14:41:08.362Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/builder-pattern</loc>
<lastmod>2026-10-27T14:41:08.450Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fuzz-testing-in-go</loc>
<lastmod>2026-10-27T14:40:07.124Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-http-handlers-in-go</loc>
<lastmod>2026-10-27T14:40:07.204Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/integration-tests-with-testcontainers-in-go</loc>
<lastmod>2026-10-27T14:40:07.162Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-in-go</loc>
<lastmod>2026-10-27T14:40:07.183Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/codable-in-swift</loc>
<lastmod>2026-10-27T14:39:39.039Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dry-wet-and-aha</loc>
<lastmod>2026-10-27T14:41:08.555Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/health-checks-for-go-services</loc>
<lastmod>2026-10-27T14:40:06.965Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-stripe-api-versions</loc>
<lastmod>2026-10-27T14:39:22.308Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/protocol-buffers-basics</loc>
<lastmod>2026-10-27T14:40:07.023Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grpc-vs-rest</loc>
<lastmod>2026-10-27T14:40:07.001Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graceful-shutdown-in-go</loc>
<lastmod>2026-10-27T14:40:06.983Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/networking-in-swift-with-urlsession</loc>
<lastmod>2026-10-27T14:39:39.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/interface-segregation-and-dependency-inversion</loc>
<lastmod>2026-10-27T14:41:08.573Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-sent-events-in-go</loc>
<lastmod>2026-10-27T14:40:06.802Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-links</loc>
<lastmod>2026-10-27T14:39:22.223Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observability-in-go</loc>
<lastmod>2026-10-27T14:40:06.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/opentelemetry-tracing-in-go</loc>
<lastmod>2026-10-27T14:40:06.855Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-in-go</loc>
<lastmod>2026-10-27T14:40:06.820Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/images-and-sf-symbols</loc>
<lastmod>2026-10-27T14:39:39.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/single-responsibility-practically</loc>
<lastmod>2026-10-27T14:41:08.625Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-with-go</loc>
<lastmod>2026-10-27T14:40:06.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/avoiding-goroutine-leaks</loc>
<lastmod>2026-10-27T14:40:06.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/timeouts-for-http-clients-in-go</loc>
<lastmod>2026-10-27T14:40:06.694Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-vs-node-js-for-apis</loc>
<lastmod>2026-10-27T14:40:06.659Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-vs-rust-for-backend-services</loc>
<lastmod>2026-10-27T14:40:06.641Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.090Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-design-patterns-still-matter</loc>
<lastmod>2026-10-27T14:41:08.662Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-interview-questions</loc>
<lastmod>2026-10-27T14:40:06.458Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-in-go</loc>
<lastmod>2026-10-27T14:40:06.550Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-time-in-go</loc>
<lastmod>2026-10-27T14:40:06.533Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/golangci-lint-setup</loc>
<lastmod>2026-10-27T14:40:06.495Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-code-review-checklist</loc>
<lastmod>2026-10-27T14:40:06.477Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-vs-uikit</loc>
<lastmod>2026-10-27T14:39:39.106Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-aws-mistakes</loc>
<lastmod>2026-10-27T14:41:12.837Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-developer-roadmap</loc>
<lastmod>2026-10-27T14:40:06.351Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-go-mistakes</loc>
<lastmod>2026-10-27T14:40:06.422Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-performance-tips</loc>
<lastmod>2026-10-27T14:40:06.405Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-tunnel-client-in-go</loc>
<lastmod>2026-10-27T14:40:06.388Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-for-devops-tooling</loc>
<lastmod>2026-10-27T14:40:06.369Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-navigation</loc>
<lastmod>2026-10-27T14:39:39.159Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-features-with-bedrock</loc>
<lastmod>2026-10-27T14:41:12.896Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/singleflight-in-go</loc>
<lastmod>2026-10-27T14:40:06.164Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/zero-values-in-go</loc>
<lastmod>2026-10-27T14:40:06.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-in-go-apis</loc>
<lastmod>2026-10-27T14:40:06.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-error-responses-in-go</loc>
<lastmod>2026-10-27T14:40:06.225Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validating-environment-at-startup</loc>
<lastmod>2026-10-27T14:40:06.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-management-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.209Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-infrastructure-as-code-matters</loc>
<lastmod>2026-10-27T14:39:55.253Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/statement-descriptors</loc>
<lastmod>2026-10-27T14:39:21.849Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiting-outgoing-requests</loc>
<lastmod>2026-10-27T14:40:06.060Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sending-email-from-go</loc>
<lastmod>2026-10-27T14:40:06.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-slow-query-optimization</loc>
<lastmod>2026-10-27T14:40:13.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-modifiers</loc>
<lastmod>2026-10-27T14:39:39.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compound-indexes-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-state-explained</loc>
<lastmod>2026-10-27T14:39:55.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-indexing-explained</loc>
<lastmod>2026-10-27T14:40:13.281Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/outbox-pattern-for-payment-events</loc>
<lastmod>2026-10-27T14:39:21.724Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hcl-syntax-basics</loc>
<lastmod>2026-10-27T14:39:55.198Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-outputs</loc>
<lastmod>2026-10-27T14:39:55.143Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/task-groups-and-cancellation</loc>
<lastmod>2026-10-27T14:39:39.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-schema-design-patterns</loc>
<lastmod>2026-10-27T14:40:13.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-locking-explained</loc>
<lastmod>2026-10-27T14:39:55.065Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-state-commands</loc>
<lastmod>2026-10-27T14:39:55.046Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-modules-examples</loc>
<lastmod>2026-10-27T14:39:55.026Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-good-terraform-modules</loc>
<lastmod>2026-10-27T14:39:54.998Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/versioning-terraform-modules</loc>
<lastmod>2026-10-27T14:39:54.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/closures-in-swift</loc>
<lastmod>2026-10-27T14:39:39.368Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/moved-blocks-for-refactoring</loc>
<lastmod>2026-10-27T14:39:54.837Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-vue-3-project</loc>
<lastmod>2026-10-27T14:39:17.088Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/count-vs-for-each</loc>
<lastmod>2026-10-27T14:39:54.925Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-blocks-in-terraform</loc>
<lastmod>2026-10-27T14:39:54.907Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-sources-in-terraform</loc>
<lastmod>2026-10-27T14:39:54.872Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-protocols</loc>
<lastmod>2026-10-27T14:39:39.401Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-basics</loc>
<lastmod>2026-10-27T14:39:39.476Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/application-load-balancer-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.718Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/props-and-emits</loc>
<lastmod>2026-10-27T14:39:16.961Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-groups-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ecs-fargate-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.734Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-xcode-for-ios-development</loc>
<lastmod>2026-10-27T14:39:39.493Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-update-operators</loc>
<lastmod>2026-10-27T14:40:13.354Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-gateway-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudfront-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/route-53-dns-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/acm-certificates-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.615Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lambda-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.598Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/policy-as-code-for-terraform</loc>
<lastmod>2026-10-27T14:39:54.430Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-aws-vpc-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.786Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/opentofu-explained</loc>
<lastmod>2026-10-27T14:39:54.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-vs-pulumi</loc>
<lastmod>2026-10-27T14:39:54.515Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/oidc-from-github-actions-to-aws</loc>
<lastmod>2026-10-27T14:39:54.464Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-formatting-and-validation</loc>
<lastmod>2026-10-27T14:39:54.447Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-modern-android-and-kotlin-the-recap</loc>
<lastmod>2026-10-27T14:39:43.563Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terragrunt-basics</loc>
<lastmod>2026-10-27T14:39:54.324Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crud-operations-in-mongodb</loc>
<lastmod>2026-10-27T14:40:13.407Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-mongodb-locally</loc>
<lastmod>2026-10-27T14:40:13.445Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tagging-strategy-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/drift-detection</loc>
<lastmod>2026-10-27T14:39:54.379Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-learning-roadmap</loc>
<lastmod>2026-10-27T14:39:04.664Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-mongodb-is-the-right-choice</loc>
<lastmod>2026-10-27T14:40:13.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-and-react</loc>
<lastmod>2026-10-27T14:39:27.297Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managing-cloudflare-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.126Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-with-a-dotnet-or-go-backend</loc>
<lastmod>2026-10-27T14:38:58.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managing-github-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.144Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-a-search-architecture</loc>
<lastmod>2026-10-27T14:39:04.682Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-http-client</loc>
<lastmod>2026-10-27T14:40:26.623Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sessions-in-laravel</loc>
<lastmod>2026-10-27T14:40:26.641Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/serverless-api-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.089Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backups-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.051Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-and-alarms-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.071Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-upgrade-strategy</loc>
<lastmod>2026-10-27T14:39:54.012Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-upgrades</loc>
<lastmod>2026-10-27T14:39:04.699Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-money-in-php</loc>
<lastmod>2026-10-27T14:40:26.677Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/documenting-terraform-modules</loc>
<lastmod>2026-10-27T14:39:53.880Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eloquent-accessors-and-mutators</loc>
<lastmod>2026-10-27T14:40:26.806Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-plan-shows-changes-every-time</loc>
<lastmod>2026-10-27T14:39:53.952Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/naming-conventions-for-infrastructure</loc>
<lastmod>2026-10-27T14:39:53.898Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/analytics-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-for-observability</loc>
<lastmod>2026-10-27T14:39:04.766Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sensitive-values-in-terraform-output</loc>
<lastmod>2026-10-27T14:39:53.735Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-first-class-callables-and-closures</loc>
<lastmod>2026-10-27T14:40:26.824Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-interview-questions</loc>
<lastmod>2026-10-27T14:39:53.810Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-learning-roadmap</loc>
<lastmod>2026-10-27T14:39:53.772Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/infrastructure-as-code-anti-patterns</loc>
<lastmod>2026-10-27T14:39:53.792Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-interview-questions</loc>
<lastmod>2026-10-27T14:39:04.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/readonly-properties-and-classes-in-php</loc>
<lastmod>2026-10-27T14:40:26.843Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/waf-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.610Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-e-commerce-store-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.748Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamodb-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.698Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudwatch-log-groups-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.646Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-search-relevance</loc>
<lastmod>2026-10-27T14:39:04.850Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/layout-groups-and-resets</loc>
<lastmod>2026-10-27T14:38:57.677Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-order-system-in-laravel</loc>
<lastmod>2026-10-27T14:40:26.986Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-git-works-under-the-hood</loc>
<lastmod>2026-10-27T14:39:50.025Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-interview-questions-fundamentals</loc>
<lastmod>2026-10-27T14:40:27.119Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-git-skills-matter-for-every-developer</loc>
<lastmod>2026-10-27T14:39:50.071Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ephemeral-preview-environments</loc>
<lastmod>2026-10-27T14:39:53.477Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-package-development</loc>
<lastmod>2026-10-27T14:40:27.137Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-rebase-vs-merge</loc>
<lastmod>2026-10-27T14:39:49.859Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-good-commit-messages</loc>
<lastmod>2026-10-27T14:39:49.975Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/conventional-commits</loc>
<lastmod>2026-10-27T14:39:49.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-add-p</loc>
<lastmod>2026-10-27T14:39:49.938Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-branching-strategies</loc>
<lastmod>2026-10-27T14:39:49.876Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-vs-algolia-and-meilisearch</loc>
<lastmod>2026-10-27T14:39:05.048Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-api-versioning</loc>
<lastmod>2026-10-27T14:40:27.250Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-revert-vs-git-reset</loc>
<lastmod>2026-10-27T14:39:49.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-rerere</loc>
<lastmod>2026-10-27T14:39:49.771Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-reusable-svelte-libraries</loc>
<lastmod>2026-10-27T14:38:57.519Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/resolve-git-conflicts</loc>
<lastmod>2026-10-27T14:39:49.806Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mobile-apps-with-svelte</loc>
<lastmod>2026-10-27T14:38:57.536Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenant-search</loc>
<lastmod>2026-10-27T14:39:05.140Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-log-tricks</loc>
<lastmod>2026-10-27T14:39:49.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nginx-configuration-for-php</loc>
<lastmod>2026-10-27T14:40:27.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-stash</loc>
<lastmod>2026-10-27T14:39:49.653Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-worktree</loc>
<lastmod>2026-10-27T14:39:49.636Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-bisect-find-the-bad-commit</loc>
<lastmod>2026-10-27T14:39:49.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-blame-done-right</loc>
<lastmod>2026-10-27T14:39:49.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hybrid-search</loc>
<lastmod>2026-10-27T14:39:05.213Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-forge-and-vapor</loc>
<lastmod>2026-10-27T14:40:27.301Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/squash-merge-or-rebase-on-github</loc>
<lastmod>2026-10-27T14:39:49.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iterators-and-closures</loc>
<lastmod>2026-10-27T14:38:52.814Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-push-force-with-lease</loc>
<lastmod>2026-10-27T14:39:49.527Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-a-great-pull-request-description</loc>
<lastmod>2026-10-27T14:39:49.477Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vector-search-in-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-a-laravel-app</loc>
<lastmod>2026-10-27T14:40:27.320Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/concurrency-in-rust</loc>
<lastmod>2026-10-27T14:38:52.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/automating-releases</loc>
<lastmod>2026-10-27T14:39:49.293Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-github-actions</loc>
<lastmod>2026-10-27T14:39:49.377Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-actions-security</loc>
<lastmod>2026-10-27T14:39:49.328Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-product-search</loc>
<lastmod>2026-10-27T14:39:05.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-laravel-to-production</loc>
<lastmod>2026-10-27T14:40:27.339Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-hooks</loc>
<lastmod>2026-10-27T14:39:49.155Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-in-axum</loc>
<lastmod>2026-10-27T14:38:52.609Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gitignore-best-practices</loc>
<lastmod>2026-10-27T14:39:49.237Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/secret-scanning-on-github</loc>
<lastmod>2026-10-27T14:39:49.200Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/signing-commits</loc>
<lastmod>2026-10-27T14:39:49.177Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-elk-stack-explained</loc>
<lastmod>2026-10-27T14:39:05.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/issue-templates-and-labels</loc>
<lastmod>2026-10-27T14:39:48.997Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-in-laravel-with-scout</loc>
<lastmod>2026-10-27T14:40:27.486Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/serde-for-json</loc>
<lastmod>2026-10-27T14:38:52.513Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/finding-good-first-issues</loc>
<lastmod>2026-10-27T14:39:49.051Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/maintaining-an-open-source-project</loc>
<lastmod>2026-10-27T14:39:49.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/open-source-licenses-explained</loc>
<lastmod>2026-10-27T14:39:49.017Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ingest-pipelines</loc>
<lastmod>2026-10-27T14:39:05.401Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/case-sensitivity-issues-in-git</loc>
<lastmod>2026-10-27T14:39:48.827Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenant-saas-with-laravel</loc>
<lastmod>2026-10-27T14:40:27.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-line-endings</loc>
<lastmod>2026-10-27T14:39:48.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-json-apis</loc>
<lastmod>2026-10-27T14:38:52.327Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/trunk-based-development-git-github</loc>
<lastmod>2026-10-27T14:39:48.878Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clippy-and-rustfmt</loc>
<lastmod>2026-10-27T14:38:52.380Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/replicas-and-availability</loc>
<lastmod>2026-10-27T14:39:05.526Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/uploading-files-securely-in-php</loc>
<lastmod>2026-10-27T14:40:27.620Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependabot-and-renovate</loc>
<lastmod>2026-10-27T14:39:48.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unsafe-rust</loc>
<lastmod>2026-10-27T14:38:52.255Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/speeding-up-large-repositories</loc>
<lastmod>2026-10-27T14:39:48.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shallow-clones-in-ci</loc>
<lastmod>2026-10-27T14:39:48.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gitlab-ci-basics</loc>
<lastmod>2026-10-27T14:39:48.690Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shard-sizing</loc>
<lastmod>2026-10-27T14:39:05.545Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/csrf-protection-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.638Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-and-github-learning-roadmap</loc>
<lastmod>2026-10-27T14:39:48.528Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-dispatch-with-dyn-trait</loc>
<lastmod>2026-10-27T14:38:52.142Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-git-mistakes</loc>
<lastmod>2026-10-27T14:39:48.596Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-commands-you-will-use-every-day</loc>
<lastmod>2026-10-27T14:39:48.580Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-a-great-readme</loc>
<lastmod>2026-10-27T14:39:48.546Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/index-lifecycle-management</loc>
<lastmod>2026-10-27T14:39:05.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-security-checklist</loc>
<lastmod>2026-10-27T14:40:27.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/required-status-checks</loc>
<lastmod>2026-10-27T14:39:48.386Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/partial-staging-in-gui-tools</loc>
<lastmod>2026-10-27T14:39:48.456Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/commit-frequency</loc>
<lastmod>2026-10-27T14:39:48.437Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/draft-pull-requests</loc>
<lastmod>2026-10-27T14:39:48.420Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/linking-prs-to-issues</loc>
<lastmod>2026-10-27T14:39:48.403Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-admin-customization</loc>
<lastmod>2026-10-27T14:39:27.333Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-api-rate-limiting</loc>
<lastmod>2026-10-27T14:40:27.691Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-review-feedback</loc>
<lastmod>2026-10-27T14:39:48.297Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reviewing-your-own-pr-first</loc>
<lastmod>2026-10-27T14:39:48.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-build-android-apps-with-kotlin</loc>
<lastmod>2026-10-27T14:39:45.536Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-git-and-github-the-recap</loc>
<lastmod>2026-10-27T14:39:48.278Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gutenberg-for-clients</loc>
<lastmod>2026-10-27T14:39:27.350Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-vs-java-for-android</loc>
<lastmod>2026-10-27T14:39:45.372Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-data-classes</loc>
<lastmod>2026-10-27T14:39:45.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-collections</loc>
<lastmod>2026-10-27T14:39:45.426Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/extension-functions</loc>
<lastmod>2026-10-27T14:39:45.407Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scope-functions-let-apply-also-run-with</loc>
<lastmod>2026-10-27T14:39:45.390Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/syncing-a-database-to-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.653Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modifiers-in-compose</loc>
<lastmod>2026-10-27T14:39:45.148Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/repository-pattern-in-laravel-do-you-need-it</loc>
<lastmod>2026-10-27T14:40:27.781Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-and-messaging-in-rust</loc>
<lastmod>2026-10-27T14:38:51.821Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-providers-explained</loc>
<lastmod>2026-10-27T14:40:27.820Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-flow-explained</loc>
<lastmod>2026-10-27T14:39:45.287Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compose-layouts-column-row-and-box</loc>
<lastmod>2026-10-27T14:39:45.189Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-modeling-for-search</loc>
<lastmod>2026-10-27T14:39:05.672Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.894Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/theming-and-dark-mode-in-compose</loc>
<lastmod>2026-10-27T14:39:44.953Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/material-3-in-compose</loc>
<lastmod>2026-10-27T14:39:44.971Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lazycolumn-and-lists</loc>
<lastmod>2026-10-27T14:39:45.024Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slices-in-rust</loc>
<lastmod>2026-10-27T14:38:51.547Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-ecosystem-essentials</loc>
<lastmod>2026-10-27T14:38:51.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-canvas-and-charts</loc>
<lastmod>2026-10-27T14:39:31.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-notifications</loc>
<lastmod>2026-10-27T14:40:27.913Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sending-email-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.931Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/koin-vs-hilt</loc>
<lastmod>2026-10-27T14:39:44.866Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/okhttp-interceptors</loc>
<lastmod>2026-10-27T14:39:44.832Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/room-database-tutorial</loc>
<lastmod>2026-10-27T14:39:44.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/room-migrations</loc>
<lastmod>2026-10-27T14:39:44.797Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-in-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.743Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-app-lifecycle</loc>
<lastmod>2026-10-27T14:39:44.657Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/events-and-listeners-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.948Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-middleware</loc>
<lastmod>2026-10-27T14:40:28.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-references-vs-pointers</loc>
<lastmod>2026-10-27T14:38:51.358Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/image-loading-with-coil</loc>
<lastmod>2026-10-27T14:39:44.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/faceted-search</loc>
<lastmod>2026-10-27T14:39:05.795Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-authentication-options</loc>
<lastmod>2026-10-27T14:40:28.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/highlighting-search-results</loc>
<lastmod>2026-10-27T14:39:05.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/notifications-in-android</loc>
<lastmod>2026-10-27T14:39:44.623Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/camera-and-image-picking</loc>
<lastmod>2026-10-27T14:39:44.568Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/location-in-android-apps</loc>
<lastmod>2026-10-27T14:39:44.546Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bm25-explained</loc>
<lastmod>2026-10-27T14:39:05.896Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/relevance-tuning</loc>
<lastmod>2026-10-27T14:39:05.914Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eloquent-relationships-explained</loc>
<lastmod>2026-10-27T14:40:28.209Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compose-performance-tips</loc>
<lastmod>2026-10-27T14:39:44.439Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eloquent-orm-basics</loc>
<lastmod>2026-10-27T14:40:28.228Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-udfs-and-their-cost</loc>
<lastmod>2026-10-27T14:38:43.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/query-dsl-basics</loc>
<lastmod>2026-10-27T14:39:05.983Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/indexing-documents</loc>
<lastmod>2026-10-27T14:39:06.040Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-api-resources</loc>
<lastmod>2026-10-27T14:40:28.246Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modularizing-an-android-app</loc>
<lastmod>2026-10-27T14:39:44.302Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-rest-api-tutorial</loc>
<lastmod>2026-10-27T14:40:28.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gradle-for-android-developers</loc>
<lastmod>2026-10-27T14:39:44.354Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-analyzers</loc>
<lastmod>2026-10-27T14:39:06.060Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-controllers-done-right</loc>
<lastmod>2026-10-27T14:40:28.302Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/publishing-to-google-play</loc>
<lastmod>2026-10-27T14:39:44.134Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-compose</loc>
<lastmod>2026-10-27T14:39:44.230Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/animations-in-compose</loc>
<lastmod>2026-10-27T14:39:44.191Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-drawing-with-canvas-in-compose</loc>
<lastmod>2026-10-27T14:39:44.173Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adaptive-layouts-for-tablets-and-foldables</loc>
<lastmod>2026-10-27T14:39:44.154Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/analyzers-explained</loc>
<lastmod>2026-10-27T14:39:06.078Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-vs-node-js-for-web-backends</loc>
<lastmod>2026-10-27T14:40:28.360Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-api-errors-gracefully</loc>
<lastmod>2026-10-27T14:39:43.971Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-real-app-shopping-list</loc>
<lastmod>2026-10-27T14:39:44.012Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/analytics-in-android-apps</loc>
<lastmod>2026-10-27T14:39:44.054Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-in-android</loc>
<lastmod>2026-10-27T14:39:43.989Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-mapping-explained</loc>
<lastmod>2026-10-27T14:39:06.143Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/higher-order-functions-and-lambdas</loc>
<lastmod>2026-10-27T14:39:43.810Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strict-types-in-php</loc>
<lastmod>2026-10-27T14:40:28.430Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deduplication-strategies</loc>
<lastmod>2026-10-27T14:38:43.347Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-flows-vs-livedata</loc>
<lastmod>2026-10-27T14:39:43.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-developer-roadmap</loc>
<lastmod>2026-10-27T14:39:43.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-when-expressions</loc>
<lastmod>2026-10-27T14:39:43.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-elasticsearch-locally</loc>
<lastmod>2026-10-27T14:39:06.177Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-cases-in-android</loc>
<lastmod>2026-10-27T14:39:43.668Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-modern-php-development-environment</loc>
<lastmod>2026-10-27T14:40:28.468Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/side-effects-in-compose</loc>
<lastmod>2026-10-27T14:39:43.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bottom-navigation-in-compose</loc>
<lastmod>2026-10-27T14:39:43.702Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/snackbars-and-dialogs-in-compose</loc>
<lastmod>2026-10-27T14:39:43.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-prometheus-grafana-and-monitoring-the-recap</loc>
<lastmod>2026-10-27T14:39:09.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-learn-swift-and-swiftui</loc>
<lastmod>2026-10-27T14:39:39.509Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modern-php-is-not-the-php-you-remember</loc>
<lastmod>2026-10-27T14:40:28.486Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dagster-and-prefect</loc>
<lastmod>2026-10-27T14:38:43.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/temperature-and-sampling</loc>
<lastmod>2026-10-27T14:40:31.702Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-widgets-with-glance</loc>
<lastmod>2026-10-27T14:39:43.598Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-oncall-and-incident-tools</loc>
<lastmod>2026-10-27T14:39:09.466Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/guardrails-for-ai-output</loc>
<lastmod>2026-10-27T14:40:31.738Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-error-handling</loc>
<lastmod>2026-10-27T14:39:39.351Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-data-pipelines</loc>
<lastmod>2026-10-27T14:38:42.989Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structs-vs-classes-in-swift</loc>
<lastmod>2026-10-27T14:39:39.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-enums-with-associated-values</loc>
<lastmod>2026-10-27T14:39:39.419Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-collections</loc>
<lastmod>2026-10-27T14:39:39.384Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-ci-cd-pipelines</loc>
<lastmod>2026-10-27T14:39:09.572Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/k-nearest-neighbors</loc>
<lastmod>2026-10-27T14:40:31.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-stacks-and-layout</loc>
<lastmod>2026-10-27T14:39:39.244Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-pii-in-pipelines</loc>
<lastmod>2026-10-27T14:38:42.803Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/actors-in-swift</loc>
<lastmod>2026-10-27T14:39:39.315Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-6-strict-concurrency</loc>
<lastmod>2026-10-27T14:39:39.298Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swiftui-tutorial-your-first-view</loc>
<lastmod>2026-10-27T14:39:39.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudwatch-to-grafana</loc>
<lastmod>2026-10-27T14:39:09.590Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/naive-bayes-for-text</loc>
<lastmod>2026-10-27T14:40:31.882Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multimodal-ai-features</loc>
<lastmod>2026-10-27T14:40:31.935Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tabview-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.124Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-sales-analytics-pipeline</loc>
<lastmod>2026-10-27T14:38:42.744Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lists-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.176Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sheets-and-alerts-in-swiftui</loc>
<lastmod>2026-10-27T14:39:39.142Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-websocket-servers</loc>
<lastmod>2026-10-27T14:39:09.623Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cost-effective-gpu-usage</loc>
<lastmod>2026-10-27T14:40:31.972Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-data-pipeline-mistakes</loc>
<lastmod>2026-10-27T14:38:42.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-tasks-in-ios</loc>
<lastmod>2026-10-27T14:39:38.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/core-data-vs-swiftdata</loc>
<lastmod>2026-10-27T14:39:38.999Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/userdefaults-and-appstorage</loc>
<lastmod>2026-10-27T14:39:38.982Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-in-swift</loc>
<lastmod>2026-10-27T14:39:38.949Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-interview-questions</loc>
<lastmod>2026-10-27T14:39:09.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-ml-mistakes-in-production</loc>
<lastmod>2026-10-27T14:40:32.036Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-testing-vs-xctest</loc>
<lastmod>2026-10-27T14:39:38.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deep-links-and-universal-links</loc>
<lastmod>2026-10-27T14:39:38.866Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-ios-apps</loc>
<lastmod>2026-10-27T14:39:38.849Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keychain-basics</loc>
<lastmod>2026-10-27T14:39:38.831Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-swift-apps</loc>
<lastmod>2026-10-27T14:39:38.796Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/status-pages</loc>
<lastmod>2026-10-27T14:39:09.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-engineering-interview-questions</loc>
<lastmod>2026-10-27T14:40:32.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-charts</loc>
<lastmod>2026-10-27T14:39:38.662Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/memory-management-in-swift</loc>
<lastmod>2026-10-27T14:39:38.730Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/instruments-for-ios-developers</loc>
<lastmod>2026-10-27T14:39:38.714Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/animations-in-swiftui</loc>
<lastmod>2026-10-27T14:39:38.697Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-shapes-and-canvas</loc>
<lastmod>2026-10-27T14:39:38.680Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-kafka</loc>
<lastmod>2026-10-27T14:39:10.092Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/asyncsequence-and-asyncstream</loc>
<lastmod>2026-10-27T14:39:38.529Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/machine-learning-interview-questions</loc>
<lastmod>2026-10-27T14:40:32.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/combine-vs-async-await</loc>
<lastmod>2026-10-27T14:39:38.545Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-bad-records</loc>
<lastmod>2026-10-27T14:38:42.408Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modularizing-an-ios-app</loc>
<lastmod>2026-10-27T14:39:38.578Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-from-jdbc-sources</loc>
<lastmod>2026-10-27T14:38:42.465Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/relabeling-in-prometheus</loc>
<lastmod>2026-10-27T14:39:10.204Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-ai-seo-assistant</loc>
<lastmod>2026-10-27T14:40:32.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-store-review-guidelines-essentials</loc>
<lastmod>2026-10-27T14:39:38.372Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/partition-overwrite-mode</loc>
<lastmod>2026-10-27T14:38:42.300Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/camera-and-photos-in-swiftui</loc>
<lastmod>2026-10-27T14:39:38.458Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/widgets-with-widgetkit</loc>
<lastmod>2026-10-27T14:39:38.440Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/live-activities</loc>
<lastmod>2026-10-27T14:39:38.406Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/controlling-cardinality</loc>
<lastmod>2026-10-27T14:39:10.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/visionos-basics-for-ios-developers</loc>
<lastmod>2026-10-27T14:39:38.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-and-python-dependencies</loc>
<lastmod>2026-10-27T14:38:42.188Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-for-ios-apps</loc>
<lastmod>2026-10-27T14:39:38.303Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-real-app-habit-tracker</loc>
<lastmod>2026-10-27T14:39:38.268Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ipad-and-mac-support</loc>
<lastmod>2026-10-27T14:39:38.250Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scaling-prometheus</loc>
<lastmod>2026-10-27T14:39:10.294Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/math-you-actually-need-for-ml</loc>
<lastmod>2026-10-27T14:40:32.131Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ios-developer-roadmap</loc>
<lastmod>2026-10-27T14:39:38.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ios-interview-questions</loc>
<lastmod>2026-10-27T14:39:38.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-swiftui-mistakes</loc>
<lastmod>2026-10-27T14:39:38.177Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-swift-mistakes</loc>
<lastmod>2026-10-27T14:39:38.159Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-on-the-server</loc>
<lastmod>2026-10-27T14:39:38.119Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/traces-with-tempo-or-jaeger</loc>
<lastmod>2026-10-27T14:39:10.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/haptics-in-ios</loc>
<lastmod>2026-10-27T14:39:37.875Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/synthetic-data-for-testing-ml</loc>
<lastmod>2026-10-27T14:40:32.191Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/active-record-basics</loc>
<lastmod>2026-10-27T14:38:34.947Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/searchable-lists-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.949Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pull-to-refresh-and-pagination</loc>
<lastmod>2026-10-27T14:39:37.932Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-and-loading-states-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.910Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/incident-investigation-with-metrics</loc>
<lastmod>2026-10-27T14:39:10.438Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-swift-swiftui-and-ios-apps-the-recap</loc>
<lastmod>2026-10-27T14:39:37.718Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validations-in-rails</loc>
<lastmod>2026-10-27T14:38:34.891Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keyboard-handling-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/app-lifecycle-in-swiftui</loc>
<lastmod>2026-10-27T14:39:37.799Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/swift-string-handling</loc>
<lastmod>2026-10-27T14:39:37.763Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-with-python</loc>
<lastmod>2026-10-27T14:39:32.243Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-an-llm-for-your-product</loc>
<lastmod>2026-10-27T14:40:32.209Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-models-locally</loc>
<lastmod>2026-10-27T14:40:32.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-vs-cypress</loc>
<lastmod>2026-10-27T14:39:33.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/chaining-and-filtering-locators</loc>
<lastmod>2026-10-27T14:39:33.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auto-waiting-in-playwright</loc>
<lastmod>2026-10-27T14:39:33.215Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wait-for-api-response-in-playwright</loc>
<lastmod>2026-10-27T14:39:33.067Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-authentication-setup</loc>
<lastmod>2026-10-27T14:39:33.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/computer-vision-use-cases-for-apps</loc>
<lastmod>2026-10-27T14:40:32.246Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bias-and-fairness-in-ml</loc>
<lastmod>2026-10-27T14:40:32.359Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-fixtures</loc>
<lastmod>2026-10-27T14:39:33.141Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/page-object-model-with-playwright</loc>
<lastmod>2026-10-27T14:39:33.122Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slos-explained</loc>
<lastmod>2026-10-27T14:39:10.492Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/model-monitoring-in-production</loc>
<lastmod>2026-10-27T14:40:32.489Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-in-github-actions</loc>
<lastmod>2026-10-27T14:39:32.935Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-testing-with-playwright</loc>
<lastmod>2026-10-27T14:39:33.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-tests-in-parallel</loc>
<lastmod>2026-10-27T14:39:32.971Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sharding-playwright-tests-in-ci</loc>
<lastmod>2026-10-27T14:39:32.952Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/blackbox-exporter-for-uptime-checks</loc>
<lastmod>2026-10-27T14:39:10.583Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/visual-regression-testing</loc>
<lastmod>2026-10-27T14:39:32.813Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ui-mode-for-fast-feedback</loc>
<lastmod>2026-10-27T14:39:32.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-with-the-playwright-inspector</loc>
<lastmod>2026-10-27T14:39:32.881Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retries-use-carefully</loc>
<lastmod>2026-10-27T14:39:32.847Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/timeouts-in-playwright</loc>
<lastmod>2026-10-27T14:39:32.830Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-redis</loc>
<lastmod>2026-10-27T14:39:10.621Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-authentication-flows</loc>
<lastmod>2026-10-27T14:39:32.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-dialogs-and-popups</loc>
<lastmod>2026-10-27T14:39:32.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/media-playback-with-media3</loc>
<lastmod>2026-10-27T14:39:43.581Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mobile-emulation</loc>
<lastmod>2026-10-27T14:39:32.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-file-uploads-and-downloads</loc>
<lastmod>2026-10-27T14:39:32.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-iframes</loc>
<lastmod>2026-10-27T14:39:32.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-postgresql</loc>
<lastmod>2026-10-27T14:39:10.638Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-angular-and-vue-apps</loc>
<lastmod>2026-10-27T14:39:32.568Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-react-apps-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.586Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/performance-checks-in-playwright</loc>
<lastmod>2026-10-27T14:39:32.622Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-rails</loc>
<lastmod>2026-10-27T14:38:34.473Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/active-storage</loc>
<lastmod>2026-10-27T14:38:34.507Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/node-exporter</loc>
<lastmod>2026-10-27T14:39:10.657Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-e-commerce-checkout</loc>
<lastmod>2026-10-27T14:39:32.411Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/factorybot-for-test-data</loc>
<lastmod>2026-10-27T14:38:34.367Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-configuration</loc>
<lastmod>2026-10-27T14:39:32.485Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/smoke-tests-in-production</loc>
<lastmod>2026-10-27T14:39:32.449Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/synthetic-monitoring-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.430Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitor-node-js-with-prometheus</loc>
<lastmod>2026-10-27T14:39:10.743Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/browser-contexts-explained</loc>
<lastmod>2026-10-27T14:39:32.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-downloads-of-reports-and-pdfs</loc>
<lastmod>2026-10-27T14:39:32.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-security-checklist</loc>
<lastmod>2026-10-27T14:38:34.295Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/splash-screens-on-android-12</loc>
<lastmod>2026-10-27T14:39:43.615Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-localization</loc>
<lastmod>2026-10-27T14:39:32.336Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-time-dependent-features</loc>
<lastmod>2026-10-27T14:39:32.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-four-golden-signals</loc>
<lastmod>2026-10-27T14:39:10.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-studio-productivity-tips</loc>
<lastmod>2026-10-27T14:39:43.650Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/contract-between-frontend-and-e2e-tests</loc>
<lastmod>2026-10-27T14:39:32.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/screenshots-for-documentation</loc>
<lastmod>2026-10-27T14:39:32.170Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/web-scraping-with-playwright-responsibly</loc>
<lastmod>2026-10-27T14:39:32.152Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-error-pages</loc>
<lastmod>2026-10-27T14:39:32.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-seo-basics-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dashboards-as-code</loc>
<lastmod>2026-10-27T14:39:10.816Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/repository-pattern-on-android</loc>
<lastmod>2026-10-27T14:39:43.685Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-interview-questions</loc>
<lastmod>2026-10-27T14:39:31.905Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exception-handling-in-coroutines</loc>
<lastmod>2026-10-27T14:39:43.756Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/headless-vs-headed-mode</loc>
<lastmod>2026-10-27T14:39:31.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-playwright</loc>
<lastmod>2026-10-27T14:39:31.941Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/using-playwright-with-ai-tools</loc>
<lastmod>2026-10-27T14:39:31.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-dashboard-tutorial</loc>
<lastmod>2026-10-27T14:39:10.871Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-dropdowns-and-comboboxes</loc>
<lastmod>2026-10-27T14:39:31.763Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenant-saas-with-rails</loc>
<lastmod>2026-10-27T14:38:33.992Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-roadmap</loc>
<lastmod>2026-10-27T14:39:31.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/qa-automation-career-tips</loc>
<lastmod>2026-10-27T14:39:31.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/locator-strict-mode-explained</loc>
<lastmod>2026-10-27T14:39:31.799Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-alerting-rules</loc>
<lastmod>2026-10-27T14:39:10.941Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lifecycle-rules</loc>
<lastmod>2026-10-27T14:39:54.820Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-browser-storage-and-caching</loc>
<lastmod>2026-10-27T14:39:31.619Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/parameterized-tests</loc>
<lastmod>2026-10-27T14:39:31.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-keyboard-navigation</loc>
<lastmod>2026-10-27T14:39:31.691Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-drag-and-drop</loc>
<lastmod>2026-10-27T14:39:31.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-with-a-real-backend-vs-mocks</loc>
<lastmod>2026-10-27T14:39:31.636Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-membership-site</loc>
<lastmod>2026-10-27T14:39:27.453Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-generics</loc>
<lastmod>2026-10-27T14:39:43.792Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-file-structure-explained</loc>
<lastmod>2026-10-27T14:39:28.667Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-from-xml-views-to-compose</loc>
<lastmod>2026-10-27T14:39:43.901Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-readable-test-names</loc>
<lastmod>2026-10-27T14:39:31.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-development-in-2026</loc>
<lastmod>2026-10-27T14:39:28.704Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/promql-examples-you-will-use-daily</loc>
<lastmod>2026-10-27T14:39:11.061Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-taxonomies</loc>
<lastmod>2026-10-27T14:39:28.560Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-interview-questions</loc>
<lastmod>2026-10-27T14:39:43.936Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/plugin-architecture-that-scales</loc>
<lastmod>2026-10-27T14:39:28.595Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-ruby-mistakes</loc>
<lastmod>2026-10-27T14:38:33.558Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-and-react</loc>
<lastmod>2026-10-27T14:38:33.597Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/naming-metrics-well</loc>
<lastmod>2026-10-27T14:39:11.081Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-interview-questions</loc>
<lastmod>2026-10-27T14:39:43.953Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-rest-api-endpoints</loc>
<lastmod>2026-10-27T14:39:28.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transients-api</loc>
<lastmod>2026-10-27T14:39:28.435Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/callbacks-use-with-care</loc>
<lastmod>2026-10-27T14:38:33.405Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-options-api</loc>
<lastmod>2026-10-27T14:39:28.471Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enumerable-methods-in-ruby</loc>
<lastmod>2026-10-27T14:38:33.443Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-metric-types</loc>
<lastmod>2026-10-27T14:39:11.122Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/in-app-updates-and-reviews</loc>
<lastmod>2026-10-27T14:39:44.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/block-themes-and-full-site-editing</loc>
<lastmod>2026-10-27T14:39:28.256Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-current-user-patterns</loc>
<lastmod>2026-10-27T14:38:33.266Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/block-attributes-and-controls</loc>
<lastmod>2026-10-27T14:39:28.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/block-patterns</loc>
<lastmod>2026-10-27T14:39:28.295Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-interactivity-api</loc>
<lastmod>2026-10-27T14:39:28.276Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-architecture-explained</loc>
<lastmod>2026-10-27T14:39:11.161Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-for-android</loc>
<lastmod>2026-10-27T14:39:44.072Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-encrypted-attributes</loc>
<lastmod>2026-10-27T14:38:33.203Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/preventing-sql-injection-in-wordpress</loc>
<lastmod>2026-10-27T14:39:28.109Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-template-hierarchy</loc>
<lastmod>2026-10-27T14:39:28.183Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enqueueing-scripts-and-styles</loc>
<lastmod>2026-10-27T14:39:28.164Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nonces-in-wordpress</loc>
<lastmod>2026-10-27T14:39:28.129Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mailer-testing-and-previews</loc>
<lastmod>2026-10-27T14:38:33.246Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crash-reporting-with-crashlytics</loc>
<lastmod>2026-10-27T14:39:44.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-time-zones</loc>
<lastmod>2026-10-27T14:38:33.306Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wp-cron-explained</loc>
<lastmod>2026-10-27T14:39:27.934Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/core-web-vitals-for-wordpress</loc>
<lastmod>2026-10-27T14:39:28.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/object-caching-with-redis</loc>
<lastmod>2026-10-27T14:39:28.006Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-wordpress</loc>
<lastmod>2026-10-27T14:39:27.968Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-choose-rails</loc>
<lastmod>2026-10-27T14:38:33.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/staged-rollouts-on-google-play</loc>
<lastmod>2026-10-27T14:39:44.115Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-rails-mistakes</loc>
<lastmod>2026-10-27T14:38:33.577Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-shipping-methods</loc>
<lastmod>2026-10-27T14:39:27.805Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ajax-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-product-types</loc>
<lastmod>2026-10-27T14:39:27.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-payment-gateways</loc>
<lastmod>2026-10-27T14:39:27.826Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-in-rails-apps</loc>
<lastmod>2026-10-27T14:38:33.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compose-multiplatform</loc>
<lastmod>2026-10-27T14:39:44.248Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-saas-with-rails-8</loc>
<lastmod>2026-10-27T14:38:33.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bedrock-and-modern-wordpress-stacks</loc>
<lastmod>2026-10-27T14:39:27.629Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.716Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-wordpress-themes</loc>
<lastmod>2026-10-27T14:39:27.699Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/staging-environments-for-wordpress</loc>
<lastmod>2026-10-27T14:39:27.665Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-vs-laravel-vs-django</loc>
<lastmod>2026-10-27T14:38:33.765Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-multiplatform</loc>
<lastmod>2026-10-27T14:39:44.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ruby-performance-improvements</loc>
<lastmod>2026-10-27T14:38:33.822Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/publishing-to-the-plugin-directory</loc>
<lastmod>2026-10-27T14:39:27.488Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/offloading-media-to-s3</loc>
<lastmod>2026-10-27T14:39:27.576Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backups-for-wordpress</loc>
<lastmod>2026-10-27T14:39:27.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-secure-ajax-and-rest-handlers</loc>
<lastmod>2026-10-27T14:39:27.523Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-upgrades</loc>
<lastmod>2026-10-27T14:38:33.840Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-on-android</loc>
<lastmod>2026-10-27T14:39:44.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-in-rails</loc>
<lastmod>2026-10-27T14:38:33.931Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/comments-spam-and-performance</loc>
<lastmod>2026-10-27T14:39:27.369Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-for-wordpress-developers</loc>
<lastmod>2026-10-27T14:39:27.419Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/image-optimization-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.386Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/import-maps-in-rails</loc>
<lastmod>2026-10-27T14:38:34.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-monitoring-matters</loc>
<lastmod>2026-10-27T14:39:11.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/r8-and-proguard</loc>
<lastmod>2026-10-27T14:39:44.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-wordpress-errors-and-fixes</loc>
<lastmod>2026-10-27T14:39:27.209Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-app-security</loc>
<lastmod>2026-10-27T14:39:44.406Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-multilingual-sites</loc>
<lastmod>2026-10-27T14:39:27.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-interview-questions</loc>
<lastmod>2026-10-27T14:39:27.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-on-aws</loc>
<lastmod>2026-10-27T14:38:34.098Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/memory-leaks-in-android</loc>
<lastmod>2026-10-27T14:39:44.422Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/uninstall-hooks-and-cleanup</loc>
<lastmod>2026-10-27T14:39:27.060Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-wordpress-loop-explained</loc>
<lastmod>2026-10-27T14:39:27.154Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shortcodes-still-useful</loc>
<lastmod>2026-10-27T14:39:27.135Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/menus-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rewrite-rules-and-permalinks</loc>
<lastmod>2026-10-27T14:39:27.079Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logging-in-wordpress-plugins</loc>
<lastmod>2026-10-27T14:39:26.920Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-on-aws</loc>
<lastmod>2026-10-27T14:38:43.125Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/front-end-forms-with-the-rest-api</loc>
<lastmod>2026-10-27T14:39:26.958Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/block-variations-and-styles</loc>
<lastmod>2026-10-27T14:39:26.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/selling-premium-plugins</loc>
<lastmod>2026-10-27T14:39:27.472Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/coding-with-the-block-editor-data-api</loc>
<lastmod>2026-10-27T14:39:26.999Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-rails-with-kamal</loc>
<lastmod>2026-10-27T14:38:34.162Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/counter-caches</loc>
<lastmod>2026-10-27T14:38:34.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-app-performance</loc>
<lastmod>2026-10-27T14:39:44.474Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/screenshot-testing-in-compose</loc>
<lastmod>2026-10-27T14:39:44.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-objects-in-rails</loc>
<lastmod>2026-10-27T14:38:34.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-engineering-is-its-own-discipline</loc>
<lastmod>2026-10-27T14:39:23.353Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-authorization-vs-capture</loc>
<lastmod>2026-10-27T14:39:23.317Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rspec-vs-minitest</loc>
<lastmod>2026-10-27T14:38:34.404Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-coroutines-and-flows</loc>
<lastmod>2026-10-27T14:39:44.507Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-android-apps</loc>
<lastmod>2026-10-27T14:39:44.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sidekiq-for-high-volume-jobs</loc>
<lastmod>2026-10-27T14:38:34.562Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/checkout-vs-payment-element</loc>
<lastmod>2026-10-27T14:39:23.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-webhook-signature-verification</loc>
<lastmod>2026-10-27T14:39:23.189Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-jobs-with-active-job</loc>
<lastmod>2026-10-27T14:38:34.602Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deep-links-and-app-links</loc>
<lastmod>2026-10-27T14:39:44.587Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/push-notifications-with-firebase</loc>
<lastmod>2026-10-27T14:39:44.605Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/subscription-billing-integration</loc>
<lastmod>2026-10-27T14:39:23.011Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/storing-money-correctly</loc>
<lastmod>2026-10-27T14:39:23.048Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modeling-payments-in-your-database</loc>
<lastmod>2026-10-27T14:39:23.066Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-apis-with-rails</loc>
<lastmod>2026-10-27T14:38:34.657Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/turbo-streams-for-live-updates</loc>
<lastmod>2026-10-27T14:38:34.749Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-configuration-changes</loc>
<lastmod>2026-10-27T14:39:44.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/3d-secure-and-sca</loc>
<lastmod>2026-10-27T14:39:22.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/usage-based-billing</loc>
<lastmod>2026-10-27T14:39:22.902Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/customer-portal</loc>
<lastmod>2026-10-27T14:39:22.921Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hotwire-explained</loc>
<lastmod>2026-10-27T14:38:34.785Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-and-validation-in-compose</loc>
<lastmod>2026-10-27T14:39:44.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-fees-and-reporting</loc>
<lastmod>2026-10-27T14:39:22.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/paging-3-with-compose</loc>
<lastmod>2026-10-27T14:39:44.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-reconciliation</loc>
<lastmod>2026-10-27T14:39:22.772Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payouts-explained</loc>
<lastmod>2026-10-27T14:39:22.755Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/active-record-associations</loc>
<lastmod>2026-10-27T14:38:34.929Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/datastore-for-preferences</loc>
<lastmod>2026-10-27T14:39:44.762Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/invoices-with-stripe</loc>
<lastmod>2026-10-27T14:39:22.616Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/offline-first-android-apps</loc>
<lastmod>2026-10-27T14:39:44.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-currency-payments</loc>
<lastmod>2026-10-27T14:39:22.650Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/taxes-in-online-payments</loc>
<lastmod>2026-10-27T14:39:22.633Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mvc-in-rails</loc>
<lastmod>2026-10-27T14:38:35.021Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retrofit-tutorial</loc>
<lastmod>2026-10-27T14:39:44.849Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ui-state-modeling</loc>
<lastmod>2026-10-27T14:39:44.902Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-retries-and-timeouts</loc>
<lastmod>2026-10-27T14:39:22.497Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fraud-prevention-with-stripe-radar</loc>
<lastmod>2026-10-27T14:39:22.531Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/card-testing-attacks</loc>
<lastmod>2026-10-27T14:39:22.548Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-rails-project</loc>
<lastmod>2026-10-27T14:38:35.082Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/viewmodel-best-practices</loc>
<lastmod>2026-10-27T14:39:44.919Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/android-mvvm-architecture</loc>
<lastmod>2026-10-27T14:39:44.935Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-with-laravel-and-python</loc>
<lastmod>2026-10-27T14:39:22.377Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-with-nestjs</loc>
<lastmod>2026-10-27T14:39:22.411Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-checkout-with-next-js-and-stripe</loc>
<lastmod>2026-10-27T14:39:22.428Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streaming-state-management</loc>
<lastmod>2026-10-27T14:38:42.151Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/columnar-pruning-and-predicate-pushdown</loc>
<lastmod>2026-10-27T14:38:42.265Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-in-jetpack-compose</loc>
<lastmod>2026-10-27T14:39:45.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-dataframe-caching-pitfalls</loc>
<lastmod>2026-10-27T14:38:42.368Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/split-payments-and-payouts</loc>
<lastmod>2026-10-27T14:39:22.240Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/event-replay-and-recovery</loc>
<lastmod>2026-10-27T14:39:22.291Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gift-cards-and-store-credit</loc>
<lastmod>2026-10-27T14:39:22.256Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/z-ordering-and-data-skipping</loc>
<lastmod>2026-10-27T14:38:42.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jetpack-compose-basics</loc>
<lastmod>2026-10-27T14:39:45.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/withcontext-and-dispatchers</loc>
<lastmod>2026-10-27T14:39:45.308Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-currencies-and-fx</loc>
<lastmod>2026-10-27T14:39:22.150Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/free-plans-and-limits</loc>
<lastmod>2026-10-27T14:39:22.168Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-provider-abstraction</loc>
<lastmod>2026-10-27T14:39:22.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-vs-paypal-vs-adyen</loc>
<lastmod>2026-10-27T14:39:22.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-allocation</loc>
<lastmod>2026-10-27T14:38:42.539Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/coroutine-scopes-on-android</loc>
<lastmod>2026-10-27T14:39:45.327Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-engineering-interview-questions</loc>
<lastmod>2026-10-27T14:38:42.636Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-privacy-in-payments</loc>
<lastmod>2026-10-27T14:39:21.998Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-payment-emails</loc>
<lastmod>2026-10-27T14:39:22.021Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/black-friday-readiness-for-payments</loc>
<lastmod>2026-10-27T14:39:21.963Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-clickstream-pipeline</loc>
<lastmod>2026-10-27T14:38:42.763Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/schema-evolution</loc>
<lastmod>2026-10-27T14:38:42.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-coroutines-tutorial</loc>
<lastmod>2026-10-27T14:39:45.353Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deposits-and-partial-payments</loc>
<lastmod>2026-10-27T14:39:21.797Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/receipts-and-invoice-numbering</loc>
<lastmod>2026-10-27T14:39:21.831Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lessons-from-real-payment-bugs</loc>
<lastmod>2026-10-27T14:39:21.866Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-mllib-basics</loc>
<lastmod>2026-10-27T14:38:42.910Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-null-safety</loc>
<lastmod>2026-10-27T14:39:45.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aws-glue-basics</loc>
<lastmod>2026-10-27T14:38:43.108Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-payment-webhooks-at-scale</loc>
<lastmod>2026-10-27T14:39:21.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sandbox-environments-for-payments</loc>
<lastmod>2026-10-27T14:39:21.707Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/secret-key-management-for-payments</loc>
<lastmod>2026-10-27T14:39:21.689Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cancellation-flows-for-subscriptions</loc>
<lastmod>2026-10-27T14:39:21.672Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dbt-for-transformations</loc>
<lastmod>2026-10-27T14:38:43.182Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kotlin-basics-for-android</loc>
<lastmod>2026-10-27T14:39:45.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-an-ai-chat-feature</loc>
<lastmod>2026-10-27T14:40:32.708Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-choose-vue-js</loc>
<lastmod>2026-10-27T14:39:17.107Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-ux-best-practices</loc>
<lastmod>2026-10-27T14:39:21.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/compliance-basics-for-payment-engineers</loc>
<lastmod>2026-10-27T14:39:21.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-checkout</loc>
<lastmod>2026-10-27T14:39:21.601Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/joins-in-spark</loc>
<lastmod>2026-10-27T14:38:43.257Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-android-studio</loc>
<lastmod>2026-10-27T14:39:45.517Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/window-functions-in-spark</loc>
<lastmod>2026-10-27T14:38:43.330Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composition-api-vs-options-api</loc>
<lastmod>2026-10-27T14:39:17.033Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/single-file-components-explained</loc>
<lastmod>2026-10-27T14:39:17.069Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/computed-vs-watch</loc>
<lastmod>2026-10-27T14:39:16.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-structured-streaming</loc>
<lastmod>2026-10-27T14:38:43.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-secrets-vs-repository-secrets</loc>
<lastmod>2026-10-27T14:39:48.350Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pinia-state-management</loc>
<lastmod>2026-10-27T14:39:16.859Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slots-in-vue</loc>
<lastmod>2026-10-27T14:39:16.944Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/provide-and-inject</loc>
<lastmod>2026-10-27T14:39:16.927Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lifecycle-hooks-in-vue-3</loc>
<lastmod>2026-10-27T14:39:16.892Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-refs</loc>
<lastmod>2026-10-27T14:39:16.875Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/incremental-processing</loc>
<lastmod>2026-10-27T14:38:43.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/merge-queues</loc>
<lastmod>2026-10-27T14:39:48.368Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typescript-with-vue</loc>
<lastmod>2026-10-27T14:39:16.703Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/navigation-guards</loc>
<lastmod>2026-10-27T14:39:16.788Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typed-routes</loc>
<lastmod>2026-10-27T14:39:16.772Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fetching-data-in-vue</loc>
<lastmod>2026-10-27T14:39:16.737Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tanstack-query-with-vue</loc>
<lastmod>2026-10-27T14:39:16.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/delta-lake-basics</loc>
<lastmod>2026-10-27T14:38:43.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/medallion-architecture</loc>
<lastmod>2026-10-27T14:38:43.566Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-tags-in-depth</loc>
<lastmod>2026-10-27T14:39:48.474Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tracking-upstream-changes-in-a-fork</loc>
<lastmod>2026-10-27T14:39:48.492Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-performance-tips</loc>
<lastmod>2026-10-27T14:39:16.602Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-vue-components-with-vitest</loc>
<lastmod>2026-10-27T14:39:16.634Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/end-to-end-testing-vue-apps</loc>
<lastmod>2026-10-27T14:39:16.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/etl-pipeline-design</loc>
<lastmod>2026-10-27T14:38:43.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-switch-c-vs-git-checkout-b</loc>
<lastmod>2026-10-27T14:39:48.510Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-and-persistence</loc>
<lastmod>2026-10-27T14:38:43.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fetch-vs-usefetch</loc>
<lastmod>2026-10-27T14:39:16.483Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-fetching-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.499Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-layouts-and-middleware</loc>
<lastmod>2026-10-27T14:39:16.449Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-performance-tuning</loc>
<lastmod>2026-10-27T14:38:43.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shuffles-explained</loc>
<lastmod>2026-10-27T14:38:43.759Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-interview-questions</loc>
<lastmod>2026-10-27T14:39:48.617Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-content</loc>
<lastmod>2026-10-27T14:39:16.312Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-for-non-code-projects</loc>
<lastmod>2026-10-27T14:39:48.637Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hybrid-rendering-with-routerules</loc>
<lastmod>2026-10-27T14:39:16.364Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/partitioning-data-on-disk</loc>
<lastmod>2026-10-27T14:38:43.794Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/charts-in-vue</loc>
<lastmod>2026-10-27T14:39:16.157Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/using-git-for-documentation</loc>
<lastmod>2026-10-27T14:39:48.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-vs-gitlab-vs-bitbucket</loc>
<lastmod>2026-10-27T14:39:48.707Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-on-aws</loc>
<lastmod>2026-10-27T14:39:16.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-blog-with-nuxt</loc>
<lastmod>2026-10-27T14:39:16.192Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-and-writing-data</loc>
<lastmod>2026-10-27T14:38:43.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-layers</loc>
<lastmod>2026-10-27T14:39:15.479Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-clean</loc>
<lastmod>2026-10-27T14:39:48.776Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/detached-head-explained</loc>
<lastmod>2026-10-27T14:39:48.793Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-with-a-dotnet-or-nestjs-backend</loc>
<lastmod>2026-10-27T14:39:16.031Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/recovering-from-git-disasters</loc>
<lastmod>2026-10-27T14:39:48.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-teleport-for-modals-and-toasts</loc>
<lastmod>2026-10-27T14:39:16.084Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-sql</loc>
<lastmod>2026-10-27T14:38:43.899Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rdds-vs-dataframes-vs-datasets</loc>
<lastmod>2026-10-27T14:38:43.968Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-output-from-llms</loc>
<lastmod>2026-10-27T14:40:32.743Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-features-in-vue</loc>
<lastmod>2026-10-27T14:39:15.918Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vite-configuration-for-vue</loc>
<lastmod>2026-10-27T14:39:15.971Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-and-web-components</loc>
<lastmod>2026-10-27T14:39:15.953Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pwa-with-vue-and-nuxt</loc>
<lastmod>2026-10-27T14:39:15.936Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-architecture-explained</loc>
<lastmod>2026-10-27T14:38:44.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clustering-with-k-means</loc>
<lastmod>2026-10-27T14:40:33.075Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/databricks-basics</loc>
<lastmod>2026-10-27T14:38:43.090Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-nuxt-mistakes</loc>
<lastmod>2026-10-27T14:39:15.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-vue-mistakes</loc>
<lastmod>2026-10-27T14:39:15.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-on-kubernetes</loc>
<lastmod>2026-10-27T14:38:43.072Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-spark-pipelines</loc>
<lastmod>2026-10-27T14:38:43.051Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/what-apache-spark-is</loc>
<lastmod>2026-10-27T14:38:44.025Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-for-teams-conventions-that-work</loc>
<lastmod>2026-10-27T14:39:48.861Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keepalive-in-vue</loc>
<lastmod>2026-10-27T14:39:15.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/list-rendering-with-v-for</loc>
<lastmod>2026-10-27T14:39:15.760Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/event-handling-in-vue</loc>
<lastmod>2026-10-27T14:39:15.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-components</loc>
<lastmod>2026-10-27T14:39:15.709Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-components</loc>
<lastmod>2026-10-27T14:39:15.691Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-rust-programming-the-recap</loc>
<lastmod>2026-10-27T14:38:51.272Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/large-refactors-with-git</loc>
<lastmod>2026-10-27T14:39:48.912Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-in-vs-code</loc>
<lastmod>2026-10-27T14:39:48.930Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/oncelock-and-lazylock</loc>
<lastmod>2026-10-27T14:38:51.318Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-nuxt-server-routes</loc>
<lastmod>2026-10-27T14:39:15.514Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-plugins</loc>
<lastmod>2026-10-27T14:39:15.584Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-devtools</loc>
<lastmod>2026-10-27T14:39:15.550Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sorting-and-searching-in-rust</loc>
<lastmod>2026-10-27T14:38:51.397Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-aliases-that-save-time</loc>
<lastmod>2026-10-27T14:39:48.946Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/type-conversions-in-rust</loc>
<lastmod>2026-10-27T14:38:51.530Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/storybook-and-histoire-for-vue</loc>
<lastmod>2026-10-27T14:39:15.356Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-3-5-and-newer-features</loc>
<lastmod>2026-10-27T14:39:15.443Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-router-data-loading</loc>
<lastmod>2026-10-27T14:39:15.407Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-design-system-in-vue</loc>
<lastmod>2026-10-27T14:39:15.373Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-choose-rust</loc>
<lastmod>2026-10-27T14:38:51.585Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-cli</loc>
<lastmod>2026-10-27T14:39:48.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-projects-for-planning</loc>
<lastmod>2026-10-27T14:39:48.979Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/metrics-logs-and-traces</loc>
<lastmod>2026-10-27T14:39:11.181Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-prometheus-with-docker</loc>
<lastmod>2026-10-27T14:39:11.141Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/labels-and-cardinality</loc>
<lastmod>2026-10-27T14:39:11.100Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/learning-the-borrow-checker</loc>
<lastmod>2026-10-27T14:38:51.749Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/contributing-to-open-source</loc>
<lastmod>2026-10-27T14:39:49.068Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-for-systems-programming</loc>
<lastmod>2026-10-27T14:38:51.874Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vector-matching-in-promql</loc>
<lastmod>2026-10-27T14:39:10.977Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-vs-irate-vs-increase</loc>
<lastmod>2026-10-27T14:39:11.041Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aggregation-operators-in-promql</loc>
<lastmod>2026-10-27T14:39:11.022Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-in-ci</loc>
<lastmod>2026-10-27T14:38:51.965Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-submodules-use-with-care</loc>
<lastmod>2026-10-27T14:39:49.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-rust-apis</loc>
<lastmod>2026-10-27T14:38:52.044Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-variables</loc>
<lastmod>2026-10-27T14:39:10.835Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/alert-fatigue-how-to-fix-it</loc>
<lastmod>2026-10-27T14:39:10.907Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/silences-and-maintenance-windows</loc>
<lastmod>2026-10-27T14:39:10.889Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-dashboards-people-use</loc>
<lastmod>2026-10-27T14:39:10.853Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-for-backend-services</loc>
<lastmod>2026-10-27T14:38:52.121Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sparse-checkout-and-partial-clone</loc>
<lastmod>2026-10-27T14:39:49.121Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/memory-layout-and-performance</loc>
<lastmod>2026-10-27T14:38:52.183Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-python-apps</loc>
<lastmod>2026-10-27T14:39:10.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/red-and-use-methods</loc>
<lastmod>2026-10-27T14:39:10.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-dotnet-apps</loc>
<lastmod>2026-10-27T14:39:10.726Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-spring-boot-and-go</loc>
<lastmod>2026-10-27T14:39:10.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ffi-calling-c-from-rust</loc>
<lastmod>2026-10-27T14:38:52.236Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-and-webassembly</loc>
<lastmod>2026-10-27T14:38:52.309Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monorepos-with-git</loc>
<lastmod>2026-10-27T14:39:49.137Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-in-rust</loc>
<lastmod>2026-10-27T14:38:52.453Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-kubernetes-workloads</loc>
<lastmod>2026-10-27T14:39:10.510Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-ssl-certificate-expiry</loc>
<lastmod>2026-10-27T14:39:10.564Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-operator</loc>
<lastmod>2026-10-27T14:39:10.528Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tower-middleware</loc>
<lastmod>2026-10-27T14:38:52.570Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/removing-secrets-from-git-history</loc>
<lastmod>2026-10-27T14:39:49.219Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logs-with-loki</loc>
<lastmod>2026-10-27T14:39:10.366Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-good-slis</loc>
<lastmod>2026-10-27T14:39:10.457Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deployment-annotations</loc>
<lastmod>2026-10-27T14:39:10.419Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exemplars</loc>
<lastmod>2026-10-27T14:39:10.402Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/opentelemetry-and-prometheus</loc>
<lastmod>2026-10-27T14:39:10.384Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/smart-pointers</loc>
<lastmod>2026-10-27T14:38:52.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/release-branches</loc>
<lastmod>2026-10-27T14:39:49.276Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/collections-in-rust</loc>
<lastmod>2026-10-27T14:38:52.797Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-error-handling-with-result</loc>
<lastmod>2026-10-27T14:38:52.906Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-vs-datadog</loc>
<lastmod>2026-10-27T14:39:10.313Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/thanos-and-mimir</loc>
<lastmod>2026-10-27T14:39:10.277Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managed-prometheus-on-aws</loc>
<lastmod>2026-10-27T14:39:10.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/business-metrics-in-prometheus</loc>
<lastmod>2026-10-27T14:39:10.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/axum-extractors</loc>
<lastmod>2026-10-27T14:38:52.626Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-message-queues</loc>
<lastmod>2026-10-27T14:39:10.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-cron-jobs-and-batch-work</loc>
<lastmod>2026-10-27T14:39:10.129Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-vue-js-and-nuxt-the-recap</loc>
<lastmod>2026-10-27T14:39:15.339Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scroll-behavior-in-vue-router</loc>
<lastmod>2026-10-27T14:39:15.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pushgateway-when-to-use-it</loc>
<lastmod>2026-10-27T14:39:10.147Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enums-and-pattern-matching</loc>
<lastmod>2026-10-27T14:38:52.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/release-tags-and-versioning</loc>
<lastmod>2026-10-27T14:39:49.310Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-a-saas-application</loc>
<lastmod>2026-10-27T14:39:09.918Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/disk-space-alerts-with-predict-linear</loc>
<lastmod>2026-10-27T14:39:10.028Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-frontend-performance</loc>
<lastmod>2026-10-27T14:39:09.997Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/on-call-basics</loc>
<lastmod>2026-10-27T14:39:09.975Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-runbooks</loc>
<lastmod>2026-10-27T14:39:09.955Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/borrowing-and-references</loc>
<lastmod>2026-10-27T14:38:53.016Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-in-python</loc>
<lastmod>2026-10-27T14:40:39.536Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-ownership-explained</loc>
<lastmod>2026-10-27T14:38:53.033Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-prometheus-mistakes</loc>
<lastmod>2026-10-27T14:39:09.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-costs</loc>
<lastmod>2026-10-27T14:39:09.867Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-alerts</loc>
<lastmod>2026-10-27T14:39:09.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/promtool</loc>
<lastmod>2026-10-27T14:39:09.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-rust</loc>
<lastmod>2026-10-27T14:38:53.086Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-serverless-functions</loc>
<lastmod>2026-10-27T14:39:09.606Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-background-workers</loc>
<lastmod>2026-10-27T14:39:09.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vapor-mode-explained</loc>
<lastmod>2026-10-27T14:39:15.425Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/instrumenting-with-opentelemetry-metrics</loc>
<lastmod>2026-10-27T14:39:09.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-apis-by-route</loc>
<lastmod>2026-10-27T14:39:09.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-third-party-dependencies</loc>
<lastmod>2026-10-27T14:39:09.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-svelte-and-sveltekit-the-recap</loc>
<lastmod>2026-10-27T14:38:57.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-with-github-actions</loc>
<lastmod>2026-10-27T14:39:49.344Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/alert-routing-by-team</loc>
<lastmod>2026-10-27T14:39:09.484Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dora-metrics</loc>
<lastmod>2026-10-27T14:39:09.555Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/heatmaps-in-grafana</loc>
<lastmod>2026-10-27T14:39:09.538Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-annotations-and-links</loc>
<lastmod>2026-10-27T14:39:09.520Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/uptime-slas-vs-slos</loc>
<lastmod>2026-10-27T14:39:09.502Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-and-tailwind-css</loc>
<lastmod>2026-10-27T14:38:57.553Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reusable-github-actions-workflows</loc>
<lastmod>2026-10-27T14:39:49.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-class-and-style-directives</loc>
<lastmod>2026-10-27T14:38:57.570Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/codeowners</loc>
<lastmod>2026-10-27T14:39:49.410Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-elasticsearch-for-search</loc>
<lastmod>2026-10-27T14:39:06.212Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/metrics-for-capacity-planning</loc>
<lastmod>2026-10-27T14:39:09.377Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-alloy</loc>
<lastmod>2026-10-27T14:39:09.413Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/form-inputs-and-bind-group</loc>
<lastmod>2026-10-27T14:38:57.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/branch-protection-rules</loc>
<lastmod>2026-10-27T14:39:49.427Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/code-review-on-github</loc>
<lastmod>2026-10-27T14:39:49.461Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/drf-serializers-in-depth</loc>
<lastmod>2026-10-27T14:40:40.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-the-inverted-index-works</loc>
<lastmod>2026-10-27T14:39:06.161Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/text-vs-keyword-fields</loc>
<lastmod>2026-10-27T14:39:06.126Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-mapping-pitfalls</loc>
<lastmod>2026-10-27T14:39:06.101Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-match-queries</loc>
<lastmod>2026-10-27T14:39:05.931Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-nuxt-apps</loc>
<lastmod>2026-10-27T14:39:15.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bulk-indexing-best-practices</loc>
<lastmod>2026-10-27T14:39:06.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-checklist-for-vue-spas</loc>
<lastmod>2026-10-27T14:39:15.461Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bool-queries</loc>
<lastmod>2026-10-27T14:39:05.966Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nitro-storage-layer</loc>
<lastmod>2026-10-27T14:39:15.496Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/query-vs-filter-context</loc>
<lastmod>2026-10-27T14:39:05.948Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/special-elements-in-svelte</loc>
<lastmod>2026-10-27T14:38:57.822Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/github-pull-request-workflow</loc>
<lastmod>2026-10-27T14:39:49.494Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aggregations-explained</loc>
<lastmod>2026-10-27T14:39:05.812Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-diff-tips</loc>
<lastmod>2026-10-27T14:39:49.561Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/autocomplete-with-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.845Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/synonyms-in-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.879Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/await-blocks</loc>
<lastmod>2026-10-27T14:38:57.840Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/parent-child-relationships</loc>
<lastmod>2026-10-27T14:39:05.689Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-cherry-pick-explained</loc>
<lastmod>2026-10-27T14:39:49.670Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-reflog-recover-lost-commits</loc>
<lastmod>2026-10-27T14:39:49.686Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-restore-and-git-switch</loc>
<lastmod>2026-10-27T14:39:49.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sorting-results</loc>
<lastmod>2026-10-27T14:39:05.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nested-vs-object-fields</loc>
<lastmod>2026-10-27T14:39:05.707Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-saas-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.019Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/undo-the-last-git-commit</loc>
<lastmod>2026-10-27T14:39:49.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/index-aliases</loc>
<lastmod>2026-10-27T14:39:05.635Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/index-templates</loc>
<lastmod>2026-10-27T14:39:05.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/zero-downtime-reindexing</loc>
<lastmod>2026-10-27T14:39:05.617Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-streams</loc>
<lastmod>2026-10-27T14:39:05.564Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-sveltekit-mistakes</loc>
<lastmod>2026-10-27T14:38:58.075Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/interactive-rebase</loc>
<lastmod>2026-10-27T14:39:49.823Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-management-patterns</loc>
<lastmod>2026-10-27T14:38:58.151Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jvm-heap-sizing</loc>
<lastmod>2026-10-27T14:39:05.419Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/node-roles</loc>
<lastmod>2026-10-27T14:39:05.490Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-slow-logs</loc>
<lastmod>2026-10-27T14:39:05.454Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-to-svelte-5</loc>
<lastmod>2026-10-27T14:38:58.257Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fast-forward-merges</loc>
<lastmod>2026-10-27T14:39:49.840Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/snapshots-and-restore</loc>
<lastmod>2026-10-27T14:39:05.121Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-with-python</loc>
<lastmod>2026-10-27T14:39:05.300Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kibana-discover-and-dashboards</loc>
<lastmod>2026-10-27T14:39:05.367Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-composables-folder</loc>
<lastmod>2026-10-27T14:39:15.567Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-with-node-js</loc>
<lastmod>2026-10-27T14:39:05.333Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/csrf-protection-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/securing-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.158Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-analytics</loc>
<lastmod>2026-10-27T14:39:05.250Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/plugin-conflicts-how-to-debug</loc>
<lastmod>2026-10-27T14:39:27.541Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-for-rag</loc>
<lastmod>2026-10-27T14:39:05.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/semantic-text-field</loc>
<lastmod>2026-10-27T14:39:05.177Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-features-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.328Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/performance-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/thread-pool-rejections</loc>
<lastmod>2026-10-27T14:39:04.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/disk-watermarks</loc>
<lastmod>2026-10-27T14:39:05.011Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hosting-wordpress</loc>
<lastmod>2026-10-27T14:39:27.611Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-vs-opensearch</loc>
<lastmod>2026-10-27T14:39:05.085Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-wordpress-on-aws</loc>
<lastmod>2026-10-27T14:39:27.593Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/component-libraries-for-svelte</loc>
<lastmod>2026-10-27T14:38:58.487Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/git-branching-basics</loc>
<lastmod>2026-10-27T14:39:49.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/search-ux-best-practices</loc>
<lastmod>2026-10-27T14:39:04.868Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-scripting</loc>
<lastmod>2026-10-27T14:39:04.955Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/runtime-fields</loc>
<lastmod>2026-10-27T14:39:04.938Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/percolator-queries</loc>
<lastmod>2026-10-27T14:39:04.902Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multilingual-search</loc>
<lastmod>2026-10-27T14:39:04.884Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/actions-in-svelte</loc>
<lastmod>2026-10-27T14:38:58.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-with-validation-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.666Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-git-properly</loc>
<lastmod>2026-10-27T14:39:50.046Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kibana-alerting</loc>
<lastmod>2026-10-27T14:39:04.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-search-relevance-mistakes</loc>
<lastmod>2026-10-27T14:39:04.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-elasticsearch-mistakes</loc>
<lastmod>2026-10-27T14:39:04.801Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-invalidation</loc>
<lastmod>2026-10-27T14:38:58.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-terraform-and-iac-the-recap</loc>
<lastmod>2026-10-27T14:39:53.457Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.876Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-sql-and-es-ql</loc>
<lastmod>2026-10-27T14:39:04.592Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-cost-optimization</loc>
<lastmod>2026-10-27T14:39:04.627Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/source-filtering-and-stored-fields</loc>
<lastmod>2026-10-27T14:39:04.610Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-routes-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.911Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ephemeral-resources-and-values</loc>
<lastmod>2026-10-27T14:39:53.513Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/doc-values-and-field-data</loc>
<lastmod>2026-10-27T14:39:04.415Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/searchable-snapshots</loc>
<lastmod>2026-10-27T14:39:04.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/boolean-search-syntax-for-users</loc>
<lastmod>2026-10-27T14:39:04.467Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-explain-api</loc>
<lastmod>2026-10-27T14:39:04.451Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/index-sorting</loc>
<lastmod>2026-10-27T14:39:04.433Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-5-runes-explained</loc>
<lastmod>2026-10-27T14:38:59.245Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-server-middleware-and-auth</loc>
<lastmod>2026-10-27T14:39:15.601Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-in-vue-apps</loc>
<lastmod>2026-10-27T14:39:15.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-component-basics</loc>
<lastmod>2026-10-27T14:38:59.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structuring-pyspark-projects</loc>
<lastmod>2026-10-27T14:38:43.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-for-data-pipelines</loc>
<lastmod>2026-10-27T14:38:43.011Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sveltekit-load-functions</loc>
<lastmod>2026-10-27T14:38:58.978Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/zero-cost-abstractions</loc>
<lastmod>2026-10-27T14:38:52.160Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debouncing-inputs-in-vue</loc>
<lastmod>2026-10-27T14:39:15.636Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sveltekit-form-actions</loc>
<lastmod>2026-10-27T14:38:58.945Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/watchers-in-depth</loc>
<lastmod>2026-10-27T14:39:15.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-vs-vue</loc>
<lastmod>2026-10-27T14:38:59.013Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-syntax-essentials-svelte-sveltekit</loc>
<lastmod>2026-10-27T14:38:59.157Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/universal-vs-server-load</loc>
<lastmod>2026-10-27T14:38:58.961Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cross-compiling-rust</loc>
<lastmod>2026-10-27T14:38:51.983Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sveltekit-routing</loc>
<lastmod>2026-10-27T14:38:58.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lifecycle-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:59.048Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/context-api-in-svelte</loc>
<lastmod>2026-10-27T14:38:59.065Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-vs-react</loc>
<lastmod>2026-10-27T14:38:59.031Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-variables-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.841Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/derived-vs-effect</loc>
<lastmod>2026-10-27T14:38:59.210Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/progressive-enhancement</loc>
<lastmod>2026-10-27T14:38:58.928Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/styling-in-svelte</loc>
<lastmod>2026-10-27T14:38:59.101Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hooks-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.893Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bindings-in-svelte</loc>
<lastmod>2026-10-27T14:38:59.120Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/protecting-routes-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.858Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-svelte-and-sveltekit</loc>
<lastmod>2026-10-27T14:38:59.302Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-observability</loc>
<lastmod>2026-10-27T14:38:42.971Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-in-depth</loc>
<lastmod>2026-10-27T14:38:59.227Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-sveltekit-project</loc>
<lastmod>2026-10-27T14:38:59.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-engineering-with-spark</loc>
<lastmod>2026-10-27T14:38:42.893Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-small-files-problem</loc>
<lastmod>2026-10-27T14:38:42.932Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cost-optimization-for-spark</loc>
<lastmod>2026-10-27T14:38:42.951Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/streaming-data-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.702Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-directives</loc>
<lastmod>2026-10-27T14:39:15.726Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prerendering-static-sites</loc>
<lastmod>2026-10-27T14:38:58.791Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adapters-deploying-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.771Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-pages-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.738Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-sveltekit-with-docker</loc>
<lastmod>2026-10-27T14:38:58.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transitions-and-animations</loc>
<lastmod>2026-10-27T14:38:58.576Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cookies-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.292Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/v-if-vs-v-show</loc>
<lastmod>2026-10-27T14:39:15.778Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-access-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lib-server</loc>
<lastmod>2026-10-27T14:38:58.631Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-svelte-components</loc>
<lastmod>2026-10-27T14:38:58.613Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/end-to-end-tests-for-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.594Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-dashboard-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.452Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-roadmap</loc>
<lastmod>2026-10-27T14:39:15.795Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-design-patterns</loc>
<lastmod>2026-10-27T14:39:15.812Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-interview-questions</loc>
<lastmod>2026-10-27T14:39:15.865Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-svelte</loc>
<lastmod>2026-10-27T14:38:58.505Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/attachments-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:58.523Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-interview-questions</loc>
<lastmod>2026-10-27T14:39:15.882Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-in-vue</loc>
<lastmod>2026-10-27T14:39:15.900Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-security-checklist</loc>
<lastmod>2026-10-27T14:39:15.989Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/link-preloading</loc>
<lastmod>2026-10-27T14:38:58.365Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/images-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.310Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-workers-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.347Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/large-vue-app-architecture</loc>
<lastmod>2026-10-27T14:39:16.049Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/suspense-and-async-components</loc>
<lastmod>2026-10-27T14:39:16.067Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typescript-in-svelte</loc>
<lastmod>2026-10-27T14:38:58.222Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-4-vs-svelte-5</loc>
<lastmod>2026-10-27T14:38:58.240Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-without-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.170Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hashmap-entry-api</loc>
<lastmod>2026-10-27T14:38:51.378Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generated-types-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transitions-and-animations-in-vue</loc>
<lastmod>2026-10-27T14:39:16.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-in-vue-apps</loc>
<lastmod>2026-10-27T14:39:16.121Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reactive-classes</loc>
<lastmod>2026-10-27T14:38:58.133Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-svelte-mistakes</loc>
<lastmod>2026-10-27T14:38:58.094Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-svelte-apps</loc>
<lastmod>2026-10-27T14:38:58.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-ecosystem-tools</loc>
<lastmod>2026-10-27T14:38:58.039Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-interview-questions</loc>
<lastmod>2026-10-27T14:38:58.056Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-vue-and-nuxt</loc>
<lastmod>2026-10-27T14:39:16.138Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/edge-rendering-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.979Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-responses-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.962Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-learning-roadmap</loc>
<lastmod>2026-10-27T14:38:57.944Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-choose-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.928Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-devtools</loc>
<lastmod>2026-10-27T14:38:57.909Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/each-blocks-with-keys</loc>
<lastmod>2026-10-27T14:38:57.892Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-dashboard-with-vue</loc>
<lastmod>2026-10-27T14:39:16.175Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-vs-next-js</loc>
<lastmod>2026-10-27T14:39:16.209Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shallow-routing</loc>
<lastmod>2026-10-27T14:38:57.786Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-boundaries-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:57.803Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-stores-in-depth</loc>
<lastmod>2026-10-27T14:38:57.729Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-components-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:57.694Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/page-state-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.769Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-nuxt-apps</loc>
<lastmod>2026-10-27T14:39:16.243Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-handling-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/param-matchers</loc>
<lastmod>2026-10-27T14:38:57.659Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/redirects-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rest-parameters-in-routes</loc>
<lastmod>2026-10-27T14:38:57.642Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/svelte-transitions-with-keys</loc>
<lastmod>2026-10-27T14:38:57.588Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/headers-and-security-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:57.606Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-variables-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.279Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.295Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-image</loc>
<lastmod>2026-10-27T14:39:16.329Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-learn-rust-in-2026</loc>
<lastmod>2026-10-27T14:38:53.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-variables-and-mutability</loc>
<lastmod>2026-10-27T14:38:53.069Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-basic-types</loc>
<lastmod>2026-10-27T14:38:53.051Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cargo-essentials</loc>
<lastmod>2026-10-27T14:38:52.762Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-modules</loc>
<lastmod>2026-10-27T14:39:16.346Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prerendering-and-static-sites-with-nuxt</loc>
<lastmod>2026-10-27T14:39:16.380Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/open-graph-images-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.398Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-lifetimes-explained</loc>
<lastmod>2026-10-27T14:38:52.996Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structs-in-rust</loc>
<lastmod>2026-10-27T14:38:52.961Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/string-vs-and-str</loc>
<lastmod>2026-10-27T14:38:52.979Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/option-instead-of-null</loc>
<lastmod>2026-10-27T14:38:52.924Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-in-nuxt</loc>
<lastmod>2026-10-27T14:39:16.432Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-server-routes</loc>
<lastmod>2026-10-27T14:39:16.466Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/traits-in-rust</loc>
<lastmod>2026-10-27T14:38:52.869Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/panic-vs-result</loc>
<lastmod>2026-10-27T14:38:52.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/derive-macros</loc>
<lastmod>2026-10-27T14:38:52.833Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generics-in-rust</loc>
<lastmod>2026-10-27T14:38:52.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modules-and-crates</loc>
<lastmod>2026-10-27T14:38:52.780Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-tutorial-getting-started</loc>
<lastmod>2026-10-27T14:39:16.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-devtools-tips</loc>
<lastmod>2026-10-27T14:39:16.585Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rc-refcell-t-and-when-to-avoid-it</loc>
<lastmod>2026-10-27T14:38:52.728Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tokio-essentials</loc>
<lastmod>2026-10-27T14:38:52.676Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-async-programming</loc>
<lastmod>2026-10-27T14:38:52.694Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-web-development-with-axum</loc>
<lastmod>2026-10-27T14:38:52.643Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-pitfalls-in-rust</loc>
<lastmod>2026-10-27T14:38:52.660Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-vs-react</loc>
<lastmod>2026-10-27T14:39:16.651Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/shared-state-in-axum</loc>
<lastmod>2026-10-27T14:38:52.590Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seaorm-and-diesel</loc>
<lastmod>2026-10-27T14:38:52.531Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/databases-with-sqlx</loc>
<lastmod>2026-10-27T14:38:52.551Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logging-and-tracing-in-rust</loc>
<lastmod>2026-10-27T14:38:52.470Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/configuration-in-rust-services</loc>
<lastmod>2026-10-27T14:38:52.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-component-libraries</loc>
<lastmod>2026-10-27T14:39:16.669Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/styling-vue-components</loc>
<lastmod>2026-10-27T14:39:16.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-in-rust</loc>
<lastmod>2026-10-27T14:38:52.435Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/benchmarking-with-criterion</loc>
<lastmod>2026-10-27T14:38:52.397Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/property-based-testing</loc>
<lastmod>2026-10-27T14:38:52.415Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-i-o-in-rust</loc>
<lastmod>2026-10-27T14:38:52.345Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-cli-tool-in-rust</loc>
<lastmod>2026-10-27T14:38:52.362Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-in-vue</loc>
<lastmod>2026-10-27T14:39:16.754Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-router-basics</loc>
<lastmod>2026-10-27T14:39:16.805Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/organizing-pinia-stores</loc>
<lastmod>2026-10-27T14:39:16.823Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tauri-for-desktop-apps</loc>
<lastmod>2026-10-27T14:38:52.273Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/leptos-yew-and-dioxus</loc>
<lastmod>2026-10-27T14:38:52.291Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pattern-matching-tricks</loc>
<lastmod>2026-10-27T14:38:52.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/macros-in-rust</loc>
<lastmod>2026-10-27T14:38:52.218Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pinia-vs-vuex</loc>
<lastmod>2026-10-27T14:39:16.841Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-wordpress-with-git</loc>
<lastmod>2026-10-27T14:39:27.647Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-vs-go</loc>
<lastmod>2026-10-27T14:38:52.098Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-rest-api-with-axum-and-sqlx</loc>
<lastmod>2026-10-27T14:38:52.062Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-vs-c</loc>
<lastmod>2026-10-27T14:38:52.079Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-rust-apps</loc>
<lastmod>2026-10-27T14:38:52.002Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validation-in-rust-apis</loc>
<lastmod>2026-10-27T14:38:52.024Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composables-reusable-logic</loc>
<lastmod>2026-10-27T14:39:16.910Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cargo-audit-and-supply-chain-security</loc>
<lastmod>2026-10-27T14:38:51.947Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-workspaces</loc>
<lastmod>2026-10-27T14:38:51.928Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/publishing-crates</loc>
<lastmod>2026-10-27T14:38:51.910Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-good-rust-documentation</loc>
<lastmod>2026-10-27T14:38:51.892Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-reverse-proxy-in-rust</loc>
<lastmod>2026-10-27T14:38:51.856Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grpc-with-tonic</loc>
<lastmod>2026-10-27T14:38:51.838Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/template-syntax-essentials</loc>
<lastmod>2026-10-27T14:39:16.977Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-for-data-processing</loc>
<lastmod>2026-10-27T14:38:51.804Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rayon-for-parallelism</loc>
<lastmod>2026-10-27T14:38:51.784Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pyo3-rust-in-python</loc>
<lastmod>2026-10-27T14:38:51.767Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-rust-compiler-errors</loc>
<lastmod>2026-10-27T14:38:51.732Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-rust-mistakes</loc>
<lastmod>2026-10-27T14:38:51.712Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-interview-questions</loc>
<lastmod>2026-10-27T14:38:51.694Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-reactivity-explained</loc>
<lastmod>2026-10-27T14:39:17.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vue-composition-api-tutorial</loc>
<lastmod>2026-10-27T14:39:17.052Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-url-shortener-in-rust</loc>
<lastmod>2026-10-27T14:38:51.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-edition-2024</loc>
<lastmod>2026-10-27T14:38:51.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-developer-roadmap</loc>
<lastmod>2026-10-27T14:38:51.603Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-for-ai-and-ml</loc>
<lastmod>2026-10-27T14:38:51.622Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-match-vs-if-let</loc>
<lastmod>2026-10-27T14:38:51.566Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-payment-engineering-and-stripe-the-recap</loc>
<lastmod>2026-10-27T14:39:21.544Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-newtype-pattern</loc>
<lastmod>2026-10-27T14:38:51.512Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/builder-pattern-in-rust</loc>
<lastmod>2026-10-27T14:38:51.494Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-traits-for-conversion-and-display</loc>
<lastmod>2026-10-27T14:38:51.475Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-closures-in-depth</loc>
<lastmod>2026-10-27T14:38:51.455Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-collections-performance</loc>
<lastmod>2026-10-27T14:38:51.436Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-default-and-constructors</loc>
<lastmod>2026-10-27T14:38:51.416Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-disputes-evidence</loc>
<lastmod>2026-10-27T14:39:21.584Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/annual-vs-monthly-pricing</loc>
<lastmod>2026-10-27T14:39:21.637Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pausing-subscriptions</loc>
<lastmod>2026-10-27T14:39:21.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-traits-iterator-and-intoiterator</loc>
<lastmod>2026-10-27T14:38:51.299Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rust-const-and-static</loc>
<lastmod>2026-10-27T14:38:51.338Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-data-engineering-matters</loc>
<lastmod>2026-10-27T14:38:44.045Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/built-in-functions</loc>
<lastmod>2026-10-27T14:38:43.882Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/booking-platform-payments</loc>
<lastmod>2026-10-27T14:39:21.760Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/installments-and-buy-now-pay-later</loc>
<lastmod>2026-10-27T14:39:21.779Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pyspark-tutorial-getting-started</loc>
<lastmod>2026-10-27T14:38:43.985Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-dataframe-examples</loc>
<lastmod>2026-10-27T14:38:43.952Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transformations-vs-actions</loc>
<lastmod>2026-10-27T14:38:43.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lazy-evaluation-in-spark</loc>
<lastmod>2026-10-27T14:38:43.934Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pre-authorization-holds</loc>
<lastmod>2026-10-27T14:39:21.814Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-engineering-roadmap</loc>
<lastmod>2026-10-27T14:39:21.884Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-engineering-checklist</loc>
<lastmod>2026-10-27T14:39:21.903Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/defining-schemas-explicitly</loc>
<lastmod>2026-10-27T14:38:43.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-formats-for-data-engineering</loc>
<lastmod>2026-10-27T14:38:43.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-partitions-and-parallelism</loc>
<lastmod>2026-10-27T14:38:43.776Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multisite-in-wordpress</loc>
<lastmod>2026-10-27T14:39:27.734Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/broadcast-joins</loc>
<lastmod>2026-10-27T14:38:43.724Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-skew</loc>
<lastmod>2026-10-27T14:38:43.708Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adaptive-query-execution</loc>
<lastmod>2026-10-27T14:38:43.691Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-the-spark-ui</loc>
<lastmod>2026-10-27T14:38:43.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/explain-and-query-plans</loc>
<lastmod>2026-10-27T14:38:43.636Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-memory-management</loc>
<lastmod>2026-10-27T14:38:43.619Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-interview-questions</loc>
<lastmod>2026-10-27T14:39:21.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-stripe-integration-mistakes</loc>
<lastmod>2026-10-27T14:39:21.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/etl-vs-elt</loc>
<lastmod>2026-10-27T14:38:43.583Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-lakes-warehouses-and-lakehouses</loc>
<lastmod>2026-10-27T14:38:43.548Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/apache-iceberg-basics</loc>
<lastmod>2026-10-27T14:38:43.515Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upserts-and-slowly-changing-dimensions</loc>
<lastmod>2026-10-27T14:38:43.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scaling-payment-systems</loc>
<lastmod>2026-10-27T14:39:21.980Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/change-data-capture</loc>
<lastmod>2026-10-27T14:38:43.462Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/watermarks-and-late-data</loc>
<lastmod>2026-10-27T14:38:43.425Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exactly-once-in-streaming</loc>
<lastmod>2026-10-27T14:38:43.404Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-with-kafka</loc>
<lastmod>2026-10-27T14:38:43.386Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-quality-checks</loc>
<lastmod>2026-10-27T14:38:43.366Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-audit-trails</loc>
<lastmod>2026-10-27T14:39:22.039Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cash-on-delivery-and-offline-payments</loc>
<lastmod>2026-10-27T14:39:22.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-nulls-in-spark</loc>
<lastmod>2026-10-27T14:38:43.311Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nested-data-and-json</loc>
<lastmod>2026-10-27T14:38:43.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/working-with-dates-and-timestamps</loc>
<lastmod>2026-10-27T14:38:43.293Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/airflow-best-practices</loc>
<lastmod>2026-10-27T14:38:43.219Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/orchestrating-pipelines-with-airflow</loc>
<lastmod>2026-10-27T14:38:43.238Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-emails</loc>
<lastmod>2026-10-27T14:39:27.750Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-modeling-for-analytics</loc>
<lastmod>2026-10-27T14:38:43.164Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-catalogs-and-lineage</loc>
<lastmod>2026-10-27T14:38:43.144Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pandas-vs-spark-vs-polars</loc>
<lastmod>2026-10-27T14:38:42.875Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/duckdb-for-data-engineers</loc>
<lastmod>2026-10-27T14:38:42.856Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-connect</loc>
<lastmod>2026-10-27T14:38:42.839Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-governance-basics</loc>
<lastmod>2026-10-27T14:38:42.821Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/local-payment-methods-in-south-asia</loc>
<lastmod>2026-10-27T14:39:22.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-performance</loc>
<lastmod>2026-10-27T14:39:27.770Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backfilling-data-safely</loc>
<lastmod>2026-10-27T14:38:42.726Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-spark-mistakes</loc>
<lastmod>2026-10-27T14:38:42.690Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/slas-for-data</loc>
<lastmod>2026-10-27T14:38:42.708Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-sql-performance-tips</loc>
<lastmod>2026-10-27T14:38:42.483Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-interview-questions</loc>
<lastmod>2026-10-27T14:38:42.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-analytics</loc>
<lastmod>2026-10-27T14:39:22.132Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-check-blocks</loc>
<lastmod>2026-10-27T14:39:53.533Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-4-highlights</loc>
<lastmod>2026-10-27T14:38:42.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-engineering-career-tips</loc>
<lastmod>2026-10-27T14:38:42.578Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-engineering-roadmap</loc>
<lastmod>2026-10-27T14:38:42.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bucketing-in-spark</loc>
<lastmod>2026-10-27T14:38:42.519Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-configuration-essentials</loc>
<lastmod>2026-10-27T14:38:42.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/entitlements-and-feature-access</loc>
<lastmod>2026-10-27T14:39:22.187Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pricing-tables-and-paywalls</loc>
<lastmod>2026-10-27T14:39:22.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-to-databases-from-spark</loc>
<lastmod>2026-10-27T14:38:42.447Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-lake-folder-conventions</loc>
<lastmod>2026-10-27T14:38:42.389Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/time-travel-and-auditing</loc>
<lastmod>2026-10-27T14:38:42.427Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spark-accumulators-and-broadcast-variables</loc>
<lastmod>2026-10-27T14:38:42.323Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sampling-data-in-spark</loc>
<lastmod>2026-10-27T14:38:42.346Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wallets-and-stored-balance</loc>
<lastmod>2026-10-27T14:39:22.274Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-payment-systems</loc>
<lastmod>2026-10-27T14:39:22.325Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/writing-spark-jobs-for-reuse</loc>
<lastmod>2026-10-27T14:38:42.227Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-apache-spark-and-data-engineering-the-recap</loc>
<lastmod>2026-10-27T14:38:42.097Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/form-helpers-in-rails</loc>
<lastmod>2026-10-27T14:38:34.802Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-ruby-on-rails-in-2026</loc>
<lastmod>2026-10-27T14:38:35.100Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-test-clocks</loc>
<lastmod>2026-10-27T14:39:22.343Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-payment-integrations</loc>
<lastmod>2026-10-27T14:39:22.360Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ruby-basics-for-rails-developers</loc>
<lastmod>2026-10-27T14:38:35.064Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-routing</loc>
<lastmod>2026-10-27T14:38:34.999Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-directory-structure</loc>
<lastmod>2026-10-27T14:38:35.044Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strong-parameters</loc>
<lastmod>2026-10-27T14:38:34.965Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-controllers</loc>
<lastmod>2026-10-27T14:38:34.983Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-with-aspdotnet-core</loc>
<lastmod>2026-10-27T14:39:22.393Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrations-in-rails</loc>
<lastmod>2026-10-27T14:38:34.909Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scopes-in-active-record</loc>
<lastmod>2026-10-27T14:38:34.855Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-n-1-queries-in-rails</loc>
<lastmod>2026-10-27T14:38:34.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-views-and-partials</loc>
<lastmod>2026-10-27T14:38:34.819Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transactions-in-rails</loc>
<lastmod>2026-10-27T14:38:34.838Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-success-pages</loc>
<lastmod>2026-10-27T14:39:22.446Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/woocommerce-rest-api</loc>
<lastmod>2026-10-27T14:39:27.787Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/turbo-frames-tutorial</loc>
<lastmod>2026-10-27T14:38:34.767Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stimulus-controllers</loc>
<lastmod>2026-10-27T14:38:34.731Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hotwire-vs-react</loc>
<lastmod>2026-10-27T14:38:34.713Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-authentication</loc>
<lastmod>2026-10-27T14:38:34.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authorization-in-rails</loc>
<lastmod>2026-10-27T14:38:34.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/order-fulfillment-after-payment</loc>
<lastmod>2026-10-27T14:39:22.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/async-payment-methods</loc>
<lastmod>2026-10-27T14:39:22.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/token-authentication-for-rails-apis</loc>
<lastmod>2026-10-27T14:38:34.637Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-8-solid-queue-cache-and-cable-explained</loc>
<lastmod>2026-10-27T14:38:34.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-in-rails</loc>
<lastmod>2026-10-27T14:38:34.620Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/action-cable</loc>
<lastmod>2026-10-27T14:38:34.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/action-mailer</loc>
<lastmod>2026-10-27T14:38:34.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-declined-payments</loc>
<lastmod>2026-10-27T14:39:22.514Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pci-dss-for-developers</loc>
<lastmod>2026-10-27T14:39:22.583Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-credentials</loc>
<lastmod>2026-10-27T14:38:34.455Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/action-text</loc>
<lastmod>2026-10-27T14:38:34.490Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-in-rails</loc>
<lastmod>2026-10-27T14:38:34.420Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/system-tests-with-capybara</loc>
<lastmod>2026-10-27T14:38:34.386Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-environments-and-configuration</loc>
<lastmod>2026-10-27T14:38:34.438Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/coupons-and-promotion-codes</loc>
<lastmod>2026-10-27T14:39:22.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/concerns-in-rails</loc>
<lastmod>2026-10-27T14:38:34.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/form-objects</loc>
<lastmod>2026-10-27T14:38:34.314Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/brakeman-and-bundler-audit</loc>
<lastmod>2026-10-27T14:38:34.277Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-limiting-in-rails</loc>
<lastmod>2026-10-27T14:38:34.257Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-performance-tuning</loc>
<lastmod>2026-10-27T14:38:34.235Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-indexes-in-rails</loc>
<lastmod>2026-10-27T14:38:34.217Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/apple-pay-and-google-pay</loc>
<lastmod>2026-10-27T14:39:22.667Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-methods-beyond-cards</loc>
<lastmod>2026-10-27T14:39:22.685Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/double-entry-ledgers-for-developers</loc>
<lastmod>2026-10-27T14:39:22.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-on-heroku-render-and-fly</loc>
<lastmod>2026-10-27T14:38:34.116Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-in-docker</loc>
<lastmod>2026-10-27T14:38:34.135Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/asset-pipeline-with-propshaft</loc>
<lastmod>2026-10-27T14:38:34.079Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tailwind-css-with-rails</loc>
<lastmod>2026-10-27T14:38:34.028Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/metadata-in-stripe</loc>
<lastmod>2026-10-27T14:39:22.791Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/current-attributes</loc>
<lastmod>2026-10-27T14:38:33.970Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payments-with-pay-and-stripe</loc>
<lastmod>2026-10-27T14:38:33.951Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-rails</loc>
<lastmod>2026-10-27T14:38:33.912Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-console-tips</loc>
<lastmod>2026-10-27T14:38:33.895Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/debugging-rails-apps</loc>
<lastmod>2026-10-27T14:38:33.876Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logging-and-monitoring-rails</loc>
<lastmod>2026-10-27T14:38:33.858Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-customers</loc>
<lastmod>2026-10-27T14:39:22.809Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/disputes-and-chargebacks</loc>
<lastmod>2026-10-27T14:39:22.865Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refunds-done-right</loc>
<lastmod>2026-10-27T14:39:22.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modular-monoliths-in-rails</loc>
<lastmod>2026-10-27T14:38:33.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-engines</loc>
<lastmod>2026-10-27T14:38:33.803Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-blog-with-rails</loc>
<lastmod>2026-10-27T14:38:33.747Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/proration-explained</loc>
<lastmod>2026-10-27T14:39:22.954Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/subscription-lifecycle-events</loc>
<lastmod>2026-10-27T14:39:22.990Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/friendly-urls-with-slugs</loc>
<lastmod>2026-10-27T14:38:33.689Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/soft-deletes-in-rails</loc>
<lastmod>2026-10-27T14:38:33.652Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/admin-panels-in-rails</loc>
<lastmod>2026-10-27T14:38:33.671Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-and-graphql</loc>
<lastmod>2026-10-27T14:38:33.615Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/auditing-changes-in-rails</loc>
<lastmod>2026-10-27T14:38:33.634Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-state-machines</loc>
<lastmod>2026-10-27T14:39:23.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-idempotency-keys</loc>
<lastmod>2026-10-27T14:39:23.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ruby-interview-questions</loc>
<lastmod>2026-10-27T14:38:33.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-interview-questions</loc>
<lastmod>2026-10-27T14:38:33.539Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/blocks-procs-and-lambdas</loc>
<lastmod>2026-10-27T14:38:33.461Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/enums-in-active-record</loc>
<lastmod>2026-10-27T14:38:33.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-developer-roadmap</loc>
<lastmod>2026-10-27T14:38:33.499Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-webhooks-locally</loc>
<lastmod>2026-10-27T14:39:23.154Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/webhook-handling-best-practices</loc>
<lastmod>2026-10-27T14:39:23.171Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/query-objects</loc>
<lastmod>2026-10-27T14:38:33.386Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-health-checks-and-readiness</loc>
<lastmod>2026-10-27T14:38:33.346Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-generators-and-scaffolds</loc>
<lastmod>2026-10-27T14:38:33.368Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/parallel-testing-in-rails</loc>
<lastmod>2026-10-27T14:38:33.286Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-seeds-and-sample-data</loc>
<lastmod>2026-10-27T14:38:33.326Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/never-trust-the-client-with-prices</loc>
<lastmod>2026-10-27T14:39:23.207Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/minimal-apis-a-production-ready-setup</loc>
<lastmod>2026-10-27T14:41:39.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-i-still-choose-dotnet-for-backends</loc>
<lastmod>2026-10-28T05:41:33.260Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-ruby-on-rails-the-recap</loc>
<lastmod>2026-10-27T14:38:33.172Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rails-strict-loading</loc>
<lastmod>2026-10-27T14:38:33.226Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validation-with-fluentvalidation</loc>
<lastmod>2026-10-27T16:00:35.326Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/organize-minimal-apis-with-route-groups</loc>
<lastmod>2026-10-27T14:41:39.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/endpoint-filters-in-minimal-apis</loc>
<lastmod>2026-10-27T14:41:39.800Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-middleware-pipeline-order-matters</loc>
<lastmod>2026-10-27T14:41:39.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-options-pattern-properly</loc>
<lastmod>2026-10-27T14:41:39.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/project-to-dtos-with-select</loc>
<lastmod>2026-10-27T14:41:39.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/asnotracking-free-performance</loc>
<lastmod>2026-10-27T14:41:39.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ef-core-from-zero-to-production</loc>
<lastmod>2026-10-27T14:41:39.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-records-for-dtos</loc>
<lastmod>2026-10-27T14:41:39.727Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-i-reach-for-dapper</loc>
<lastmod>2026-10-27T14:41:39.547Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/global-query-filters</loc>
<lastmod>2026-10-27T14:41:39.583Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bulk-updates-with-executeupdate</loc>
<lastmod>2026-10-27T14:41:39.600Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aspdotnet-core-identity-when-to-use-it</loc>
<lastmod>2026-10-27T14:41:39.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refresh-token-rotation-in-dotnet</loc>
<lastmod>2026-10-27T14:41:39.400Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jwt-authentication-in-aspdotnet-core</loc>
<lastmod>2026-10-27T14:41:39.418Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/domain-events-in-dotnet</loc>
<lastmod>2026-10-27T14:41:39.438Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/result-pattern-vs-exceptions</loc>
<lastmod>2026-10-27T14:41:39.456Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pass-cancellationtoken-everywhere</loc>
<lastmod>2026-10-27T14:41:39.188Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/response-compression-easy-wins</loc>
<lastmod>2026-10-27T14:41:39.245Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/distributed-caching-with-redis</loc>
<lastmod>2026-10-27T14:41:39.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/built-in-rate-limiting</loc>
<lastmod>2026-10-27T14:41:39.322Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/permission-based-authorization</loc>
<lastmod>2026-10-27T14:41:39.362Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authentication-with-cognito</loc>
<lastmod>2026-10-27T14:41:12.932Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-serverless-is-the-wrong-choice</loc>
<lastmod>2026-10-27T14:41:12.988Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hybridcache-in-dotnet-9</loc>
<lastmod>2026-10-27T14:41:39.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-features-with-laravel-reverb</loc>
<lastmod>2026-10-27T14:40:27.469Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-sanctum-api-authentication</loc>
<lastmod>2026-10-27T14:40:28.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testcontainers-for-real-databases</loc>
<lastmod>2026-10-27T14:41:38.920Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unit-testing-with-xunit</loc>
<lastmod>2026-10-27T14:41:38.956Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/openapi-in-dotnet-9</loc>
<lastmod>2026-10-27T14:41:38.992Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/system-threading-channels</loc>
<lastmod>2026-10-27T14:41:39.092Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/choosing-the-right-collection</loc>
<lastmod>2026-10-27T14:41:38.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/strings-stringbuilder-and-interpolation</loc>
<lastmod>2026-10-27T14:41:38.830Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reducing-allocations-in-hot-paths</loc>
<lastmod>2026-10-27T14:41:38.848Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/span-t-in-everyday-code</loc>
<lastmod>2026-10-27T14:41:38.866Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/benchmarking-with-benchmarkdotnet</loc>
<lastmod>2026-10-27T14:41:38.884Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/file-uploads-and-large-file-streaming</loc>
<lastmod>2026-10-27T14:41:38.665Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/receiving-webhooks-reliably</loc>
<lastmod>2026-10-27T14:41:38.683Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scaling-signalr-across-servers</loc>
<lastmod>2026-10-27T14:41:38.719Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-with-signalr</loc>
<lastmod>2026-10-27T14:41:38.738Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-outbox-pattern-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.558Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/idempotency-keys-in-aspdotnet-core</loc>
<lastmod>2026-10-27T14:41:38.575Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-gateway-integration-lessons</loc>
<lastmod>2026-10-27T14:41:38.592Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-flags-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.611Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-tenancy-in-ef-core</loc>
<lastmod>2026-10-27T14:41:38.628Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-protection-and-encryption</loc>
<lastmod>2026-10-27T14:41:38.380Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cors-done-right</loc>
<lastmod>2026-10-27T14:41:38.398Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hosting-dotnet-on-linux-behind-nginx</loc>
<lastmod>2026-10-27T14:41:38.485Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-with-dotnet</loc>
<lastmod>2026-10-27T14:41:38.521Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-well-architected-framework</loc>
<lastmod>2026-10-27T14:41:13.047Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/disaster-recovery-strategies</loc>
<lastmod>2026-10-27T14:41:13.104Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-http-calls-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.727Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-laravel-with-pest</loc>
<lastmod>2026-10-27T14:40:27.763Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-configuration-and-env</loc>
<lastmod>2026-10-27T14:40:27.859Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/csharp-features-worth-adopting-now</loc>
<lastmod>2026-10-27T14:41:38.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/primary-constructors-in-csharp-12</loc>
<lastmod>2026-10-27T14:41:38.287Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modern-pattern-matching-in-csharp</loc>
<lastmod>2026-10-27T14:41:38.307Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nullable-reference-types</loc>
<lastmod>2026-10-27T14:41:38.325Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/source-generators-in-csharp</loc>
<lastmod>2026-10-27T14:41:38.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modular-monolith-in-dotnet</loc>
<lastmod>2026-10-27T14:41:38.154Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exception-handling-anti-patterns</loc>
<lastmod>2026-10-27T14:41:38.173Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/refactoring-a-fat-controller</loc>
<lastmod>2026-10-27T14:41:38.193Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-dotnet-pull-request-checklist</loc>
<lastmod>2026-10-27T14:41:38.212Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generics-and-constraints-that-pay-off</loc>
<lastmod>2026-10-27T14:41:38.231Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-dotnet-what-i-learned</loc>
<lastmod>2026-10-27T14:41:38.037Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-junior-dotnet-developers</loc>
<lastmod>2026-10-27T14:41:38.060Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-production-ready-dotnet-template</loc>
<lastmod>2026-10-27T14:41:38.078Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-dotnet-versions-without-drama</loc>
<lastmod>2026-10-27T14:41:38.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/migrating-from-dotnet-framework</loc>
<lastmod>2026-10-27T14:41:38.117Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prisma-connection-management</loc>
<lastmod>2026-10-27T14:41:34.976Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typed-validated-configuration</loc>
<lastmod>2026-10-27T14:41:35.037Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dtos-that-protect-your-api</loc>
<lastmod>2026-10-27T14:41:35.074Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-nestjs-request-lifecycle</loc>
<lastmod>2026-10-27T14:41:35.112Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structure-nestjs-projects-by-feature</loc>
<lastmod>2026-10-27T14:41:35.167Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/soft-delete-with-prisma-client-extensions</loc>
<lastmod>2026-10-27T14:41:34.870Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/n-1-queries-with-prisma</loc>
<lastmod>2026-10-27T14:41:34.905Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prisma-vs-typeorm-vs-drizzle</loc>
<lastmod>2026-10-27T14:41:34.922Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/transactions-in-prisma</loc>
<lastmod>2026-10-27T14:41:34.940Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-parameter-decorators</loc>
<lastmod>2026-10-27T14:41:34.766Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/guards-explained</loc>
<lastmod>2026-10-27T14:41:34.801Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jwt-authentication-with-passport</loc>
<lastmod>2026-10-27T14:41:34.818Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/should-you-wrap-every-response-in-an-envelope</loc>
<lastmod>2026-10-27T14:41:34.654Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/interceptors-logging-timing-transforms</loc>
<lastmod>2026-10-27T14:41:34.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-nest-s-built-in-http-exceptions</loc>
<lastmod>2026-10-27T14:41:34.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exception-filters-for-consistent-errors</loc>
<lastmod>2026-10-27T14:41:34.711Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/google-login-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.731Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mocking-providers-cleanly</loc>
<lastmod>2026-10-27T14:41:34.287Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retries-and-backoff-done-right</loc>
<lastmod>2026-10-27T14:41:34.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-jobs-with-bullmq</loc>
<lastmod>2026-10-27T14:41:34.599Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scaling-socket-io-across-instances</loc>
<lastmod>2026-10-27T14:41:34.464Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/websockets-with-nestjs-gateways</loc>
<lastmod>2026-10-27T14:41:34.482Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/domain-events-vs-integration-events</loc>
<lastmod>2026-10-27T14:41:34.501Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/in-process-events-with-eventemitter</loc>
<lastmod>2026-10-27T14:41:34.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scheduled-tasks-with-nestjs-schedule</loc>
<lastmod>2026-10-27T14:41:34.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sagas-in-nestjs-cqrs</loc>
<lastmod>2026-10-27T14:41:34.358Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/message-patterns-vs-event-patterns</loc>
<lastmod>2026-10-27T14:41:34.392Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hybrid-apps-http-plus-microservices</loc>
<lastmod>2026-10-27T14:41:34.411Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-consumers-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.428Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-swagger-cli-plugin</loc>
<lastmod>2026-10-27T14:41:34.322Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-atlas-basics</loc>
<lastmod>2026-10-27T14:40:12.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/backups-for-mongodb</loc>
<lastmod>2026-10-27T14:40:12.550Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/inertia-js-with-laravel</loc>
<lastmod>2026-10-27T14:40:27.561Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/blade-templates</loc>
<lastmod>2026-10-27T14:40:27.601Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nestjs-security-checklist</loc>
<lastmod>2026-10-27T14:41:33.835Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/faster-nestjs-with-fastify</loc>
<lastmod>2026-10-27T14:41:33.907Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monorepos-with-nestjs</loc>
<lastmod>2026-10-27T14:41:33.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payment-integration-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.062Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/receiving-webhooks-in-nestjs</loc>
<lastmod>2026-10-27T14:41:34.101Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-nestjs-code-review-checklist</loc>
<lastmod>2026-10-27T14:41:33.470Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lessons-from-integrating-twilio-telephony</loc>
<lastmod>2026-10-27T14:41:33.525Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-a-lead-assignment-engine</loc>
<lastmod>2026-10-27T14:41:33.543Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/opentelemetry-in-node-js</loc>
<lastmod>2026-10-27T14:41:33.579Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/circular-dependencies-in-nestjs</loc>
<lastmod>2026-10-27T14:41:33.651Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/you-might-not-need-useeffect</loc>
<lastmod>2026-10-27T14:41:30.206Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/derived-state-don-t-store-what-you-can-compute</loc>
<lastmod>2026-10-27T14:41:30.224Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/usestate-pitfalls</loc>
<lastmod>2026-10-27T14:41:30.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/thinking-in-react</loc>
<lastmod>2026-10-27T14:41:30.279Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-nestjs-lessons</loc>
<lastmod>2026-10-27T14:41:33.357Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modern-redux-toolkit</loc>
<lastmod>2026-10-27T14:41:29.981Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-url-is-state</loc>
<lastmod>2026-10-27T14:41:29.999Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-hooks-that-make-code-clean</loc>
<lastmod>2026-10-27T14:41:30.130Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/usememo-and-usecallback-honestly</loc>
<lastmod>2026-10-27T14:41:30.169Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-fetching-in-the-app-router</loc>
<lastmod>2026-10-27T14:41:29.811Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/context-api-the-right-way</loc>
<lastmod>2026-10-27T14:41:30.089Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-usedebounce-hook</loc>
<lastmod>2026-10-27T14:41:30.109Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-app-router-mental-model</loc>
<lastmod>2026-10-27T14:41:29.878Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/forms-with-react-hook-form-and-zod</loc>
<lastmod>2026-10-27T14:41:29.912Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/optimistic-updates</loc>
<lastmod>2026-10-27T14:41:29.929Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/protecting-routes-in-the-app-router</loc>
<lastmod>2026-10-27T14:41:29.693Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/route-handlers-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.744Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/keep-server-code-on-the-server</loc>
<lastmod>2026-10-27T14:41:29.827Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/where-to-put-use-client</loc>
<lastmod>2026-10-27T14:41:29.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-next-js</loc>
<lastmod>2026-10-27T14:41:29.067Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/error-boundaries-in-react</loc>
<lastmod>2026-10-27T14:41:29.214Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/accessibility-essentials-for-react-devs</loc>
<lastmod>2026-10-27T14:41:29.250Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-accessible-primitives</loc>
<lastmod>2026-10-27T14:41:29.268Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-with-the-metadata-api</loc>
<lastmod>2026-10-27T14:41:29.572Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/waf-and-shield</loc>
<lastmod>2026-10-27T14:41:13.197Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tailwind-css-patterns-that-scale</loc>
<lastmod>2026-10-27T14:41:29.324Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-fpm-tuning</loc>
<lastmod>2026-10-27T14:40:27.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-react-compiler</loc>
<lastmod>2026-10-27T14:41:29.360Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/third-party-scripts-with-next-script</loc>
<lastmod>2026-10-27T14:41:29.451Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/environment-variables-in-next-js</loc>
<lastmod>2026-10-27T14:41:28.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/e-commerce-frontend-lessons</loc>
<lastmod>2026-10-27T14:41:28.886Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/adding-react-to-a-legacy-angularjs-app</loc>
<lastmod>2026-10-27T14:41:28.921Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/real-time-ui-updates-in-react</loc>
<lastmod>2026-10-27T14:41:29.011Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/charts-that-perform</loc>
<lastmod>2026-10-27T14:41:29.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/advice-for-frontend-developers-leveling-up</loc>
<lastmod>2026-10-27T14:41:28.516Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/typescript-patterns-for-react-props</loc>
<lastmod>2026-10-27T14:41:28.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sharing-code-between-web-and-mobile</loc>
<lastmod>2026-10-27T14:41:28.658Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sanitize-cms-html-before-rendering</loc>
<lastmod>2026-10-27T14:41:28.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/canonicalization-rules</loc>
<lastmod>2026-10-27T14:41:24.867Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/robots-txt-vs-noindex</loc>
<lastmod>2026-10-27T14:41:24.957Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/robots-txt-deep-dive</loc>
<lastmod>2026-10-27T14:41:25.006Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crawled-is-not-indexed</loc>
<lastmod>2026-10-27T14:41:25.065Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-developers-should-own-technical-seo</loc>
<lastmod>2026-10-27T14:41:25.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/structured-data-fundamentals</loc>
<lastmod>2026-10-27T14:41:24.593Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/pagination-and-seo</loc>
<lastmod>2026-10-27T14:41:24.697Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/410-vs-404</loc>
<lastmod>2026-10-27T14:41:24.713Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/status-codes-and-soft-404s</loc>
<lastmod>2026-10-27T14:41:24.730Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/redirects-301-302-307-308</loc>
<lastmod>2026-10-27T14:41:24.799Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/image-optimization-for-seo-and-speed</loc>
<lastmod>2026-10-27T14:41:24.246Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cumulative-layout-shift</loc>
<lastmod>2026-10-27T14:41:24.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/largest-contentful-paint-explained</loc>
<lastmod>2026-10-27T14:41:24.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validate-structured-data-before-shipping</loc>
<lastmod>2026-10-27T14:41:24.469Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/person-and-organization-schema</loc>
<lastmod>2026-10-27T14:41:24.521Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/thin-content-on-programmatic-pages</loc>
<lastmod>2026-10-27T14:41:23.969Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/where-duplicate-content-comes-from</loc>
<lastmod>2026-10-27T14:41:23.987Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/crawl-budget-at-scale</loc>
<lastmod>2026-10-27T14:41:24.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mobile-first-indexing</loc>
<lastmod>2026-10-27T14:41:24.105Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/international-seo</loc>
<lastmod>2026-10-27T14:41:24.141Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/find-and-fix-mixed-content</loc>
<lastmod>2026-10-27T14:41:23.655Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-tests-in-ci</loc>
<lastmod>2026-10-27T14:41:23.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-monitoring-and-alerting</loc>
<lastmod>2026-10-27T14:41:23.743Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/detecting-seo-issues-automatically</loc>
<lastmod>2026-10-27T14:41:23.777Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-for-travel-sites-with-dynamic-pricing</loc>
<lastmod>2026-10-27T14:41:23.846Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/technical-seo-mistakes-developers-make</loc>
<lastmod>2026-10-27T14:41:23.393Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/measuring-seo-impact</loc>
<lastmod>2026-10-27T14:41:23.429Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/documentation-is-an-seo-asset</loc>
<lastmod>2026-10-27T14:41:23.482Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/technical-seo-for-saas-products</loc>
<lastmod>2026-10-27T14:41:23.499Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/optimizing-for-ai-search</loc>
<lastmod>2026-10-27T14:41:23.603Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/offsets-and-commits</loc>
<lastmod>2026-10-27T14:41:20.251Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/consumer-groups-and-rebalancing</loc>
<lastmod>2026-10-27T14:41:20.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/partitions-and-ordering</loc>
<lastmod>2026-10-27T14:41:20.320Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-technical-seo-lessons</loc>
<lastmod>2026-10-27T14:41:23.319Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/events-vs-commands</loc>
<lastmod>2026-10-27T14:41:19.847Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/kafka-with-node-js</loc>
<lastmod>2026-10-27T14:41:19.897Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retry-topics-and-dead-letter-queues</loc>
<lastmod>2026-10-27T14:41:19.963Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/json-vs-avro-vs-protobuf</loc>
<lastmod>2026-10-27T14:41:20.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/replication-and-in-sync-replicas</loc>
<lastmod>2026-10-27T14:41:20.144Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-sse-is-enough</loc>
<lastmod>2026-10-27T14:41:19.435Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-not-to-use-kafka</loc>
<lastmod>2026-10-27T14:41:19.535Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/running-kafka-in-production</loc>
<lastmod>2026-10-27T14:41:19.660Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/where-change-data-capture-shines</loc>
<lastmod>2026-10-27T14:41:19.779Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-presence-system</loc>
<lastmod>2026-10-27T14:41:19.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/load-balancers-and-websockets</loc>
<lastmod>2026-10-27T14:41:19.271Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scaling-websockets-horizontally</loc>
<lastmod>2026-10-27T14:41:19.307Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/authenticating-websocket-connections</loc>
<lastmod>2026-10-27T14:41:19.381Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/socket-io-in-depth</loc>
<lastmod>2026-10-27T14:41:19.415Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/securing-real-time-systems</loc>
<lastmod>2026-10-27T14:41:18.755Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/chat-system-design-basics</loc>
<lastmod>2026-10-27T14:41:18.826Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/designing-a-notification-system</loc>
<lastmod>2026-10-27T14:41:18.862Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/payload-size-matters</loc>
<lastmod>2026-10-27T14:41:18.950Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/binary-protocols-over-websockets</loc>
<lastmod>2026-10-27T14:41:18.967Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-kafka-and-websockets-lessons</loc>
<lastmod>2026-10-27T14:41:18.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-real-time-systems-checklist</loc>
<lastmod>2026-10-27T14:41:18.536Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/use-multiple-aws-accounts-from-day-one</loc>
<lastmod>2026-10-27T14:41:14.601Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/event-driven-architecture-pitfalls</loc>
<lastmod>2026-10-27T14:41:18.572Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/serverless-and-managed-real-time</loc>
<lastmod>2026-10-27T14:41:18.608Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/launch-templates</loc>
<lastmod>2026-10-27T14:41:14.332Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ec2-essentials</loc>
<lastmod>2026-10-27T14:41:14.390Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vpc-fundamentals</loc>
<lastmod>2026-10-27T14:41:14.463Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iam-identity-center</loc>
<lastmod>2026-10-27T14:41:14.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reading-iam-policies</loc>
<lastmod>2026-10-27T14:41:14.540Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/s3-security-essentials</loc>
<lastmod>2026-10-27T14:41:14.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/http-apis-are-cheaper</loc>
<lastmod>2026-10-27T14:41:14.076Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lambda-fundamentals</loc>
<lastmod>2026-10-27T14:41:14.169Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/secrets-manager-vs-parameter-store</loc>
<lastmod>2026-10-27T14:41:13.632Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sns-and-eventbridge</loc>
<lastmod>2026-10-27T14:41:13.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/queues-with-sqs</loc>
<lastmod>2026-10-27T14:41:13.804Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/consider-valkey-on-elasticache</loc>
<lastmod>2026-10-27T14:41:13.821Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamodb-fundamentals</loc>
<lastmod>2026-10-27T14:41:13.873Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/open-closed-with-the-strategy-pattern</loc>
<lastmod>2026-10-27T14:41:08.608Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/solid-in-one-carousel</loc>
<lastmod>2026-10-27T14:41:08.644Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/my-production-aws-starter-architecture</loc>
<lastmod>2026-10-27T14:41:12.817Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bedrock-or-a-direct-model-api</loc>
<lastmod>2026-10-27T14:41:12.877Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/route-53-dns</loc>
<lastmod>2026-10-27T14:41:13.700Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-serverless-saas-architecture</loc>
<lastmod>2026-10-27T14:41:13.009Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ci-cd-to-aws-with-github-actions</loc>
<lastmod>2026-10-27T14:41:13.456Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-in-laravel</loc>
<lastmod>2026-10-27T14:40:27.212Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudwatch-logs-metrics-and-alarms</loc>
<lastmod>2026-10-27T14:41:13.562Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/run-a-well-architected-review</loc>
<lastmod>2026-10-27T14:41:13.029Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/high-availability-patterns</loc>
<lastmod>2026-10-27T14:41:13.156Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/laravel-interview-questions</loc>
<lastmod>2026-10-27T14:40:27.102Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rate-based-waf-rules</loc>
<lastmod>2026-10-27T14:41:13.176Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prototype-pattern</loc>
<lastmod>2026-10-27T14:41:08.414Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/singleton-and-why-di-replaced-it</loc>
<lastmod>2026-10-27T14:41:08.432Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/factory-method</loc>
<lastmod>2026-10-27T14:41:08.485Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/creational-patterns-overview</loc>
<lastmod>2026-10-27T14:41:08.502Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/composition-over-inheritance</loc>
<lastmod>2026-10-27T14:41:08.538Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/specification-pattern</loc>
<lastmod>2026-10-27T14:41:08.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/visitor-pattern</loc>
<lastmod>2026-10-27T14:41:08.038Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/state-pattern-modeling-an-order-lifecycle</loc>
<lastmod>2026-10-27T14:41:08.115Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/chain-of-responsibility</loc>
<lastmod>2026-10-27T14:41:08.151Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/proxy-pattern</loc>
<lastmod>2026-10-27T14:41:08.292Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/options-and-configuration-patterns</loc>
<lastmod>2026-10-27T14:41:07.786Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/php-and-laravel-developer-roadmap</loc>
<lastmod>2026-10-27T14:40:26.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/importing-and-exporting-csv-in-laravel</loc>
<lastmod>2026-10-27T14:40:26.950Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generating-pdfs-in-laravel</loc>
<lastmod>2026-10-27T14:40:26.969Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tagging-and-cost-allocation</loc>
<lastmod>2026-10-27T14:41:13.270Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-nat-gateway-cost-trap</loc>
<lastmod>2026-10-27T14:41:13.307Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-large-documents</loc>
<lastmod>2026-10-27T14:40:12.123Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-mongodb-code</loc>
<lastmod>2026-10-27T14:40:12.251Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/null-and-missing-fields</loc>
<lastmod>2026-10-27T14:40:12.269Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-and-kafka</loc>
<lastmod>2026-10-27T14:40:12.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/savings-plans</loc>
<lastmod>2026-10-27T14:41:13.326Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/validating-inputs-with-preconditions</loc>
<lastmod>2026-10-27T14:39:53.551Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-mongodb-errors-and-fixes</loc>
<lastmod>2026-10-27T14:40:11.954Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mongodb-for-saas-products</loc>
<lastmod>2026-10-27T14:40:11.972Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-seo-checklist-for-ranking-pages</loc>
<lastmod>2026-10-27T14:39:16.415Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/nuxt-server-side-rendering</loc>
<lastmod>2026-10-27T14:39:16.517Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/a-nestjs-api-on-ecs-reference-architecture</loc>
<lastmod>2026-10-27T14:41:13.382Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/replace-access-keys-with-oidc</loc>
<lastmod>2026-10-27T14:41:13.437Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/infrastructure-as-code-on-aws</loc>
<lastmod>2026-10-27T14:41:13.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/localization-data-in-mongodb</loc>
<lastmod>2026-10-27T14:40:11.662Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retryable-writes-and-reads</loc>
<lastmod>2026-10-27T14:40:11.717Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aggregation-performance-tips</loc>
<lastmod>2026-10-27T14:40:11.791Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/envelope-encryption</loc>
<lastmod>2026-10-27T14:41:13.579Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/encryption-with-kms</loc>
<lastmod>2026-10-27T14:41:13.596Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/json-in-go</loc>
<lastmod>2026-10-27T14:40:07.586Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/worker-pools-in-go</loc>
<lastmod>2026-10-27T14:40:07.699Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/goroutines-vs-threads</loc>
<lastmod>2026-10-27T14:40:07.757Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-interfaces-explained</loc>
<lastmod>2026-10-27T14:40:07.826Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/route-53-health-checks-and-failover</loc>
<lastmod>2026-10-27T14:41:13.683Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-go-services-to-aws</loc>
<lastmod>2026-10-27T14:40:06.891Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/embedding-files-in-go-binaries</loc>
<lastmod>2026-10-27T14:40:06.909Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dockerizing-go-applications</loc>
<lastmod>2026-10-27T14:40:06.948Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grpc-with-go</loc>
<lastmod>2026-10-27T14:40:07.046Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-garbage-collector-basics</loc>
<lastmod>2026-10-27T14:40:07.066Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/orchestration-with-step-functions</loc>
<lastmod>2026-10-27T14:41:13.733Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticache-for-redis-and-valkey</loc>
<lastmod>2026-10-27T14:41:13.839Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-az-vs-read-replicas</loc>
<lastmod>2026-10-27T14:41:13.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-modules-and-versioning</loc>
<lastmod>2026-10-27T14:40:06.514Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scheduled-tasks-in-go</loc>
<lastmod>2026-10-27T14:40:06.588Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/clean-architecture-in-go</loc>
<lastmod>2026-10-27T14:40:06.677Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-go-and-production-apis-the-recap</loc>
<lastmod>2026-10-27T14:40:06.025Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/feature-flags-in-go-services</loc>
<lastmod>2026-10-27T14:40:06.082Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-templatefile-function</loc>
<lastmod>2026-10-27T14:39:53.571Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/go-templates-for-emails-and-html</loc>
<lastmod>2026-10-27T14:40:06.125Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-in-go-services</loc>
<lastmod>2026-10-27T14:40:06.185Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/saving-and-versioning-models</loc>
<lastmod>2026-10-27T14:40:32.543Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fine-tuning-vs-rag-vs-prompting</loc>
<lastmod>2026-10-27T14:40:32.617Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/resource-dependencies</loc>
<lastmod>2026-10-27T14:39:54.804Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-import-existing-resources</loc>
<lastmod>2026-10-27T14:39:54.854Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-expressions-and-functions</loc>
<lastmod>2026-10-27T14:39:54.890Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/managing-multiple-environments</loc>
<lastmod>2026-10-27T14:39:54.943Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/remote-state-with-s3-and-dynamodb-locking</loc>
<lastmod>2026-10-27T14:39:55.084Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ai-agents-explained</loc>
<lastmod>2026-10-27T14:40:32.654Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reducing-llm-costs</loc>
<lastmod>2026-10-27T14:40:32.673Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-terraform</loc>
<lastmod>2026-10-27T14:39:54.395Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-scanning-terraform-code</loc>
<lastmod>2026-10-27T14:39:54.412Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sqs-and-sns-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.565Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iam-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.666Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rds-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.701Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/bastion-free-access-with-ssm</loc>
<lastmod>2026-10-27T14:39:53.591Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/step-functions-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.664Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eventbridge-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.681Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-alerting</loc>
<lastmod>2026-10-27T14:39:10.798Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/alertmanager-configuration</loc>
<lastmod>2026-10-27T14:39:10.925Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/recording-rules</loc>
<lastmod>2026-10-27T14:39:10.959Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/histograms-and-percentiles</loc>
<lastmod>2026-10-27T14:39:10.995Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticache-redis-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.716Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-null-values-and-optional-attributes</loc>
<lastmod>2026-10-27T14:39:53.753Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/packer-with-terraform</loc>
<lastmod>2026-10-27T14:39:53.828Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/prometheus-in-kubernetes</loc>
<lastmod>2026-10-27T14:39:10.546Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-nginx</loc>
<lastmod>2026-10-27T14:39:10.603Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exporters-explained</loc>
<lastmod>2026-10-27T14:39:10.676Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-vs-ansible</loc>
<lastmod>2026-10-27T14:39:53.845Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-for-platform-teams</loc>
<lastmod>2026-10-27T14:39:53.862Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-discovery</loc>
<lastmod>2026-10-27T14:39:10.185Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retention-and-storage-planning</loc>
<lastmod>2026-10-27T14:39:10.241Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-vs-kibana</loc>
<lastmod>2026-10-27T14:39:10.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/burn-rate-alerts</loc>
<lastmod>2026-10-27T14:39:10.474Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/securing-prometheus-and-grafana</loc>
<lastmod>2026-10-27T14:39:10.165Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-checkout-sessions</loc>
<lastmod>2026-10-27T14:39:23.243Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-paymentintent-tutorial</loc>
<lastmod>2026-10-27T14:39:23.261Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-api-basics</loc>
<lastmod>2026-10-27T14:39:23.280Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stripe-account-setup-for-developers</loc>
<lastmod>2026-10-27T14:39:23.299Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/how-online-card-payments-work</loc>
<lastmod>2026-10-27T14:39:23.334Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eks-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.232Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-and-observability-roadmap</loc>
<lastmod>2026-10-27T14:39:09.709Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-grafana-mistakes</loc>
<lastmod>2026-10-27T14:39:09.742Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observability-maturity</loc>
<lastmod>2026-10-27T14:39:09.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/grafana-tips-and-tricks</loc>
<lastmod>2026-10-27T14:39:09.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/postmortems</loc>
<lastmod>2026-10-27T14:39:09.936Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/anomaly-detection-with-promql</loc>
<lastmod>2026-10-27T14:39:10.055Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-best-practices-checklist</loc>
<lastmod>2026-10-27T14:39:53.916Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-core-concepts</loc>
<lastmod>2026-10-27T14:39:06.195Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dashboards-for-executives</loc>
<lastmod>2026-10-27T14:39:09.360Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-multi-region-systems</loc>
<lastmod>2026-10-27T14:39:09.395Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-docker-hosts</loc>
<lastmod>2026-10-27T14:39:09.430Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/synthetic-vs-real-user-monitoring</loc>
<lastmod>2026-10-27T14:39:09.448Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/provider-lock-files</loc>
<lastmod>2026-10-27T14:39:53.986Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-performance-tips</loc>
<lastmod>2026-10-27T14:39:54.251Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-performance-tuning</loc>
<lastmod>2026-10-27T14:39:05.472Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cluster-health-explained</loc>
<lastmod>2026-10-27T14:39:05.508Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cardinality-aggregation</loc>
<lastmod>2026-10-27T14:39:05.761Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/date-histograms</loc>
<lastmod>2026-10-27T14:39:05.778Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fuzzy-search-and-typos</loc>
<lastmod>2026-10-27T14:39:05.861Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/disaster-recovery-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.031Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/static-website-hosting-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.107Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-on-aws</loc>
<lastmod>2026-10-27T14:39:05.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-site-search-for-a-blog</loc>
<lastmod>2026-10-27T14:39:05.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-with-dotnet</loc>
<lastmod>2026-10-27T14:39:05.317Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/centralized-logging-with-elasticsearch</loc>
<lastmod>2026-10-27T14:39:05.350Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/service-control-policies-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.161Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/multi-account-aws-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.178Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/learning-to-rank</loc>
<lastmod>2026-10-27T14:39:04.834Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/geo-search</loc>
<lastmod>2026-10-27T14:39:04.920Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/troubleshooting-slow-searches</loc>
<lastmod>2026-10-27T14:39:04.972Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/elasticsearch-vs-postgresql-full-text-search</loc>
<lastmod>2026-10-27T14:39:05.067Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exact-phrase-and-proximity-search</loc>
<lastmod>2026-10-27T14:39:04.484Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/classic-vs-block-themes</loc>
<lastmod>2026-10-27T14:39:28.219Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/theme-json-explained</loc>
<lastmod>2026-10-27T14:39:28.237Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/stores-vs-runes</loc>
<lastmod>2026-10-27T14:38:59.083Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/snippets-svelte-5-s-slots</loc>
<lastmod>2026-10-27T14:38:59.138Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/events-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:59.175Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/props-in-svelte-5</loc>
<lastmod>2026-10-27T14:38:59.192Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-management-in-plugins</loc>
<lastmod>2026-10-27T14:39:27.021Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/plugin-update-mechanisms</loc>
<lastmod>2026-10-27T14:39:27.042Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/motion-with-tweened-and-spring</loc>
<lastmod>2026-10-27T14:38:58.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/remote-functions</loc>
<lastmod>2026-10-27T14:38:58.684Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/seo-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.808Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rendering-options-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.825Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-directory-site-with-wordpress</loc>
<lastmod>2026-10-27T14:39:27.191Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/agency-workflows-for-wordpress</loc>
<lastmod>2026-10-27T14:39:27.243Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/updating-wordpress-safely</loc>
<lastmod>2026-10-27T14:39:27.263Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/internationalization-in-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.416Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tables-and-large-lists</loc>
<lastmod>2026-10-27T14:38:58.433Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-blog-with-sveltekit</loc>
<lastmod>2026-10-27T14:38:58.470Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-checkout-fields-in-woocommerce</loc>
<lastmod>2026-10-27T14:39:27.844Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/background-processing-with-action-scheduler</loc>
<lastmod>2026-10-27T14:39:27.918Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wp-cli-commands-you-will-use-daily</loc>
<lastmod>2026-10-27T14:39:27.951Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-speed-optimization</loc>
<lastmod>2026-10-27T14:39:28.049Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/users-roles-and-capabilities</loc>
<lastmod>2026-10-27T14:39:28.089Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-security-checklist</loc>
<lastmod>2026-10-27T14:39:28.146Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/gutenberg-blocks-your-first-custom-block</loc>
<lastmod>2026-10-27T14:39:28.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wpgraphql-basics</loc>
<lastmod>2026-10-27T14:39:28.365Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/headless-wordpress</loc>
<lastmod>2026-10-27T14:39:28.383Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-rest-api-tutorial</loc>
<lastmod>2026-10-27T14:39:28.417Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/settings-pages-with-the-settings-api</loc>
<lastmod>2026-10-27T14:39:28.453Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/meta-queries-and-performance</loc>
<lastmod>2026-10-27T14:39:28.506Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/custom-fields-and-meta</loc>
<lastmod>2026-10-27T14:39:28.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/wordpress-plugin-development-your-first-plugin</loc>
<lastmod>2026-10-27T14:39:28.613Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hooks-actions-and-filters</loc>
<lastmod>2026-10-27T14:39:28.649Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-local-wordpress-environment</loc>
<lastmod>2026-10-27T14:39:28.685Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/100-days-of-playwright-and-browser-automation-the-recap</loc>
<lastmod>2026-10-27T14:39:31.529Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/reviewing-e2e-tests-in-pull-requests</loc>
<lastmod>2026-10-27T14:39:31.548Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/global-setup-and-teardown</loc>
<lastmod>2026-10-27T14:39:31.745Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-tables-and-lists</loc>
<lastmod>2026-10-27T14:39:31.781Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-test-strategy-for-a-saas-app</loc>
<lastmod>2026-10-27T14:39:31.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-e2e-testing-mistakes</loc>
<lastmod>2026-10-27T14:39:31.869Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-playwright-errors-and-fixes</loc>
<lastmod>2026-10-27T14:39:31.887Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-in-docker</loc>
<lastmod>2026-10-27T14:39:31.959Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/speeding-up-slow-playwright-suites</loc>
<lastmod>2026-10-27T14:39:32.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/when-to-write-e2e-vs-unit-tests</loc>
<lastmod>2026-10-27T14:39:32.056Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/network-throttling-and-offline-tests</loc>
<lastmod>2026-10-27T14:39:32.134Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/generating-pdfs-with-playwright</loc>
<lastmod>2026-10-27T14:39:32.190Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/browser-automation-beyond-testing</loc>
<lastmod>2026-10-27T14:39:32.208Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/playwright-with-dotnet-and-java</loc>
<lastmod>2026-10-27T14:39:32.225Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cost-estimation-with-infracost</loc>
<lastmod>2026-10-27T14:39:54.341Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-in-ci-cd-with-github-actions</loc>
<lastmod>2026-10-27T14:39:54.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-vs-cloudformation</loc>
<lastmod>2026-10-27T14:39:54.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/secrets-in-terraform</loc>
<lastmod>2026-10-27T14:39:54.549Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/s3-buckets-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.684Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-ec2-with-terraform</loc>
<lastmod>2026-10-27T14:39:54.751Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-workspaces-vs-directories</loc>
<lastmod>2026-10-27T14:39:54.963Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/locals-in-terraform</loc>
<lastmod>2026-10-27T14:39:55.124Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-variables</loc>
<lastmod>2026-10-27T14:39:55.161Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-providers-explained</loc>
<lastmod>2026-10-27T14:39:55.180Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-terraform-workflow-init-plan-apply</loc>
<lastmod>2026-10-27T14:39:55.217Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/terraform-aws-tutorial-getting-started</loc>
<lastmod>2026-10-27T14:39:55.235Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/calling-llm-apis-from-a-backend</loc>
<lastmod>2026-10-27T14:40:32.779Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rag-implementation-tutorial</loc>
<lastmod>2026-10-27T14:40:32.832Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/semantic-search-with-pgvector</loc>
<lastmod>2026-10-27T14:40:32.850Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/embeddings-explained</loc>
<lastmod>2026-10-27T14:40:32.886Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/neural-networks-explained-simply</loc>
<lastmod>2026-10-27T14:40:32.974Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/time-series-forecasting-basics</loc>
<lastmod>2026-10-27T14:40:33.015Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/imbalanced-classification</loc>
<lastmod>2026-10-27T14:40:33.093Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hyperparameter-tuning</loc>
<lastmod>2026-10-27T14:40:33.111Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scikit-learn-pipelines</loc>
<lastmod>2026-10-27T14:40:33.152Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/handling-missing-values</loc>
<lastmod>2026-10-27T14:40:33.208Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/overfitting-and-underfitting</loc>
<lastmod>2026-10-27T14:40:33.244Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/precision-vs-recall-explained</loc>
<lastmod>2026-10-27T14:40:33.298Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/decision-trees-and-random-forests</loc>
<lastmod>2026-10-27T14:40:33.334Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scikit-learn-tutorial-your-first-model</loc>
<lastmod>2026-10-27T14:40:33.421Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/data-visualization-for-ml</loc>
<lastmod>2026-10-27T14:40:33.460Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/exploratory-data-analysis-checklist</loc>
<lastmod>2026-10-27T14:40:33.478Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/numpy-basics-for-ml</loc>
<lastmod>2026-10-27T14:40:33.518Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/setting-up-a-python-ml-environment</loc>
<lastmod>2026-10-27T14:40:33.537Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/server-sent-events-in-fastapi</loc>
<lastmod>2026-10-27T14:40:39.013Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-dependency-injection-without-a-framework</loc>
<lastmod>2026-10-27T14:40:39.051Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-middleware-explained</loc>
<lastmod>2026-10-27T14:40:39.087Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-dependency-injection-for-auth-and-roles</loc>
<lastmod>2026-10-27T14:40:39.125Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-project-structure-for-large-codebases</loc>
<lastmod>2026-10-27T14:40:39.201Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/upgrading-python-versions-safely</loc>
<lastmod>2026-10-27T14:40:39.220Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-and-ai-calling-llm-apis</loc>
<lastmod>2026-10-27T14:40:39.257Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-python-microservice</loc>
<lastmod>2026-10-27T14:40:39.313Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-common-mistakes</loc>
<lastmod>2026-10-27T14:40:39.331Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/common-python-errors-and-fixes</loc>
<lastmod>2026-10-27T14:40:39.370Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/building-a-crud-api-with-fastapi-and-sqlalchemy</loc>
<lastmod>2026-10-27T14:40:39.428Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-for-web-scraping-responsibly</loc>
<lastmod>2026-10-27T14:40:39.446Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/opentelemetry-tracing-in-fastapi</loc>
<lastmod>2026-10-27T14:40:39.573Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/observability-for-python-services</loc>
<lastmod>2026-10-27T14:40:39.592Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-fastapi-with-docker</loc>
<lastmod>2026-10-27T14:40:39.663Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profiling-slow-python-code</loc>
<lastmod>2026-10-27T14:40:39.718Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sending-email-from-python-apps</loc>
<lastmod>2026-10-27T14:40:39.828Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/hashing-passwords-in-python</loc>
<lastmod>2026-10-27T14:40:39.865Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/security-checklist-for-python-apis</loc>
<lastmod>2026-10-27T14:40:39.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-async-patterns-for-apis</loc>
<lastmod>2026-10-27T14:40:39.938Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/repository-pattern-in-python</loc>
<lastmod>2026-10-27T14:40:39.992Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sqlalchemy-relationships-and-loading</loc>
<lastmod>2026-10-27T14:40:40.064Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/celery-for-background-jobs</loc>
<lastmod>2026-10-27T14:40:40.143Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-signals-use-with-care</loc>
<lastmod>2026-10-27T14:40:40.179Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-rest-framework-tutorial</loc>
<lastmod>2026-10-27T14:40:40.297Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-django-admin-used-well</loc>
<lastmod>2026-10-27T14:40:40.316Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-orm-queries-you-will-use-daily</loc>
<lastmod>2026-10-27T14:40:40.351Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/django-project-vs-app</loc>
<lastmod>2026-10-27T14:40:40.388Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-fastapi-with-pytest</loc>
<lastmod>2026-10-27T14:40:40.443Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-middleware-and-cors</loc>
<lastmod>2026-10-27T14:40:40.481Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-authentication-with-jwt</loc>
<lastmod>2026-10-27T14:40:40.569Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/organizing-a-fastapi-project</loc>
<lastmod>2026-10-27T14:40:40.586Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dependency-injection-in-fastapi</loc>
<lastmod>2026-10-27T14:40:40.604Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-tutorial-your-first-api</loc>
<lastmod>2026-10-27T14:40:40.657Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fastapi-vs-django-which-should-you-choose</loc>
<lastmod>2026-10-27T14:40:40.675Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/context-managers-and-the-with-statement</loc>
<lastmod>2026-10-27T14:40:40.729Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-async-await-explained</loc>
<lastmod>2026-10-27T14:40:40.783Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-data-structures-you-should-know</loc>
<lastmod>2026-10-27T14:40:40.839Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/python-type-hints-explained</loc>
<lastmod>2026-10-27T14:40:40.857Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/why-python-is-a-great-backend-language</loc>
<lastmod>2026-10-27T14:40:40.892Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/modular-monoliths-with-spring-modulith</loc>
<lastmod>2026-10-27T14:40:45.583Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/fixing-circular-dependencies-in-spring</loc>
<lastmod>2026-10-27T14:40:45.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-interview-questions-collections-and-concurrency</loc>
<lastmod>2026-10-27T14:40:45.688Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/monitoring-spring-boot-with-prometheus-and-grafana</loc>
<lastmod>2026-10-27T14:40:45.706Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/profiling-java-with-jdk-flight-recorder</loc>
<lastmod>2026-10-27T14:40:45.723Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/deploying-spring-boot-to-aws</loc>
<lastmod>2026-10-27T14:40:45.797Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jvm-memory-flags-in-containers</loc>
<lastmod>2026-10-27T14:40:45.815Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/graalvm-native-images-for-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.832Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/saga-pattern-with-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.921Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/circuit-breakers-with-resilience4j</loc>
<lastmod>2026-10-27T14:40:45.941Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rabbitmq-messaging-with-spring-boot</loc>
<lastmod>2026-10-27T14:40:45.976Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/centralized-config-in-spring-microservices</loc>
<lastmod>2026-10-27T14:40:46.017Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-gateway-with-spring-cloud-gateway</loc>
<lastmod>2026-10-27T14:40:46.037Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/testing-spring-security-rules</loc>
<lastmod>2026-10-27T14:40:46.079Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/controller-tests-with-webmvctest</loc>
<lastmod>2026-10-27T14:40:46.213Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/unit-testing-with-junit-5-and-mockito</loc>
<lastmod>2026-10-27T14:40:46.248Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/securing-spring-boot-actuator-endpoints</loc>
<lastmod>2026-10-27T14:40:46.266Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/oauth2-login-with-google-in-spring-boot</loc>
<lastmod>2026-10-27T14:40:46.301Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/password-hashing-with-bcrypt-in-spring</loc>
<lastmod>2026-10-27T14:40:46.355Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/caching-with-cacheable-and-redis</loc>
<lastmod>2026-10-27T14:40:46.406Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/dynamic-filters-with-jpa-specifications</loc>
<lastmod>2026-10-27T14:40:46.440Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/tuning-hikaricp-connection-pools</loc>
<lastmod>2026-10-27T14:40:46.460Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/database-migrations-with-flyway</loc>
<lastmod>2026-10-27T14:40:46.477Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/optimistic-locking-with-version</loc>
<lastmod>2026-10-27T14:40:46.495Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jpa-entities-and-relationships</loc>
<lastmod>2026-10-27T14:40:46.582Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/retries-and-timeouts-with-resilience4j</loc>
<lastmod>2026-10-27T14:40:46.616Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/calling-other-services-restclient-and-webclient</loc>
<lastmod>2026-10-27T14:40:46.633Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-versioning-strategies-in-spring-boot</loc>
<lastmod>2026-10-27T14:40:46.668Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/faster-feedback-with-spring-boot-devtools</loc>
<lastmod>2026-10-27T14:40:46.704Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-actuator-health-and-metrics</loc>
<lastmod>2026-10-27T14:40:46.722Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/logging-in-spring-boot-with-slf4j</loc>
<lastmod>2026-10-27T14:40:46.740Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/mapping-dtos-with-mapstruct</loc>
<lastmod>2026-10-27T14:40:46.758Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-validation-with-bean-validation</loc>
<lastmod>2026-10-27T14:40:46.828Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-configuration-and-profiles</loc>
<lastmod>2026-10-27T14:40:46.864Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-bean-scopes-explained</loc>
<lastmod>2026-10-27T14:40:46.881Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/spring-boot-tutorial-your-first-rest-api</loc>
<lastmod>2026-10-27T14:40:46.935Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/jvm-memory-explained-heap-stack-and-metaspace</loc>
<lastmod>2026-10-27T14:40:47.041Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/checked-vs-unchecked-exceptions-in-java</loc>
<lastmod>2026-10-27T14:40:47.146Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/sealed-classes-and-pattern-matching</loc>
<lastmod>2026-10-27T14:40:47.164Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/java-records-data-classes-without-boilerplate</loc>
<lastmod>2026-10-27T14:40:47.266Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/rds-postgresql-in-production</loc>
<lastmod>2026-10-27T14:41:13.942Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/cloudfront-essentials</loc>
<lastmod>2026-10-27T14:41:13.975Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/s3-deep-dive</loc>
<lastmod>2026-10-27T14:41:14.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/api-gateway-rest-vs-http-apis</loc>
<lastmod>2026-10-27T14:41:14.095Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/eks-when-kubernetes-on-aws-makes-sense</loc>
<lastmod>2026-10-27T14:41:14.205Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/scan-images-on-push</loc>
<lastmod>2026-10-27T14:41:14.223Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/ecr-and-image-management</loc>
<lastmod>2026-10-27T14:41:14.241Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/containers-with-ecs-fargate</loc>
<lastmod>2026-10-27T14:41:14.277Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/load-balancers-alb-vs-nlb</loc>
<lastmod>2026-10-27T14:41:14.313Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/vpc-endpoints</loc>
<lastmod>2026-10-27T14:41:14.427Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/aws-cli-profiles-and-sso</loc>
<lastmod>2026-10-27T14:41:14.498Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/lock-away-the-root-user</loc>
<lastmod>2026-10-27T14:41:14.559Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/iam-fundamentals</loc>
<lastmod>2026-10-27T14:41:14.579Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/blog/the-aws-mental-model</loc>
<lastmod>2026-10-27T14:41:14.618Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/interviews/dotnet-interview-questions</loc>
<lastmod>2026-10-28T17:13:26.587Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://expona.dev/category/ai-ml</loc>
<lastmod>2026-10-27T13:21:38.204Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/backend</loc>
<lastmod>2026-10-27T13:21:55.527Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/architecture</loc>
<lastmod>2026-10-27T13:22:23.228Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/cloud-devops</loc>
<lastmod>2026-10-27T13:22:40.961Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/data-streaming</loc>
<lastmod>2026-10-27T13:22:55.572Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/security</loc>
<lastmod>2026-10-27T13:23:11.237Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/testing</loc>
<lastmod>2026-10-27T13:23:33.680Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/frontend</loc>
<lastmod>2026-10-27T13:23:54.418Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/leadership-career</loc>
<lastmod>2026-10-27T13:24:23.230Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/mobile</loc>
<lastmod>2026-10-27T13:24:39.708Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/category/seo-growth</loc>
<lastmod>2026-10-27T13:25:01.928Z</lastmod>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/dotnet-and-aspdotnet-core</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/nestjs</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/react-and-next-js</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/technical-seo-for-developers</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/kafka-and-websockets</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/aws-for-developers</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/design-patterns-in-practice</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/javascript-and-typescript</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/flutter</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/engineering-craft</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/java-spring-framework-and-spring-boot</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/python-backend-development</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/practical-ai-and-machine-learning</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/php-and-laravel-development</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/mongodb-nosql-and-data-modeling</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/go-programming-and-production-apis</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/terraform-iac-and-cloud-automation</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/git-and-github-for-professional-developers</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/modern-android-and-kotlin</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/swift-swiftui-and-ios-apps</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/playwright-and-browser-automation</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/wordpress-development-and-plugins</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/payment-engineering-and-stripe-integration</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/vue-js-and-nuxt</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/prometheus-grafana-and-monitoring</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/elasticsearch-and-search-engineering</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/svelte-and-sveltekit</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/rust-programming</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/apache-spark-and-data-engineering</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/series/ruby-on-rails</loc>
<priority>0.6</priority>
</url>
<url>
<loc>https://expona.dev/tag/performance</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/databases</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/testing</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/apis</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/devops</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/security</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/architecture</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/state-management</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/php</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/ai</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/real-time</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/career</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/android</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/apachespark</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/aws</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/cloud</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/csharp</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/dart</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/dataengineering</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/designpatterns</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/dotnet</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/elasticsearch</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/fastapi</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/flutter</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/git</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/github</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/go</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/grafana</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/iac</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/java</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/javascript</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/kafka</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/kotlin</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/laravel</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/machinelearning</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/mongodb</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/nestjs</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/nextjs</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/nodejs</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/nosql</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/nuxt</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/payments</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/playwright</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/prometheus</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/python</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/react</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/ruby</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/rubyonrails</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/rust</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/search</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/seo</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/softwaredesign</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/softwareengineering</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/springboot</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/stripe</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/svelte</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/sveltekit</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/swift</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/swiftui</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/systemdesign</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/technicalseo</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/terraform</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/typescript</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/vuejs</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/websockets</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/wordpress</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/golang</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/tag/rustlang</loc>
<priority>0.4</priority>
</url>
<url>
<loc>https://expona.dev/author/expona-admin</loc>
<priority>0.4</priority>
</url>
</urlset>
