<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kuhlman.Co — Writing &amp; lab</title>
    <link>https://kuhlman-co.com/</link>
    <description>Notes, transitions, and lab guides from Kuhlman.Co — a solo software studio in Cape Girardeau, Missouri.</description>
    <language>en-us</language>
    <copyright>© 2026 Kuhlman.Co</copyright>
    <managingEditor>ethan@kuhlman-co.com (Ethan Kuhlman)</managingEditor>
    <webMaster>ethan@kuhlman-co.com (Ethan Kuhlman)</webMaster>
    <pubDate>Tue, 24 Jun 2026 12:00:00 +0000</pubDate>
    <lastBuildDate>Tue, 24 Jun 2026 12:00:00 +0000</lastBuildDate>
    <category>Software</category>
    <category>iOS</category>
    <category>Aviation</category>
    <ttl>1440</ttl>
    <atom:link href="https://kuhlman-co.com/feed.xml" rel="self" type="application/rss+xml" />

    <item>
      <title>Apple Foundation Models, on-device</title>
      <link>https://kuhlman-co.com/lab/guides/foundation-models-on-device</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/foundation-models-on-device</guid>
      <pubDate>Tue, 24 Jun 2026 10:00:00 +0000</pubDate>
      <description>Schema-driven generation from Apple's on-device LLM — the pattern behind Outpost Discover, Upsee's weekly briefing, and tmpo's natural-language insights. No cloud, no API key, no user data leaving the device.</description>
      <category>Lab guide</category>
    </item>

    <item>
      <title>HealthKit deep-read — observers + writes</title>
      <link>https://kuhlman-co.com/lab/guides/healthkit-deep-read</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/healthkit-deep-read</guid>
      <pubDate>Tue, 24 Jun 2026 10:00:00 +0000</pubDate>
      <description>Reading, writing, and observing HealthKit data — 8 write types, background delivery, and the partial-authorization quirk that catches every team building a serious Health app the first time.</description>
      <category>Lab guide</category>
    </item>

    <item>
      <title>SwiftData migrations · versioned schemas</title>
      <link>https://kuhlman-co.com/lab/guides/swiftdata-migrations</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/swiftdata-migrations</guid>
      <pubDate>Tue, 24 Jun 2026 10:00:00 +0000</pubDate>
      <description>VersionedSchema, MigrationPlan, and the colliding-hash gotcha that quietly nukes existing user data on upgrade. The migration patterns shipped in Outpost.Co.</description>
      <category>Lab guide</category>
    </item>

    <item>
      <title>Vendored XcodeGen pattern</title>
      <link>https://kuhlman-co.com/lab/guides/xcodegen-vendored</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/xcodegen-vendored</guid>
      <pubDate>Tue, 24 Jun 2026 10:00:00 +0000</pubDate>
      <description>Ship the XcodeGen binary inside your repo. No Homebrew, no version drift, no Xcode Cloud "command not found." The pattern every iOS app from the studio uses.</description>
      <category>Lab guide</category>
    </item>

    <item>
      <title>Cloudflare Workers + Assets binding</title>
      <link>https://kuhlman-co.com/lab/guides/cloudflare-workers-assets-binding</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/cloudflare-workers-assets-binding</guid>
      <pubDate>Tue, 24 Jun 2026 10:00:00 +0000</pubDate>
      <description>How to serve a static site from a Cloudflare Worker with the Assets binding — run_worker_first, per-response security headers, SPA path routing.</description>
      <category>Lab guide</category>
    </item>

    <item>
      <title>Why Outpost exists</title>
      <link>https://kuhlman-co.com/writing/why-outpost-exists</link>
      <guid isPermaLink="true">https://kuhlman-co.com/writing/why-outpost-exists</guid>
      <pubDate>Mon, 23 Jun 2026 14:00:00 +0000</pubDate>
      <description>What a packing-list app gets wrong, what on-device AI changes about it, and what a camping trip a few weeks ago made obvious. The decisions behind Outpost.Co's first version.</description>
      <category>Writing</category>
    </item>

    <item>
      <title>Weather.Co is free for every pilot</title>
      <link>https://kuhlman-co.com/writing/weather-co-free-for-every-pilot</link>
      <guid isPermaLink="true">https://kuhlman-co.com/writing/weather-co-free-for-every-pilot</guid>
      <pubDate>Sun, 22 Jun 2026 14:00:00 +0000</pubDate>
      <description>The Pro tier is gone. Every feature — proactive briefings, route weather, severe-weather alerts, full TAF decoder, multi-source fallbacks — is in the free download. Why I made the call and what the new business model is.</description>
      <category>Writing</category>
    </item>

    <item>
      <title>Dispach is moving to a new home</title>
      <link>https://kuhlman-co.com/dispach/transition</link>
      <guid isPermaLink="true">https://kuhlman-co.com/dispach/transition</guid>
      <pubDate>Sun, 14 Jun 2026 14:00:00 +0000</pubDate>
      <description>On July 1, 2026, ownership of Dispach transfers to an indie team building a full freelancer toolkit. The app keeps running. Your data is yours through July 2028.</description>
      <category>Writing</category>
    </item>

    <item>
      <title>Where Weather.Co gets its data</title>
      <link>https://kuhlman-co.com/weatherco/data-sources</link>
      <guid isPermaLink="true">https://kuhlman-co.com/weatherco/data-sources</guid>
      <pubDate>Wed, 11 Jun 2026 14:00:00 +0000</pubDate>
      <description>Open-Meteo went down for a stretch. Reintegrating Apple WeatherKit, NWS, OpenWeatherMap, and WeatherAPI.com turned out to make the product richer, not just safer.</description>
      <category>Writing</category>
    </item>

    <item>
      <title>Setting up a project for Xcode Cloud</title>
      <link>https://kuhlman-co.com/lab/guides/xcode-cloud-setup</link>
      <guid isPermaLink="true">https://kuhlman-co.com/lab/guides/xcode-cloud-setup</guid>
      <pubDate>Sat, 13 Jun 2026 10:00:00 +0000</pubDate>
      <description>A step-by-step guide to connecting an Xcode project to Xcode Cloud and running your first build. From prerequisites through GitHub setup to your first TestFlight delivery.</description>
      <category>Lab guide</category>
    </item>

  </channel>
</rss>
