Skip to content
Blog

Thoughts & ideas.

The Search Filter That Felt Fast But Wasn't: A UX Post-Mortem on Perceived Performance and State Chaos
UI/UX August 23, 2026
The Search Filter That Felt Fast But Wasn't: A UX Post-Mortem on Perceived Performance and State Chaos
My search and filter UI looked polished in demos but confused real users in production. Here's exactly what broke and how I fixed it.
Read →
Before & After: How I Used AI to Generate Realistic Placeholder Content (And Why My Old Approach Was Embarrassing)
AI August 16, 2026
Before & After: How I Used AI to Generate Realistic Placeholder Content (And Why My Old Approach Was Embarrassing)
Lorem ipsum was killing my client presentations. Here's how I replaced fake filler with AI-generated realistic content — and what changed.
Read →
Before & After: How I Rewrote My cPanel Caching Strategy and Cut Server Load by 60%
Development August 11, 2026
Before & After: How I Rewrote My cPanel Caching Strategy and Cut Server Load by 60%
Shared hosting doesn't have Redis or Varnish — but that doesn't mean you're stuck. Here's the exact caching rewrite that transformed a sluggish cPanel app.
Read →
How I Used Claude to Audit My Own AI Outputs — And Found Three Bugs I'd Already Shipped
AI August 8, 2026
How I Used Claude to Audit My Own AI Outputs — And Found Three Bugs I'd Already Shipped
I trusted AI-generated code without a second pass. Here's the post-mortem on what broke, how I caught it, and the audit loop I now run on every AI output.
Read →
The CSRF Token Bug That Only Broke in Safari: A Production Post-Mortem
Development July 29, 2026
The CSRF Token Bug That Only Broke in Safari: A Production Post-Mortem
A CSRF protection bug that only appeared in Safari on iOS cost me two days of debugging. Here's exactly what happened and how I fixed it.
Read →
14 Session and Authentication Patterns I Wish I'd Known Earlier in PHP
Development July 18, 2026
14 Session and Authentication Patterns I Wish I'd Known Earlier in PHP
PHP sessions look simple until they betray you in production. Here are 14 patterns I've learned the hard way building real authentication systems.
Read →
The Onboarding Flow That Silently Bled Users: A Post-Mortem on Progressive Disclosure Gone Wrong
UI/UX July 14, 2026
The Onboarding Flow That Silently Bled Users: A Post-Mortem on Progressive Disclosure Gone Wrong
I built an onboarding sequence that looked clean in Figma but quietly lost 60% of users before step three. Here's exactly what went wrong.
Read →
Error States That Don't Embarrass You: Redesigning Form Validation from Red Boxes to Clear Guidance
UI/UX July 2, 2026
Error States That Don't Embarrass You: Redesigning Form Validation from Red Boxes to Clear Guidance
Most form validation UX feels punitive. I rebuilt a 5-year-old product's error handling and cut support tickets by 40%. Here's what actually changed.
Read →
Dark Mode Is Not Just an Invert Filter: The Color Contrast Decisions That Actually Matter
UI/UX June 16, 2026
Dark Mode Is Not Just an Invert Filter: The Color Contrast Decisions That Actually Matter
Most dark modes are an afterthought — a CSS variable swap that ships looking like a cave. Here's what I've learned about color contrast, surface layering, and the decisions that separate a real dark mode from a lazy one.
Read →
AI-Assisted Code Review Saved Me Hours — Until It Confidently Broke My App
AI June 16, 2026
AI-Assisted Code Review Saved Me Hours — Until It Confidently Broke My App
AI code review tools are genuinely useful, but blind trust in them is a fast track to subtle, hard-to-diagnose bugs. Here's what I learned from letting Claude audit my PHP codebase — and where it went quietly, confidently wrong.
Read →
12 Navigation Patterns Ranked: When to Use a Sidebar, Tabs, or a Command Palette
UI/UX June 13, 2026
12 Navigation Patterns Ranked: When to Use a Sidebar, Tabs, or a Command Palette
Navigation is the skeleton of every interface — get it wrong and users feel lost before they even start. Here's a ranked, practical catalog of 12 navigation patterns with the exact conditions that make each one the right choice.
Read →
Why Claude Kept Lying to Me About PHP Sessions (And How I Finally Got Useful Answers)
AI June 9, 2026
Why Claude Kept Lying to Me About PHP Sessions (And How I Finally Got Useful Answers)
I asked Claude to help me debug a broken session-based login system and it confidently gave me wrong answers three times in a row. Here's the post-mortem on what went wrong — and how I restructured my prompts to actually get reliable help.
Read →