Posts


Oct. 27, 2026

Hosting a Hugo Blog on Cloudflare Pages with a Custom Domain

The Problem

I run my blog as a static Hugo site and initially hosted it on a self-hosted Forgejo instance behind Tailscale. I covered that setup in my earlier post about setting up the blog with Forgejo and Tailscale . That worked fine for tailnet-only access, but I wanted to make the blog publicly available without exposing my home network to the internet, no DDoS vectors, no port forwarding, no risk of someone finding an open SSH or web service on my LAN.

Oct. 26, 2026

Backing Up Desktop Files with Proton Drive CLI and Cron

Why Not the Desktop App?

Proton Drive offers a desktop sync application that keeps files in real-time sync between your machine and the cloud. It works well for many people, but I prefer the CLI approach for one reason: control.

With the CLI, I decide exactly what gets backed up, when, and how. Combined with cron jobs, this gives me predictable, auditable backups without background processes eating resources or silently overwriting things I didn’t intend.

Oct. 5, 2026

Agents On the Go: Orca, Opencode, and the Start of DivotSim

How I set up Orca to manage my AI agents across workspaces and from my phone, and how I’m using opencode inside it to start building DivotSim, a golf simulator project.

Oct. 5, 2026

Standing Up Paperclip: My First Agent Dashboard on the Tailnet

Setting up Paperclip as a control plane for my AI agents and shipping a first project: a simple status dashboard live at http://dash on my Tailscale tailnet.

Aug. 13, 2026

Setting Up My Hugo Blog with Forgejo and Tailscale

Documenting the process of setting up a Hugo-powered blog with Forgejo for version control and Tailscale for private HTTPS access.

Aug. 13, 2026

Welcome to My Blog

This is the first post on my new Hugo-powered blog!