<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ben Hofstetter — Blog</title>
    <link>https://benhof.ai/blog</link>
    <description>Writing about code, design, and everything in between.</description>
    <language>en-us</language>
    <lastBuildDate>Fri, 17 Jul 2026 04:00:00 GMT</lastBuildDate>
    <atom:link href="https://benhof.ai/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Designers are becoming technical</title>
      <link>https://benhof.ai/blog/designers-are-becoming-technical</link>
      <guid isPermaLink="true">https://benhof.ai/blog/designers-are-becoming-technical</guid>
      <description>SVGs are coordinates and instructions, not fixed images. LLMs give designers a new way to inspect, manipulate, and animate that underlying system themselves.</description>
      <pubDate>Fri, 17 Jul 2026 04:00:00 GMT</pubDate>
    </item>
    <item>
      <title>The component registry came from the backyard</title>
      <link>https://benhof.ai/blog/the-registry-came-from-the-backyard</link>
      <guid isPermaLink="true">https://benhof.ai/blog/the-registry-came-from-the-backyard</guid>
      <description>Thirteen UI components, extracted from software that ran an actual wiffle ball tournament. On why the best component libraries are byproducts, not products.</description>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>My GitHub said I shipped nothing this year</title>
      <link>https://benhof.ai/blog/my-github-said-i-shipped-nothing</link>
      <guid isPermaLink="true">https://benhof.ai/blog/my-github-said-i-shipped-nothing</guid>
      <description>The contribution graph showed 13. The real number was 16,931. What happened in between says a lot about how building works now.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Carrying a university into the Big 12</title>
      <link>https://benhof.ai/blog/carrying-a-university-into-the-big-12</link>
      <guid isPermaLink="true">https://benhof.ai/blog/carrying-a-university-into-the-big-12</guid>
      <description>The conference realignment stories are about TV deals. The actual work is uniforms, signage, data, and a five-city bus tour - a decade-long project disguised as an announcement.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Case study: GoBearcats OS</title>
      <link>https://benhof.ai/blog/case-study-gobearcats-os</link>
      <guid isPermaLink="true">https://benhof.ai/blog/case-study-gobearcats-os</guid>
      <description>Building an AI-native operating system for an athletic department&apos;s fan data - Snowflake underneath, one conversational surface on top.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Case study: digitizing a 50-year Hall of Fame</title>
      <link>https://benhof.ai/blog/case-study-uc-hall-of-fame</link>
      <guid isPermaLink="true">https://benhof.ai/blog/case-study-uc-hall-of-fame</guid>
      <description>Every UC Athletics Hall of Fame inductee since 1976, structured, searchable, and beautiful - built nights-and-weekends with AI tools.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>In defense of over-engineering</title>
      <link>https://benhof.ai/blog/in-defense-of-over-engineering</link>
      <guid isPermaLink="true">https://benhof.ai/blog/in-defense-of-over-engineering</guid>
      <description>My wiffle ball tournament has 116 database tables, two environments, and DDoS protection. This is not a confession. It&apos;s a method.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>My second brain is a folder of markdown files an AI keeps for me</title>
      <link>https://benhof.ai/blog/my-second-brain-is-a-folder-of-markdown-files</link>
      <guid isPermaLink="true">https://benhof.ai/blog/my-second-brain-is-a-folder-of-markdown-files</guid>
      <description>What an LLM-first personal knowledge base actually looks like after a year of daily use - structure, rules, and why the AI writes the notes while I ask the questions.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Starting a creative agency inside an athletic department</title>
      <link>https://benhof.ai/blog/starting-a-creative-agency-inside-an-athletic-department</link>
      <guid isPermaLink="true">https://benhof.ai/blog/starting-a-creative-agency-inside-an-athletic-department</guid>
      <description>We merged three units into The Agency - UC Athletics&apos; in-house creative studio. An Emmy and one College GameDay later, here&apos;s what I&apos;d tell anyone building a team inside an institution.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Tournament day is an operations center</title>
      <link>https://benhof.ai/blog/tournament-day-is-an-operations-center</link>
      <guid isPermaLink="true">https://benhof.ai/blog/tournament-day-is-an-operations-center</guid>
      <description>Thirteen fields, forty teams, one Saturday: what actually happens when the Schott Classic goes live, and why the software earns its keep between 11:30 AM and the 10:30 PM finals.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>What 298 teams taught me about edge cases</title>
      <link>https://benhof.ai/blog/what-298-teams-taught-me-about-edge-cases</link>
      <guid isPermaLink="true">https://benhof.ai/blog/what-298-teams-taught-me-about-edge-cases</guid>
      <description>Five years of wiffle ball tournaments is the best QA program I&apos;ve ever run. Real users find everything - and the fix loop is the product.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Why my wiffle ball tournament has a payments platform</title>
      <link>https://benhof.ai/blog/why-my-wiffle-ball-tournament-has-a-payments-platform</link>
      <guid isPermaLink="true">https://benhof.ai/blog/why-my-wiffle-ball-tournament-has-a-payments-platform</guid>
      <description>The Schott Classic started as a backyard game. Now it has registration, Square payments, waivers, brackets, live scoring, and umpire scheduling. This is either dedication or a diagnosis.</description>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
