<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Oliver Bagley</title>
    <link>https://oliverbagley.com</link>
    <description>Notes, case studies and projects on digital commerce, systems integration, and building things that hold together.</description>
    <language>en-gb</language>
    <lastBuildDate>Fri, 01 May 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://oliverbagley.com/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>MacItDown - convert any document to Markdown on your Mac</title>
      <link>https://oliverbagley.com/blog/macitdown</link>
      <guid isPermaLink="true">https://oliverbagley.com/blog/macitdown</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>Projects</category>
      <description>AI tools are brilliant at reading Markdown. They&apos;re not so brilliant at reading your PowerPoint decks, PDFs, and Word docs. MacItDown sits in the middle and sorts that out.</description>
    </item>
    <item>
      <title>Staggered - delay app launches at macOS login</title>
      <link>https://oliverbagley.com/blog/staggered</link>
      <guid isPermaLink="true">https://oliverbagley.com/blog/staggered</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>Projects</category>
      <description>macOS gives you one option for login items — they all fire at once. I wanted some apps to wait. So I built a small SwiftUI app that staggers launches with configurable delays.</description>
    </item>
    <item>
      <title>SonoCast - streaming vinyl to Sonos via Icecast</title>
      <link>https://oliverbagley.com/blog/sonocast</link>
      <guid isPermaLink="true">https://oliverbagley.com/blog/sonocast</guid>
      <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
      <category>Projects</category>
      <description>I wanted to play vinyl through my Sonos. Sonos doesn&apos;t accept line-in from a USB sound card. So I built a two-container Docker stack that grabs the audio, encodes it, and streams it out as a custom radio station.</description>
    </item>
    <item>
      <title>WipeMode - lock your keyboard while you clean it</title>
      <link>https://oliverbagley.com/blog/wipe-mode</link>
      <guid isPermaLink="true">https://oliverbagley.com/blog/wipe-mode</guid>
      <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
      <category>Projects</category>
      <description>I was cleaning my keyboard one day and sent a dozen emails in the process. So I built a small macOS app that locks all input while you wipe down. One click to lock, hold a shortcut to unlock.</description>
    </item>
    <item>
      <title>Why your eCommerce stack has a glue problem</title>
      <link>https://oliverbagley.com/blog/why-your-ecommerce-stack-has-a-glue-problem</link>
      <guid isPermaLink="true">https://oliverbagley.com/blog/why-your-ecommerce-stack-has-a-glue-problem</guid>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <category>Systems Integration</category>
      <description>Most commerce problems aren&apos;t platform problems. They&apos;re integration problems - the messy, invisible layer between your storefront, your ERP, and everything in between.</description>
    </item>
  </channel>
</rss>