Writing.
Notes on frontend, mobile, and building with AI tools.
Aug 28, 20262 min read
From Vue 2 to Vue 3: What Actually Changed
The Composition API, script setup and the new lifecycle hooks. The parts of the Vue 2 to Vue 3 move that changed how I write components.
Jun 9, 20263 min read
What I Learned Fixing a React Server Components CVE
A dependency alert on this site turned into a real lesson in how Server Components handle data across the client/server boundary.
Apr 22, 20264 min read
Idempotency in Transaction-Based Systems
Retries are inevitable in distributed systems. Without idempotency, they turn into double charges and duplicate rows.
Mar 11, 20265 min read
Setting Up GEO for AI Search Visibility
Generative Engine Optimization is the new SEO. A few concrete things that actually help AI answer engines find, understand, and cite your project.
Feb 19, 20263 min read
Setting Up Claude Cowork for Multi-Step Work
Cowork isn't Claude Code. It's Claude Desktop handling an entire multi-step project on your computer, in the background, while you do something else.
Feb 5, 20263 min read
Setting Up Claude Projects the Right Way
Projects turn Claude from a blank chat window into a workspace that already knows your style guide, your architecture decisions, and the context you'd otherwise repeat every time.
Jan 19, 20264 min read
SQL Injection: Best Practices for Safer Queries
Parameterized queries are the easy 90%. Here's what the other 10% of SQL injection prevention actually looks like in production code.
Dec 8, 20253 min read
Building Footy Teams in About Five Hours With Claude
I built Footy Teams in about five hours using Claude. Here's what actually made that possible without ending up with code I couldn't stand behind.