The blog

Writing

37 posts on cloud, automation, AI agents, and the homelab.

AutomationApr 10, 2026

Build a Self-Healing AI Content Agent with Claude Agent SDK

I got tired of the content grind. Write a post, format it for X, reformat for Bluesky, render a video, upload to YouTube, cross-post to Instagram — repeat daily. It was eating 2-3 hours every day. So I built a self-healing AI content agent that does all of it. It runs 24/7 on a Mac…

11 min readRead
AutomationApr 10, 2026

Run a Claude Agent on a Schedule: Cron Jobs, Persistent Memory, and Error Recovery

Building an AI agent is the easy part. Making it run a Claude agent on a schedule reliably every day without babysitting — that’s where most tutorials stop. I run an autonomous Claude agent called Koda. It executes 15+ scheduled tasks daily: pulling analytics from YouTube, Google Search Console, and Instagram, scanning X for viral…

8 min readRead
AutomationApr 10, 2026

Automate Your Blog Publishing in 2026: From Draft to Live in One Command

Blog automation saved me 15-20 minutes per post. That’s the manual workflow: write in your editor, open WordPress, paste and reformat, upload a featured image, configure SEO metadata, hit publish. Multiply that by 3-4 posts per week and you’re losing hours to busywork that adds zero value. I built a system that takes a markdown…

5 min readRead
AutomationFeb 14, 2026

Docker Containers with Unraid NFS: Fix Stale File Handle Errors

If you’re running Docker containers with Unraid NFS shares, or any server serving NFS shares, you’ve probably encountered the “stale file handle” problem. I’m running Proxmox as my hypervisor with multiple VMs: one running Unraid as my NAS, and another running my media stack (Plex, Radarr, Sonarr, etc.) in Docker containers. The Docker VM pulls…

4 min readRead
AutomationFeb 5, 2026

How I Deploy n8n to Hetzner Cloud with OpenTofu

I wanted to deploy n8n to Hetzner Cloud with OpenTofu with proper security, SSL certificates, and infrastructure-as-code—because the manual process was eating hours of my time. Spinning up a new self-hosted n8n instance used to take me about an hour of clicking through interfaces and running commands. Now I do it in under 5 minutes…

9 min readRead
AutomationFeb 5, 2026

Adding Bluesky Rich Link Preview cards to Postiz

Rich link preview cards make a real difference on Bluesky—the clickable previews that show a title, description, and image when you share a URL. Same thing Twitter does with Open Graph cards. They get more engagement than plain text links. The problem? Postiz doesn’t support this yet for Bluesky. Hillary Torn has a pull request…

3 min readRead
AutomationFeb 2, 2026

Automate WordPress Blog Publishing with Airtable and n8n

I wanted to automate WordPress blog publishing because the manual process was killing my productivity. Between writing content, make featured images, uploading to WordPress, configuring SEO settings, and double-checking everything looks right—publishing a single post used to take me 15-20 minutes of clicking through different interfaces. Now I do it in 30 seconds with 5…

10 min readRead
AutomationJan 29, 2026

How I Automatically Sync My Skool Members to Airtable Every Day

Keeping a daily list of my Skool members in Airtable has become a cornerstone of how I run automations, track subscriptions, and trigger workflows based on real membership state. Skool doesn’t currently offer a public API for member exports, and manual CSV downloads don’t scale. So I built a daily automated sync that: Exports my…

6 min readRead
AutomationNov 26, 2025

Automate Blog Image using Python and n8n

A while back I wrote about how I automate blog image creation using Python. It worked, but I had to open a CSV file, type in the title, and then open the terminal to run the script. Now using Airtable or nocoDB, I’ve automated the process completely. Here’s how to automate blog image using Python…

5 min readRead
AutomationNov 24, 2025

Automate Proxmox VMs with Cloud-Init

In my previous post, I showed how to provision VMs with NoCloud. That works great, but there’s an even faster approach: storing your cloud-init config directly in Proxmox’s snippets folder and referencing it with –cicustom. Automate Proxmox VMs with Cloud-Init method is cleaner, more manageable, and scales better when you’re provisioning multiple VMs with similar…

5 min readRead
AutomationNov 10, 2025

Docker Compose NFS Bind Mount: Fix .env Conflicts & Permissions

Recently while setting up a Docker Compose-based media stack, I ran into a tricky issue. It looked like everything was working, the containers were up, the mounts were in place, and the files were visible, yet I couldn’t write to my NFS share from inside the containers. Here’s what happened, and how I fixed it….

2 min readRead
AutomationJun 6, 2025

Build a Voice-Enabled AI Agent in n8n

When I started playing with AI Agents inside n8n, I wanted to go beyond just asking questions. I wanted a real assistant—something I could talk to (literally), that could respond, take action, and help automate everyday tasks like sending emails or booking meetings. The result was a self-hosted AI Agent that works entirely through Telegram….

4 min readRead
AutomationMay 2, 2025

How to Deploy Fonts on macOS Using Microsoft Intune

Microsoft Intune allows IT admins to remotely deploy fonts without requiring manual installation. In this post, I’ll walk through how to install fonts on macOS via Intune using a Bash script. Why Deploy Fonts via Intune Prerequisites Before proceeding, ensure you have: Step 1: Prepare the Deployment Script This guide can be used to deploy…

2 min readRead
AutomationApr 7, 2025

Automate Blog Image Creation Using Python

Creating a featured image for every blog post used to be the most tedious part of publishing for me. I wanted consistent, branded visuals — but manually designing them in Canva, copying over titles, tweaking layouts, and exporting each one quickly became a chore. So I automated the entire process. Now I generate 1200×628px featured…

2 min readRead