<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://tigerabrodi.blog/why-skinned-meshes-are-hard-to-render-at-scale</loc>
    <lastmod>2026-04-06T23:59:38.606Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/fix-transparent-header-cells-on-horizontal-scroll-with-tanstack-table-tanstack-virtual</loc>
    <lastmod>2026-04-06T23:56:01.040Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-platforms-like-instagram-protect-their-videos</loc>
    <lastmod>2026-04-06T23:54:43.986Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-implement-spring-physics-buttons-with-framer-motion</loc>
    <lastmod>2026-04-06T23:45:22.535Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/dynamic-og-images-for-a-vite-spa-with-convex</loc>
    <lastmod>2026-04-04T23:00:38.049Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-build-a-performant-ai-markdown-renderer</loc>
    <lastmod>2026-03-29T22:15:06.461Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/i-dug-into-pretext-codebase-lessons-we-can-learn</loc>
    <lastmod>2026-03-29T11:50:10.088Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/when-do-you-really-need-starttransition</loc>
    <lastmod>2026-03-28T23:19:07.973Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/when-index-based-keys-aren-t-just-fine-they-re-what-you-should-use</loc>
    <lastmod>2026-03-28T20:48:30.301Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-fix-audiocontext-was-not-allowed-to-start-in-chrome</loc>
    <lastmod>2026-03-22T23:53:51.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/fixing-cmdk-scroll-inside-a-dialog-the-one-prop-nobody-tries-first</loc>
    <lastmod>2026-03-21T23:15:30.868Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/styling-sonner-toasts-advanced-guide</loc>
    <lastmod>2026-03-21T23:31:21.224Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-add-api-keys-to-your-saas-with-convex</loc>
    <lastmod>2026-03-15T10:05:58.755Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/why-clean-code-matters-more-than-ever</loc>
    <lastmod>2026-03-13T16:25:02.828Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/reflection-the-engineer-i-aspire-to-be</loc>
    <lastmod>2026-03-13T15:23:08.194Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/why-your-input-loses-focus-inside-a-radix-context-menu-and-how-to-fix-it</loc>
    <lastmod>2026-03-11T16:51:16.014Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/stripe-lifetime-access-with-convex</loc>
    <lastmod>2026-03-05T22:41:23.363Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/practical-prompt-engineering-lessons</loc>
    <lastmod>2026-03-05T16:20:51.078Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-fix-framer-motion-animatepresence-collapse-leaving-a-gap</loc>
    <lastmod>2026-03-04T17:09:45.975Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-build-a-proper-auto-growing-textarea</loc>
    <lastmod>2026-03-04T11:07:25.092Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-handle-trackpad-pinch-to-zoom-vs-two-finger-scroll-in-javascript-canvas-apps</loc>
    <lastmod>2026-03-04T10:03:14.851Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/why-every-sound-in-your-game-is-the-wrong-volume</loc>
    <lastmod>2026-03-02T17:30:39.103Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/ai-sdk-v6-foundations-quick-reference</loc>
    <lastmod>2026-03-01T22:37:46.999Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/convex-environment-variables-reference</loc>
    <lastmod>2026-03-01T22:05:08.798Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/running-convex-functions-from-the-cli</loc>
    <lastmod>2026-03-01T22:04:52.930Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/convex-auth-github-google-oauth-reference</loc>
    <lastmod>2026-03-01T22:04:24.294Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/tanstack-router-convex-client-side-react-reference</loc>
    <lastmod>2026-03-01T22:04:12.235Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/fal-with-nano-banana-2-api-reference</loc>
    <lastmod>2026-03-01T22:03:32.941Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/3d-models-for-dummies-a-visual-guide</loc>
    <lastmod>2026-02-17T16:41:43.374Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/what-are-images</loc>
    <lastmod>2026-02-16T17:07:13.648Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/what-is-audio</loc>
    <lastmod>2026-02-15T17:03:13.255Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/why-redis-is-fast</loc>
    <lastmod>2026-02-15T16:20:25.034Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/things-your-browser-does-behind-your-back</loc>
    <lastmod>2026-02-14T17:26:44.362Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/why-your-gpu-hates-png</loc>
    <lastmod>2026-02-13T16:53:39.787Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/how-to-get-webgpu-in-headless-chrome-on-cloud-gpus</loc>
    <lastmod>2026-02-13T04:57:22.607Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/my-struggles-with-sleep-as-a-programmer</loc>
    <lastmod>2026-02-09T02:09:15.829Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/understanding-web-assembly</loc>
    <lastmod>2026-02-09T02:03:48.535Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/notes-of-studying-audio-and-images</loc>
    <lastmod>2026-02-08T18:51:13.666Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/grass-in-ghost-of-tsushima</loc>
    <lastmod>2026-02-08T18:07:34.905Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/game-foliage-rendering</loc>
    <lastmod>2026-01-08T09:27:12.258Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/sprite-sheet-vs-atlas</loc>
    <lastmod>2026-01-08T09:03:49.706Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/cpu-performance-objects-vs-arrays</loc>
    <lastmod>2026-01-08T09:01:47.777Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/cloudflare-durable-objects-reference-sheet</loc>
    <lastmod>2025-08-11T17:02:51.259Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/cloudflare-d1-reference-sheet</loc>
    <lastmod>2025-08-10T07:42:35.311Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/cloudflare-workers-reference-sheet</loc>
    <lastmod>2025-08-10T07:09:31.722Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/cloudflare-kv-reference-sheet</loc>
    <lastmod>2025-08-10T07:09:00.976Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/javascript-math-reference</loc>
    <lastmod>2025-07-14T03:25:30.454Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/actionable-gamification-notes</loc>
    <lastmod>2025-07-14T03:24:15.283Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/svg-path-morph-animations</loc>
    <lastmod>2025-07-13T12:52:12.063Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tigerabrodi.blog/svg-morph-animation-reference</loc>
    <lastmod>2025-07-13T12:51:10.421Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>