<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>axel - blog</title><description>Write-ups of implementations, experiments and migrations by Alessandro Rabitti.</description><link>https://alessandrorabitti.com/</link><language>en</language><item><title>Migrating my portfolio to Astro</title><link>https://alessandrorabitti.com/blog/migrating-my-portfolio-to-astro/</link><guid isPermaLink="true">https://alessandrorabitti.com/blog/migrating-my-portfolio-to-astro/</guid><description>Why I rewrote an old Vue SPA into a static Astro site and how the markdown pipeline works.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>OhMyBreath: one breathing trainer, built native twice</title><link>https://alessandrorabitti.com/blog/ohmybreath-built-native-twice/</link><guid isPermaLink="true">https://alessandrorabitti.com/blog/ohmybreath-built-native-twice/</guid><description>A breathing coach for macOS and Windows, SwiftUI on one side, Electron on the other, with 3D projection, zero UI frameworks and zero audio files.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A zero-dependency macOS app for Apple Music playlist stats</title><link>https://alessandrorabitti.com/blog/apple-music-playlist-analyzer/</link><guid isPermaLink="true">https://alessandrorabitti.com/blog/apple-music-playlist-analyzer/</guid><description>How I built a native SwiftUI playlist analyzer that reads the local Music.app library or any public playlist link, with a full CLI mode and no third-party dependencies.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item></channel></rss>