Hi. I’m Gray. This is my blog, containing web development tutorials about subjects that are niche and which I haven’t found much other web material about. If you find it useful at all, drop a comment in the post.
I’ve got a infrequently updated portfolio you can peruse, or maybe you’d like to check out my stand alone site on Best Practices for WordPress/Web development‘.
This guide is for users who have deployed their Open Brain to Supabase but cannot see the “Add Custom Connector” button in the Claude web settings because they are not PAID users. Follow this guide and it’ll work even if you’re using a free tier. Step 1: Find Your Absolute Node Paths Claude Desktop does…
DetailsThe Mistake When archiving the Portland Winter Light Festival website to a new subdomain (2026.pdxwlf.com), I performed a standard database migration (Search & Replace) to update the URLs. I assumed that since my media lived in an AWS S3 bucket via WP Offload Media, the links would just follow the new domain. The Problem Everything…
DetailsStop mixed content warnings for good: code snippet that forces all media URLs to HTTPS, even when your migration missed a few.
DetailsEvolving Front-End Best Practices, WordPress Realities, and a Case Study on Script Versioning Failures For much of my career as a WordPress developer, I approached front-end performance optimization with a familiar set of “best practices”: minimize everything, combine everything, strip everything, and let the browser load as little as possible. If a setting promised leaner…
DetailsWhen I rebuilt the Portland Winter Light Festival set up, one of my main goals was to reduce the amount of repetitive data entry that had been occurring in regards to the website. With over 160 art pieces and performances, there was a lot of copy-paste-copy-paste going on that was soul crushing for the mostly…
DetailsIf you’re struggling with Vimeo videos that won’t autoplay in Chrome despite being muted, you’re not alone. This is a common issue that stems from conflicting parameters in Vimeo embed codes, combined with Chrome’s strict autoplay policies. I thought I understood it, but certain stakeholders of my client were still getting only the first still…
DetailsIntroduction Database performance is critical for WordPress sites, especially as they grow in content and traffic. While attempting to optimize my WordPress database using the Index WP MySQL For Speed plugin, I encountered a serious underlying issue that prevented the optimization from proceeding: multiple rows in the wp_options table sharing the same option_id value of…
DetailsYou ever go back into a WordPress page and notice the “Revisions” count is something like… 83? Yeah, me too. Look, I’m all for a healthy paper trail, but at some point you’re just hoarding drafts like a content-prepper waiting for the end times. So what happens when you forget to limit post revisions for…
DetailsSimpler article written in 2019, I’ve last updated this on July 9, 2025 If you do a lot of WordPress development for many clients, eventually you’ll end up with those local sites eating up a good portion of your computer’s hard drive space. Some of my clients have uploads folders that are +1gb. I used…
DetailsLearn how to preload custom post types in WordPress with flexible, admin-editable block patterns. Create better content workflows and happier clients with smarter templates.
Details