<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Ryan Sanna — Writing</title>
    <link>https://ryansanna.com/writing</link>
    <description>Build logs, systems notes, and visual research from the personal cloud.</description>
    <language>en-us</language>
    <item>
      <title>A Town You Can Click</title>
      <link>https://ryansanna.com/writing/a-town-you-can-click</link>
      <guid>https://ryansanna.com/writing/a-town-you-can-click</guid>
      <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
      <description>Why the landing page is a voxel village at dusk: calm as a design constraint, buildings as navigation, and a several-thousand-voxel scene in a dozen draw calls.</description>
    </item>
    <item>
      <title>Prerendering a Hand-Rolled SPA with React 19</title>
      <link>https://ryansanna.com/writing/prerendering-a-hand-rolled-spa</link>
      <guid>https://ryansanna.com/writing/prerendering-a-hand-rolled-spa</guid>
      <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
      <description>Static HTML for every route without a meta-framework: react-dom/static, a 40-line router, a postbuild script, and clean edge routing to serve it.</description>
    </item>
    <item>
      <title>Building a Personal Cloud on Cloudflare</title>
      <link>https://ryansanna.com/writing/building-a-personal-cloud</link>
      <guid>https://ryansanna.com/writing/building-a-personal-cloud</guid>
      <pubDate>Tue, 07 Jul 2026 12:00:00 GMT</pubDate>
      <description>The shape of pcloud: one platform megarepo, isolated OpenTofu states, Worker Static Assets, and a stable contract for independently owned projects.</description>
    </item>
  </channel>
</rss>
