Blog

Writing about course creation, instructional design, solopreneurship, and the journey of going independent.

RSS Feed

Extracting Course Content from GoHighLevel

Building a Python scraper to extract course content from GoHighLevel — handling extensionless images, interactive quiz widgets, and recursive lesson discovery.

Read article

Running a Vector Database on a NAS

Self-hosting Qdrant vector database on a Synology NAS with Docker and Portainer — zero monthly cost, private, and accessible from any machine on the network.

Read article

The 404s Google Found Before I Did

Debugging 404 errors in Google Search Console — stale cache, bad sitemap entries, www subdomain crawling, and the tag that shouldn't have existed.

Read article

Why I Switched from Next.js to Astro

After months fighting Next.js static export limitations, I rebuilt both ricsmo.com and course.coach with Astro. Smaller pages, faster builds, zero JS by default.

Read article

Why I Left Cloudflare Workers

Migrating Notary Atlas from Cloudflare Workers + D1 to Bunny Magic Containers — and why the edge runtime wasn't worth the tradeoffs for a Next.js app.

Read article

Why I Self-Host My Notes on a NAS

Why I moved from cloud note apps to self-hosted SiYuan Note on a Synology NAS, the privacy and control benefits, and the setup considerations.

Read article

Building a Transcription App for iPad

Building a native Whisper transcription app on iPad using whisper.cpp and SwiftUI — no server, no Python, no monthly fee.

Read article