<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://raheelshan.com</loc><changefreq>daily</changefreq><priority>1.0</priority></url><url><loc>https://raheelshan.com/posts/things-codeigniter-lacks</loc><lastmod>2025-09-05T10:18:01+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/if-binding-magic-avoiding-duplication-problem-in-header-element-ids</loc><lastmod>2026-09-09T15:25:11+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/with-binding-magic-make-parent-and-child-structure-in-your-app-with-knockoutjs</loc><lastmod>2026-09-09T15:25:15+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/knockoutjs-list-alternate-of-checkbox-and-radio</loc><lastmod>2026-09-09T15:25:04+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/with-binding-magic-writing-single-page-application-with-jquery-mobile-and-knockoutjs</loc><lastmod>2025-09-03T15:43:59+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/load-html-file-in-chrome-plugin-the-easy-way</loc><lastmod>2025-09-08T11:42:56+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/create-chrome-plugin-with-knockoutjs</loc><lastmod>2025-09-05T01:42:34+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/knockout-view-loader-plugin</loc><lastmod>2025-09-02T02:07:34+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-business-logic-a-cleaner-smarter-approach</loc><lastmod>2025-09-08T17:22:54+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/say-goodbye-to-media-queries-print-fully-styled-html-content</loc><lastmod>2025-09-08T14:45:51+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/tired-of-endless-scrolling-navigate-large-tables-with-a-better-ux</loc><lastmod>2026-09-09T15:25:22+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/3-powerful-laravel-routing-techniques-you-should-be-using</loc><lastmod>2025-09-08T08:36:15+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-routing-deep-dive-a-complete-guide</loc><lastmod>2025-09-08T13:45:15+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/definitive-solution-for-unable-to-locate-file-in-vite-manifest-in-laravel</loc><lastmod>2025-09-08T08:40:30+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/why-i-moved-from-bare-img-to-picture-with-img-a-better-approach</loc><lastmod>2025-09-08T08:31:34+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-crud-like-a-pro-clean-reusable-and-ultra-minimal-code</loc><lastmod>2026-09-09T15:25:07+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-crud-like-a-pro-part-2-the-end-of-redundant-forms-with-findornew-old</loc><lastmod>2025-09-08T11:15:22+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/introducing-the-atomic-query-construction-aqc-design-pattern</loc><lastmod>2026-03-15T20:59:30+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-architecture-evolved-aqc-took-over-everything</loc><lastmod>2026-03-15T20:59:40+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/atomic-query-construction-aqc-design-pattern-explained</loc><lastmod>2026-03-15T20:59:51+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/skip-the-complexity-html-to-pdf-made-simple</loc><lastmod>2025-09-08T12:53:47+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/dont-cram-logic-into-if-give-it-a-name</loc><lastmod>2025-09-08T14:17:11+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/inline-string-comparisons-are-code-smells-eliminate-them</loc><lastmod>2025-09-08T12:53:26+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/filtering-data-the-smart-way-jquery-datatables</loc><lastmod>2025-09-08T14:14:39+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/avoid-the-mess-structuring-laravel-view-data-with-viewmodels</loc><lastmod>2025-09-12T10:33:26+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/distributed-business-logic-with-laravel-observers-let-models-mind-their-own-business</loc><lastmod>2025-09-08T08:46:10+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/web-transition-part-1-of-4-the-original-web</loc><lastmod>2025-09-08T07:17:32+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/web-transition-part-2-of-4-the-ajax-jquery-awakening</loc><lastmod>2025-09-02T07:46:23+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/web-transition-part-3-of-4-the-spa-takeover</loc><lastmod>2025-09-02T07:47:02+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/web-transition-part-4-of-4-the-return-to-simplicity</loc><lastmod>2025-09-05T00:56:13+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/skip-json-use-blade-a-simpler-way-to-build-dynamic-laravel-uis-without-js-frameworks</loc><lastmod>2025-09-08T03:04:56+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/skip-livewire-why-laravel-blade-aqc-alpine-might-be-all-you-need</loc><lastmod>2025-09-07T04:11:04+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-livewire-understanding-how-livewire-works-under-the-hood</loc><lastmod>2025-09-07T19:18:56+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/broken-forms-and-vanishing-inputs-how-html5-fixes-it</loc><lastmod>2025-09-04T19:20:25+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/develop-react-native-apps-without-emulator-or-simulator-just-mirror</loc><lastmod>2025-09-07T06:23:25+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/why-ai-platforms-like-chatgpt-gemini-claude-and-others-are-unreliable</loc><lastmod>2025-09-07T14:12:45+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/the-journey-of-a-web-request-part-1-domains</loc><lastmod>2025-11-09T06:58:38+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/repository-pattern-vs-atomic-query-construction-aqc-design-pattern</loc><lastmod>2025-09-07T03:13:03+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/what-you-really-need-is-event-based-laravel</loc><lastmod>2025-09-14T14:39:25+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/stop-guessing-in-laravel-blade-real-autocomplete-with-php-tools-by-devsense</loc><lastmod>2025-09-14T12:52:45+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/fully-typed-blade-views-and-partials-in-laravel</loc><lastmod>2025-09-08T16:53:56+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-blade-but-smarter-autocomplete-and-dto-discipline-with-viewmodels-and-strict-access</loc><lastmod>2025-09-08T17:22:16+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/stop-treating-your-blade-files-like-trash-bins-give-them-contracts-and-structure</loc><lastmod>2026-09-09T15:24:57+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-doesnt-need-graphql-part-1-use-dtos-and-aqc-for-exact-data</loc><lastmod>2025-10-01T18:15:55+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-doesnt-need-graphql-part-2-use-components-with-props-for-exact-data</loc><lastmod>2025-10-01T16:30:34+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/livewire-without-livewire-inertia-without-inertia-graphql-without-graphql-and-all-with-plain-laravel</loc><lastmod>2025-10-14T11:37:10+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/the-hidden-power-of-jqueryon-handling-future-elements-like-a-time-traveler</loc><lastmod>2025-10-07T08:56:57+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/im-so-looking-forward-to-not-needing-a-build-system-again</loc><lastmod>2025-10-19T18:37:43+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-blade-partial-api-pattern-with-htmx</loc><lastmod>2026-09-09T15:25:18+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/laravel-blade-partial-api-pattern-fetching-data-the-missing-part</loc><lastmod>2025-11-01T12:11:03+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/my-2026-roadmap-what-im-actually-going-to-ship</loc><lastmod>2026-01-01T10:30:11+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/four-ways-to-trigger-delete-row-from-a-table</loc><lastmod>2026-03-09T14:18:17+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/i-built-jsribbon-a-dom-first-reactive-library-without-virtual-dom</loc><lastmod>2026-02-21T22:09:33+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/write-one-query-class-instead-of-many-the-aqc-design-pattern</loc><lastmod>2026-03-15T21:00:39+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/atomic-query-construction-aqc-design-pattern-a-practical-crud-implementation-guide</loc><lastmod>2026-03-17T21:05:43+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/why-atomic-query-construction-aqc-intentionally-uses-arrays-instead-of-dtos</loc><lastmod>2026-03-16T22:08:13+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/working-with-relational-data-in-atomic-query-construction-design-pattern</loc><lastmod>2026-03-27T19:46:11+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/why-the-atomic-query-construction-aqc-design-pattern-works-best-with-onion-architecture</loc><lastmod>2026-03-25T03:40:09+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/the-reasoning-behind-aqc-class-design-choices</loc><lastmod>2026-03-17T18:24:04+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/atomic-query-construction-vs-command-query-responsibility-segregation</loc><lastmod>2026-03-17T21:37:24+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/stop-writing-queries-everywhere-the-atomic-habit-your-laravel-codebase-needs</loc><lastmod>2026-03-22T21:49:57+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/composing-clean-api-queries-with-jquery-datatables-and-atomic-query-construction</loc><lastmod>2026-03-27T15:58:56+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/atomic-query-construction-design-pattern-eliminating-repeated-query-snippets-for-good</loc><lastmod>2026-03-27T14:46:11+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/aqc-vs-graphql-achieving-graphql-level-flexibility-in-laravel-without-graphql</loc><lastmod>2026-09-09T16:38:23+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com/posts/how-to-prevent-aqc-classes-from-becoming-too-large</loc><lastmod>2026-03-27T19:54:02+05:00</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url><url><loc>https://raheelshan.com</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://raheelshan.com/posts</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://raheelshan.com/collections/chrome-extension/leadpin</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://raheelshan.com/collections/laravel-applications/whatsapp-switchboard</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://raheelshan.com/contact</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>https://raheelshan.com/about</loc><lastmod>2026-09-01T00:00:00+05:00</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url></urlset>