Blog

Insights on automation, AI tools, and building better systems.

Claude 'Fixed' My Site Into 404s, and What That Taught Me About AI Guardrails

Claude 'Fixed' My Site Into 404s, and What That Taught Me About AI Guardrails

Claude Code saw duplicate content, applied the textbook fix, and broke every TIL post on this site. The bug wasn't the model. It was where I kept my decisions.

Read more →
Cloudflare Workers static assets won't serve a 404 page unless you say so twice
TIL

Cloudflare Workers static assets won't serve a 404 page unless you say so twice

Building 404.astro isn't enough. Without not_found_handling in wrangler.json, unknown URLs on a Workers site return a bare response instead of your page.

Read more →
Building llms.txt as an Astro endpoint so it never goes stale
TIL

Building llms.txt as an Astro endpoint so it never goes stale

A static llms.txt is a list you forget to update. An endpoint that queries your content collections rebuilds the index on every deploy. One gotcha: a file in public/ silently shadows it.

Read more →
A hook that rewrites commands fails every command when its binary is missing
TIL

A hook that rewrites commands fails every command when its binary is missing

My token-saving Bash rewrite hook pointed at a CLI that wasn't installed. Every shell command in every session died with 'command not found' until Claude routed around it.

Read more →
Every Missed Call Is a Customer Going to Your Competitor

Every Missed Call Is a Customer Going to Your Competitor

62% of small business calls go unanswered. 85% of those callers never try again. Here's exactly what that's costing you, and the system that fixes it permanently.

Read more →
draft: true in frontmatter does nothing unless you filter for it
TIL

draft: true in frontmatter does nothing unless you filter for it

Astro Content Collections don't hide draft posts automatically. Forgetting the filter on index and slug pages means drafts are publicly live.

Read more →
Merging a small content collection into a bigger one beats a separate one
TIL

Merging a small content collection into a bigger one beats a separate one

TIL posts lived in their own Astro content collection. Folding them into the blog collection as a category field fixed SEO and cut duplicate logic.

Read more →
CLAUDE.md persists instructions across every session
TIL

CLAUDE.md persists instructions across every session

You don't have to re-explain your project conventions every time. CLAUDE.md is loaded automatically at the start of every Claude Code session.

Read more →