Blog
Thoughts & ideas.
UI/UX
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
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 →
UI/UX
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 →
AI
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 →
Development
GSAP ScrollTrigger Is Overkill for 80% of What You're Building — Here's What to Use Instead
GSAP ScrollTrigger is a powerful tool, but reaching for it by default has real costs in complexity, bundle weight, and maintainability. After shipping dozens of animated sites, I've learned when native CSS and the Intersection Observer API are genuinely better choices.
Read →
AI
Prompt Engineering for Product Copy: From Bland to Brand-Ready in 5 Steps
Most AI-generated copy sounds like it was written by a committee of robots — because it was. This tutorial shows you exactly how to engineer prompts that produce product copy with real personality, precision, and conversion power.
Read →
Development
Before & After: How MySQL Indexing Turned a 4-Second Query Into 40 Milliseconds
A slow dashboard nearly killed a client project — until a few well-placed indexes changed everything. Here's the exact before-and-after breakdown of what I found, what I fixed, and why it worked.
Read →
Development
Bulletproof File Uploads in PHP: Validation, Renaming, and Safe Storage on cPanel
File uploads are one of the most exploited attack vectors in PHP applications — but most tutorials skip the dangerous parts. This step-by-step guide covers every layer of validation, safe renaming, and storage strategy you actually need on shared cPanel hosting.
Read →
UI/UX
The Invisible Grid: How 8-Point Spacing Transforms Your UI from Amateur to Professional
Most designers obsess over color and typography, but spacing is the silent force that separates polished interfaces from chaotic ones. Learn how the 8-point grid system creates visual harmony that users feel even when they can't explain why.
Read →
UI/UX
Stop Designing Screens — Start Designing Decisions
Most UI/UX designers focus on pixels, components, and flows — but the real craft lies in shaping the decisions your users make. Here's how shifting your design lens from screens to decision points will transform the products you build.
Read →
UI/UX
The Silent UX Killer: Why Your Empty States Are Losing You Users
Empty states are the most overlooked touchpoints in digital product design, yet they often determine whether a user stays or leaves forever. Learn how to transform these forgotten moments into powerful retention tools.
Read →
AI
My First Experience Using Claude Code to Build a Website (And 4 Skills You Should Install)
My first experience using Claude Code to build a website, plus the 4 essential skills that turn it from a basic AI tool into a powerful system for creating high-quality, production-ready websites.
Read →