I was recently working on a WordPress site where I needed to batch upload a bunch of text-heavy images and then generate posts, descriptions, and tags from those images while also setting the images as featured for each post. In the past, I did this using a serious of manual and semi-automated processes. I used [ ]
I ran into a frustrating problem getting local video files to play on my Amazon Fire TV Stick. Goal: Reliably transfer a local video file from my Mac to my Amazon Fire TV Stick over the same network, then play it in VLC. TL;DR: Use LocalSend on your Mac, Downloader on the Fire TV Stick, [ ]
I was a bit slow at updating the various plugins I maintain for WordPress v7.0 this time around, but over the past few weeks I verified compatibility with WordPress v7.0.x. As always, keeping plugins and WordPress versions updated is one of the most important things a person can do for their site s security. As always, [ ]
I released a new version of my Block AI Crawlers WordPress plugin. It adds a few new crawlers and updates handling of some others. Here are the changes: 1.5.6 – 02/15/2026
Deleting an account should be a basic feature of any online platform. After spending the New Year cleaning up dozens of old accounts, I was surprised by how many services rely on dark patterns and deliberate friction to prevent users from leaving — an example of unethical UX that still persists in a post-GDPR world.
For the past couple of years, I have been tracking my reading history on BookWyrm, a decentralized, federated reading tracker—similar to Mastodon, but for books. In the past, I tracked my personal reading on Goodreads, but I generally prefer not to be reliant on the Amazon-owned service. For a while I used StoryGraph, but the [ ]
I recently learned that my preferred email provider — Proton — has the ability to send emails via SMTP now. This is something that other mail providers offer, if I’m going to implement it, I’d prefer not to route my emails (and potentially emails from others via contact forms) outside of the Proton ecosystem. As [ ]
The WordPress.org Plugin Directory uses Subversion (SVN) for releases. While I’ve used SVN in the past, I generally prefer to use GitHub for version control and releases. When deploying to something like Netlify or Cloudflare, it’s easy enough to point the service to GitHub and then trigger a build on a commit to the main [ ]
Over the past few years, I’ve created a handful of very niche WordPress plugins to serve specific needs on sites that I was maintaining. In the spirit of giving back to the WordPress community, I’ve shared them on WordPress.org. As a responsible plugin maintainer, I do my best to test each plugin in the latest [ ]