<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kavin Smith — Blog</title>
    <link>https://example.com/blog</link>
    <description>Portfolio, projects and writing by Kavin Smith.</description>
    <language>en</language>
    <atom:link href="https://example.com/feed.xml" rel="self" type="application/rss+xml"/>
    
  <item>
    <title>Shipping a static Next.js site to Cloudflare Pages</title>
    <link>https://example.com/blog/shipping-nextjs-to-cloudflare-pages</link>
    <guid isPermaLink="true">https://example.com/blog/shipping-nextjs-to-cloudflare-pages</guid>
    <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
    <description>Static export, edge functions, and a contact form that keeps secrets server-side — the whole playbook for hosting Next.js on Cloudflare.</description>
  </item>

  <item>
    <title>Dark mode that doesn&apos;t hurt</title>
    <link>https://example.com/blog/dark-mode-that-doesnt-hurt</link>
    <guid isPermaLink="true">https://example.com/blog/dark-mode-that-doesnt-hurt</guid>
    <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
    <description>Good dark themes aren&apos;t white themes with the colors flipped. Contrast, desaturation, and elevation done right.</description>
  </item>

  <item>
    <title>What moving to the edge taught me about performance</title>
    <link>https://example.com/blog/lessons-from-the-edge</link>
    <guid isPermaLink="true">https://example.com/blog/lessons-from-the-edge</guid>
    <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
    <description>Three hard-won lessons from moving a product&apos;s front end to a global CDN: measure first, cache aggressively, and design for the cache miss.</description>
  </item>
  </channel>
</rss>