<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//blog.curbas.dev/sitemap.xsl"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><url><loc>https://blog.curbas.dev/scalable-push-notifications-architecture-a-language-agnostic-approach/</loc><lastmod>2025-10-22T12:36:10.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/10/Zrzut-ekranu-2020-08-17-o-09.webp</image:loc><image:caption>Zrzut-ekranu-2020-08-17-o-09.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/database-selection-guide-choosing-the-right-tool-for-every-job-2025/</loc><lastmod>2025-09-26T18:08:18.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/09/decisionflow.webp</image:loc><image:caption>decisionflow.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/practical-caching-recipes-for-next-js-app-router/</loc><lastmod>2025-09-17T10:00:31.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/09/unnamed.png</image:loc><image:caption>unnamed.png</image:caption></image:image></url><url><loc>https://blog.curbas.dev/advanced-app-router-routing-patterns-next-js/</loc><lastmod>2025-09-03T07:00:38.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/09/assets_task_01k45dam4wf97sy75kvs63n7w7_1756823516_img_0.webp</image:loc><image:caption>assets_task_01k45dam4wf97sy75kvs63n7w7_1756823516_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/a-practical-guide-to-frontend-testing/</loc><lastmod>2025-08-29T07:00:25.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/IMG_1447.jpeg</image:loc><image:caption>IMG_1447.jpeg</image:caption></image:image></url><url><loc>https://blog.curbas.dev/better-auth-the-game-changer-js-authentication-has-been-waiting-for/</loc><lastmod>2025-08-28T07:00:45.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k3kttncdfqktkxr0tf5sjer2_1756233692_img_0.webp</image:loc><image:caption>assets_task_01k3kttncdfqktkxr0tf5sjer2_1756233692_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/the-ultimate-front-end-performance-playbook-2025/</loc><lastmod>2025-08-27T07:00:35.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k3ksxe3efb58bk35864jeeec_1756232732_img_1.webp</image:loc><image:caption>assets_task_01k3ksxe3efb58bk35864jeeec_1756232732_img_1.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/if-you-are-a-front-end-dev-you-need-to-know-about-that-throttle-vs-debounce/</loc><lastmod>2025-08-26T07:30:42.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k39h5f8yetjaw8fa35wfpzvq_1755888016_img_0.webp</image:loc><image:caption>assets_task_01k39h5f8yetjaw8fa35wfpzvq_1755888016_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/graceful-degradation-designing-systems-that-fail-well/</loc><lastmod>2025-08-25T07:00:34.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k39dg0mjerz80j94hcs6ctkq_1755884164_img_1.webp</image:loc><image:caption>assets_task_01k39dg0mjerz80j94hcs6ctkq_1755884164_img_1.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/observability-seeing-inside-your-systems-before-they-break/</loc><lastmod>2025-08-24T07:00:05.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k39dpmxhfbgbxpp91k569jj8_1755884382_img_1.webp</image:loc><image:caption>assets_task_01k39dpmxhfbgbxpp91k569jj8_1755884382_img_1.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/building-resilient-systems-a-practical-guide-to-circuit-breakers-retries-and-backpressure/</loc><lastmod>2025-08-23T07:00:36.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k39cg57rfz6v9456xj10xpbk_1755883124_img_0.webp</image:loc><image:caption>assets_task_01k39cg57rfz6v9456xj10xpbk_1755883124_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/big-o-notation-for-beginners-a-javascript-developers-guide/</loc><lastmod>2025-08-22T15:52:54.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k3978rqceekbc2avst1phcht_1755877637_img_0.webp</image:loc><image:caption>assets_task_01k3978rqceekbc2avst1phcht_1755877637_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/my-favorite-front-end-tools-a-developers-arsenal-for-modern-web-development/</loc><lastmod>2025-08-21T18:00:11.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k36w9wypfgyr695ez15s7nzy_1755799037_img_0.webp</image:loc><image:caption>assets_task_01k36w9wypfgyr695ez15s7nzy_1755799037_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/modern-frameworks-next-js-vs-remix-vs-astro/</loc><lastmod>2025-08-21T17:57:11.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k33xbc7bfxvv8ph7ryjcb8kh_1755699487_img_1--1-.webp</image:loc><image:caption>assets_task_01k33xbc7bfxvv8ph7ryjcb8kh_1755699487_img_1--1-.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/step-by-step-guide-configuring-terraform-for-aws/</loc><lastmod>2025-08-21T17:56:21.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k36j7qxhfvj83gjykaepxnpv_1755788489_img_0.webp</image:loc><image:caption>assets_task_01k36j7qxhfvj83gjykaepxnpv_1755788489_img_0.webp</image:caption></image:image></url><url><loc>https://blog.curbas.dev/from-junior-to-senior-your-modern-web-developer-roadmap/</loc><lastmod>2025-08-21T17:16:03.000Z</lastmod><image:image><image:loc>https://blog.curbas.dev/content/images/2025/08/assets_task_01k36exywde5vaxf44zdvmc2ap_1755785016_img_1.webp</image:loc><image:caption>assets_task_01k36exywde5vaxf44zdvmc2ap_1755785016_img_1.webp</image:caption></image:image></url></urlset>