logarithmicspirals.hashnode.devEnhancing Markdown Image Handling in AstroIntroduction After writing new content, committing the markdown, and pushing to GitHub, my Astro build pipeline runs. Since my site is built with Astro, I have a custom integration I've written which runs at the end of the build process and cross-pos...Nov 30, 2025·5 min read
logarithmicspirals.hashnode.devFrom Prototype to Production: How Promptfoo and Vitest Made podcast-it ReliableIntroduction In my previous article, From Idea to Audio: Building the podcast-it Cloudflare Worker, I detailed how I had created a simple Cloudflare Worker which could create podcast scripts and audio from a source blog post. While I was not sure if ...Sep 13, 2025·7 min read
logarithmicspirals.hashnode.devFrom Idea to Audio: Building the Podcast-It Cloudflare WorkerIntroduction Not so long ago, I had the idea to turn blog posts into podcast episodes. My first few attempts at this resulted in a manual workflow where the final results would be uploaded to YouTube. The flow was as follows: Copy the link to the ar...Aug 16, 2025·8 min read
logarithmicspirals.hashnode.devCache OpenAI Embeddings with SQLite for Low-Cost Astro BuildsIntroduction Over the last few posts, I have been writing about how I implemented a "Similar Posts" component on my blog. In the first post, I presented an approach for recommending posts to users based on semantic similarity. In the second, most rec...Jun 4, 2025·7 min read
logarithmicspirals.hashnode.devRefining “Similar Posts” for Relevance and SimplicityIntroduction In a previous post, I described how I created a "Similar Posts" component for my blog. Originally, that was going to be a one-shot post. After deploying the new feature, I noticed that some of the recommended posts were irrelevant. Why t...May 31, 2025·7 min read