— Personal Journal
Epona's Tech & Life
Thoughts on Rails, Laravel, Claude AI and development tools — and life in Tokyo. Notes from the intersection of technology and everyday experience.
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.
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.
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.
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.
EssaysThe Psychology of Money: Wealth Is What You Don't SeeI recently read The Psychology of Money. Here are a few points that really resonated with me, and how they connect to some decisions I made this year.
AI · BasecampWhy I Returned to BasecampI tried Basecamp before and quit — not because it was bad, but because I couldn't keep up with the writing it demanded. Then the agent CLI arrived, and something clicked.
Essays · TravelA Road Trip Through Kansai, Sleeping in My CarAt the end of April, I set out from Tokyo with a head full of worries, passing through Shizuoka, Nagoya, Kyoto's Arashiyama, the Nintendo Museum, Nara's mountain roads, Wakayama... Five days later, not a single worry remained.
AI · Claude CodeBuilding Lexio with Two Claudes: A Workflow That Actually WorksHow 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.
EssaysThree Months as an Engineering Manager: Learning to Manage in Unfamiliar TerritoryThree months into the promotion, I took on two projects I knew nothing about. No fancy methodologies—just showing up to standups, digging through Jira, and asking people. On making priority calls amid uncertainty, and why I've stopped stressing about "reading more management books."
How 37signals' Fizzy structures multi-tenant authentication with an Identity → User → Account model, enabling users to belong to multiple organizations cleanly.