Writing
Thoughts on WordPress, web development, and the tools I use.
Why your plugin name isn't accepted on WordPress.org
If WordPress.org asked you to rename your plugin, it almost always comes down to one idea: plugin names need to be distinctive and brandable, not descriptions of what the plugin does. Here's what I picked up from the guidelines and my own submissions, and how to choose a name that clears the naming check on the first try.
What three WordPress.org courses taught me about working with people
Three Learn.WordPress.org courses on decision-making, writing, and conflict resolution. Most of the guidance applies to any collaborative work, not only WordPress.
Why WooCommerce EPUB downloads fail with an invalid download link
WooCommerce digital downloads can silently fail for file types like EPUB that aren't in WordPress's default MIME list. Admin can download, customers can't. Here's what actually happens in the code and how to fix it.
Why I built HappyAccess, a free WordPress plugin for temporary admin access
HappyAccess is a free WordPress plugin that replaces password sharing with OTP-based temporary admin access. Built for support engineers, agencies, and developers who need secure, auditable, GDPR-compliant access to client sites.
WooCommerce Order Emails Reply to the Wrong Person
WooCommerce sets the Reply-To on admin order emails to the customer. Here is how to change it so replies go to your team instead.
I read The 48 Laws of Power, and It Changed How I See Every Workplace Interaction
I picked up The 48 Laws of Power by Robert Greene expecting a hustle-culture playbook. Instead, I got a 3,000-year history lesson on how power actually works in every workplace, every team, and every conversation. Here's what stuck with me and what I'd skip.
What makes a WooCommerce plugin actually good? A Reviewer's Perspective on UX
Good UX is the fastest way to earn trust in WooCommerce.com. After reviewing many WooCommerce plugins, one thing is clear: UX matters more than most people expect. I share real, repeatable UX checks based on what I've seen during reviews that help plugins feel native and trustworthy from the first click.
Fixing Min/Max rules inside Product Bundles
I ran into a tricky case where Min/Max Quantities pushed its "Group of" rules onto bundled items, breaking the whole bundle flow. There was no UI switch to control it, so I traced both plugins' code, found the right filters, and wrote a snippet that fixes the product page, cart, and Store API in one go. The bundle now works as expected without changing how the standalone products behave.
How I stopped Product Add-ons from bypassing Sold Individually in WooCommerce
When Product Add-ons is active, the Sold individually setting stops working because each add-on configuration creates a unique cart item. This code snippet ensures products can only be added once per order, regardless of the add-on options selected.
How to use PHPCS with WordPress Coding Standards?
Learn how to install and run PHPCS with WordPress Coding Standards locally and in projects. From global setup to Composer scripts, you'll see how to keep your plugins and themes clean, consistent, and review-ready.