<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zarzara Blog</title>
    <link>https://zarzara.app/blog</link>
    <description>Writing on Kotlin Multiplatform, mobile development, and building good software.</description>
    <language>en-us</language>
    <atom:link href="https://zarzara.app/feed.xml" rel="self" type="application/rss+xml"/>
    
    <item>
      <title><![CDATA[Stop Losing Things at Home: How a Simple Inventory App Changed My Moving Day]]></title>
      <link>https://zarzara.app/blog/organize-home-boxindex</link>
      <guid isPermaLink="true">https://zarzara.app/blog/organize-home-boxindex</guid>
      <description><![CDATA[Moving boxes, storage rooms, and junk drawers all have one thing in common — you never know what's inside. Here's how a home inventory app fixed that for good.]]></description>
      <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Building an Offline-First App — No Backend, No Auth, No Cloud]]></title>
      <link>https://zarzara.app/blog/offline-first-boxindex-kmp</link>
      <guid isPermaLink="true">https://zarzara.app/blog/offline-first-boxindex-kmp</guid>
      <description><![CDATA[BoxIndex is a home inventory app with no login screen, no server, and no subscription. Here's what that forces you to think about as a developer.]]></description>
      <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[End-to-End QR Deep Linking in a Kotlin Multiplatform App]]></title>
      <link>https://zarzara.app/blog/qr-deep-linking-kotlin-multiplatform</link>
      <guid isPermaLink="true">https://zarzara.app/blog/qr-deep-linking-kotlin-multiplatform</guid>
      <description><![CDATA[How we wired QR code generation, custom URL schemes, and cross-platform deep link routing in BoxIndex — a KMP app built with Compose Multiplatform.]]></description>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Why I Threw Away Material Slider — and the Stale Closure Bug That Made Me]]></title>
      <link>https://zarzara.app/blog/gradient-slider-stale-closure-compose</link>
      <guid isPermaLink="true">https://zarzara.app/blog/gradient-slider-stale-closure-compose</guid>
      <description><![CDATA[Building a custom gradient slider in Jetpack Compose Multiplatform, and the one-liner that fixed a subtle, maddening bug.]]></description>
      <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Cross-Platform Haptics in Kotlin Multiplatform: One Interface, Two Engines]]></title>
      <link>https://zarzara.app/blog/cross-platform-haptics-kotlin-multiplatform</link>
      <guid isPermaLink="true">https://zarzara.app/blog/cross-platform-haptics-kotlin-multiplatform</guid>
      <description><![CDATA[How PickPerfect calls hapticTick() from shared Compose code while each platform does its own thing under the hood.]]></description>
      <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>