<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>cheesedestroyer</title><description>A quiet personal site for the things Daniel builds, ships, and writes down before they slip away.</description><link>https://cheesedestroyer.com/</link><item><title>Court Canvas: from React prototype to native Swift</title><link>https://cheesedestroyer.com/blog/court-canvas/</link><guid isPermaLink="true">https://cheesedestroyer.com/blog/court-canvas/</guid><description>How a tactical tennis whiteboard went from Claude artifacts to a Next.js PWA to an App Store rejection to a SwiftUI rewrite.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building my local AI stack</title><link>https://cheesedestroyer.com/blog/first-post/</link><guid isPermaLink="true">https://cheesedestroyer.com/blog/first-post/</guid><description>Open WebUI, Ollama, and a Discord bot — running models on my own hardware, accessible from anywhere.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate></item></channel></rss>