Writing
The Blog
Development, tools, and ideas. Mostly technical, occasionally not.

WordPress Too Many Redirects (ERR_TOO_MANY_REDIRECTS): Find the Loop and Fix It
ERR_TOO_MANY_REDIRECTS on your WordPress site or wp-admin? One curl command shows you the exact loop. Here are the five causes behind almost every case and how to fix each one.

There Has Been a Critical Error on This Website: How to Find the Real Cause
WordPress showing "There has been a critical error on this website"? Here's how to find the exact plugin, theme or PHP change behind it, even when you can't get into wp-admin.

WordPress Contact Form Not Sending Email? The Fix That Survives Shared Hosting
Your WordPress contact form is not sending email even though it shows success. Here is the diagnosis funnel I use, and the fix that survives shared hosting.

WordPress 2FA Without a Third-Party Service
Most WordPress two-factor plugins send your login events to somebody else's server. Here is how to do it entirely on your own, and what actually has to be right for it to be worth having.
Server Info 1.0.0: Bringing the Backend to the Frontend
Why pay for premium server monitoring plugins when you can get it for free? Let's talk about the total rebuild of the Server Info plugin.

Why I Still Prefer PHP in a JavaScript-Obsessed World
Everyone says PHP is dead. They've been saying it for a decade. Here is why they are entirely wrong.

Writing WordPress Plugins using Modern OOP PHP
Tired of massive files with hundreds of prefixed functions? It's time to bring modern PHP architecture to WordPress.

Securing wp-config.php: 5 Rules Every Agency Ignores
Your wp-config file holds the keys to your entire kingdom. Why are you leaving it sitting in the open?

When to Go Headless with WordPress (And When NOT To)
Thinking about ripping out your WordPress frontend for React? Stop and read this first.

WordPress Object Caching Explained: Redis, Memcached, and Why Page Caching Isn't Enough
Database queries slowing you down? Here's how to actually fix it with Redis or Memcached without breaking your site.

TP-Link 5GHz WiFi Not Showing or Not Working? Try This Fix
5GHz network missing on your TP-Link Archer (C6, A6, AC1300)? It's usually the region or the channel. Here's the two-minute fix that brings it back.

Why Your Emails Aren't Being Delivered (And How to Fix It)
Email going to spam? Bouncing? Not arriving at all? Here's what's actually happening behind the scenes and how to fix it.

Git CLI Crash Course: From Zero to Version Control Hero
Learn Git the practical way. No fluff, just the commands you'll actually use every day, plus the ones that'll save you when things go wrong.

What to Put in AGENTS.md (With a Real Example From My Repo)
AGENTS.md tells AI coding agents how your project actually works. Here's what belongs in it, what doesn't, and the stale line that misled my own agents for months.