Category

Tech

20 posts filed under this category


Astro · CloudflareFrom Astro to EmDash: A Pitfall Diary (Part 3)

After migrating from Astro to EmDash, the backend was left with two publication date fields, and scheduled publishing never worked. This post covers how to remove the redundant publication date, configure a Cron Trigger in wrangler.jsonc, and add a scheduled handler so scheduled publishing actually runs.

Sep 14, 20262 min
Astro · Claude CodeFrom Astro to EmDash: A Tale of Pitfalls (Part 2)

Continuing from the previous post: after binding a custom domain to EmDash, I nearly locked myself out of the admin panel I'd just set up. Because WebAuthn is strictly bound to the domain, my existing Passkey stopped working, and I hadn't configured any email service yet. This post documents the nail-biting escape: how I used Claude Code to set up Cloudflare Email Sending as a lifeline, tracked down the broken magic links caused by a missing siteUrl, and finally resolved the Passkey binding issue on the custom domain.

Sep 08, 20264 min
Astro · Claude CodeFrom Astro to EmDash: A Migration Story (Part 1)

I've been blogging on and off for years, trying WordPress, Jekyll, and Ghost before finally settling on Astro. Then Cloudflare announced EmDash, their WordPress competitor, and after watching it for a few months, I decided to make the move. Now, in 2026, I've handed the entire migration over to Claude Code—drop in an official docs link, and the AI analyzes the project, installs the Connector, and even sets up D1 and R2 for me. This post documents the smooth initial deployment, plus two critical gotchas you need to know at the end.

Sep 07, 20263 min
Claude Code · DebuggingWhen Claude Code Can't Find Git (But Git Works Fine in Terminal)

Claude Code's desktop app kept insisting I install Git, even though git ran perfectly in my terminal. The real culprit wasn't Xcode Command Line Tools or a broken PATH — it was a dead Homebrew symlink from 2022 sitting first in my resolution order. Here's the full debugging trail, including all the dead ends.

Jul 23, 20265 min
AI · Claude CodeBuilding Lexio with Two Claudes: A Workflow That Actually Works

How I use Claude Projects for architecture decisions and Claude Code for implementation—keeping thinking and coding deliberately separate, with Lexio as a real-world example.

Mar 13, 20265 min
Basecamp · RailsInside Fizzy's Authentication Architecture: A Three-Tier Approach to Multi-Tenant SaaS

How 37signals' Fizzy structures multi-tenant authentication with an Identity → User → Account model, enabling users to belong to multiple organizations cleanly.

Jan 09, 20267 min
macOSRaycast setups that make me more productive

A few simple Raycast setups that have stuck in my daily workflow: smart text snippets, hyper key app toggles, quick terminal shortcuts, and clipboard history.

Nov 18, 20253 min
Cloudflare · DeploymentMy First Rails Deployment Journey with Kamal

Notes on deploying a Rails app with Kamal for the first time: proxy conflicts with Caddy, Cloudflare forward_headers, and debugging Docker volume mounting errors.

Oct 22, 20252 min
Database · PostgreSQLPostgreSQL 18 and Rails: Compatibility and Native UUIDv7

A look at PostgreSQL 18's release from a Rails developer's perspective: ActiveRecord compatibility patches and built-in native uuidv7() support.

Oct 04, 20252 min
AI · ChatGPTSwitching from Claude to ChatGPT

I recently switched from Claude to ChatGPT—here’s why, and what I’ve learned along the way.

Sep 20, 20252 min
All postsNext