<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Writing · Hamza Kargin</title><description>Notes on the things I build and the tools I use.</description><link>https://hamzakargin.com</link><language>en</language><item><title>Why I Moved My Portfolio From Next.js to Astro</title><link>https://hamzakargin.com/blog/next-to-astro</link><guid isPermaLink="true">https://hamzakargin.com/blog/next-to-astro</guid><description>My personal site shipped 296 KB of JavaScript to show some text. Now it ships 2.5 KB. Here is why I switched and what changed.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>astro</category><category>nextjs</category><category>performance</category></item><item><title>Four Languages in Astro Without an i18n Library</title><link>https://hamzakargin.com/blog/astro-i18n</link><guid isPermaLink="true">https://hamzakargin.com/blog/astro-i18n</guid><description>How this site serves English, Russian, Turkish and German with Astro&apos;s built-in routing, one typed object and a few small helpers.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>astro</category><category>i18n</category><category>typescript</category></item><item><title>What I Learned Shipping My First Production App</title><link>https://hamzakargin.com/blog/first-production-app</link><guid isPermaLink="true">https://hamzakargin.com/blog/first-production-app</guid><description>Five months from the first commit to real bookings. The lessons that had nothing to do with which framework I picked.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>career</category><category>production</category><category>lessons</category></item><item><title>Managing Server State</title><link>https://hamzakargin.com/blog/tanstack</link><guid isPermaLink="true">https://hamzakargin.com/blog/tanstack</guid><description>Learn how to properly manage server state in React using TanStack React Query.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>State Management With Zustand</title><link>https://hamzakargin.com/blog/zustand</link><guid isPermaLink="true">https://hamzakargin.com/blog/zustand</guid><description>Zustand is an ultra-lightweight state management library for React.</description><pubDate>Tue, 20 Jan 2026 07:01:11 GMT</pubDate></item><item><title>Content Collections</title><link>https://hamzakargin.com/blog/content-collections</link><guid isPermaLink="true">https://hamzakargin.com/blog/content-collections</guid><description>Build a scalable, type-safe blog using Next.js, MDX, and Zod-powered content collections.</description><pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Aggregation Pipeline</title><link>https://hamzakargin.com/blog/aggregation-pipeline</link><guid isPermaLink="true">https://hamzakargin.com/blog/aggregation-pipeline</guid><description>MongoDB aggregation pipelines demystified—native Node.js, no ORM required.</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate></item></channel></rss>