Monday, September 22, 2025
Advantages of PHP 8.3 with WordPress
I have upgraded my hosting server to PHP 8.3 for all my WordPress and non-WordPress websites. While I am yet…
Tuesday, October 29, 2024
How to build a block editor sidebar using vanilla JavaScript
This article will explain how I moved away from the True Metabox plugin and coded my own sidebar for a…
Monday, September 22, 2025
20 essential steps in payment gateway testing for your WordPress plugin store
We have recently updated the user interface for our WordPress plugin store. We have also updated the customer experience with…
Monday, September 22, 2025
How to remove spam users and prevent spam registrations
A client of mine had an old website that grew uncontrollably large with thousands of spam registrations, spam posts, spam…
Tuesday, May 7, 2024
JavaScript Game: Obstakl
Obstakl is a game where the player needs to avoid moving obstacles, by controlling the main character using the mouse.…
Monday, September 22, 2025
JavaScript Marquee: A collection of scrolling text snippets
I have started to consider adding scrolling text into my design process. I started by using a CSS-only approach. The…
Monday, September 22, 2025
JavaScript Numbers: A Modern Reference
JavaScript is a dynamically typed language, and it doesn’t have specific integer or floating-point types, unlike some other languages. In…
Monday, September 22, 2025
How to Enable JavaScript
How to enable JavaScript in your browser and why Nowadays, all web pages contain JavaScript, a scripting programming language that…
Wednesday, August 21, 2024
Fast and accessible JavaScript client logo carousel
If you want to use the logo carousel as a WordPress plugin, see How to Create a Logo Carousel as…
Tuesday, September 26, 2023
The Musk Algorithm
Walter Isaacson’s new book about Elon Musk is a fine biography, but an even better business book. And like all the best…
Monday, September 25, 2023
Segmented Horizontal Bar Chart (Graph) Using Vanilla JavaScript
If you're looking to create a segmented (stepped) horizontal bar chart using nothing but vanilla JavaScript, you're in luck!
Wednesday, September 20, 2023
How to allow subsite administrators to edit users in a WordPress Multisite Network
WordPress Multisite is a powerful feature that allows me to manage multiple WordPress websites (or subsites) from a single installation.…
Wednesday, September 20, 2023
How You Can Join Successful Sellers Running an Amazon Business from Home
If you follow technology trends in recent years, you can’t help but notice the number of people running their Amazon…
Friday, September 8, 2023
A simple JavaScript suggestion autocomplete app
These days, I’ve been working on building a prediction search engine for real estate websites. I started with something small,…
Thursday, September 7, 2023
How to disable and remove old post revisions in WordPress (including multisite)
If you don't want to use a plugin to clean up your WordPress website and insist on custom coding it,…
Wednesday, April 30, 2025
How to add a Media Manager button to a block editor metabox
How to add a "Manage Media" (remember "Add Media"?) button to any post type and allow users to attach images,…
Monday, September 22, 2025
A collection of modern native JavaScript object and array utilities
Arrays Chunk Creates an array of elements split into groups the length of size. Compact Creates an array with all…
Monday, July 28, 2025
How I am tracking my WordPress plugin updates on my own update server
I am selling my WordPress plugins, and they all come with a lifetime updater feature. Most of my plugins, including…
Tuesday, June 20, 2023
How to get all videos from a YouTube channel using PHP and JavaScript
The code below works with multiple channels. First, we need to loop through all channels and get all videos. The…
Tuesday, February 17, 2026
How Active Analytics Stores Data Without Slowing Down Your WordPress Database
I have released a new version of the Active Analytics plugin for WordPress. This version focuses entirely on data storage,…
Monday, May 12, 2025
How to set up your own Google CrUX report
As part of decommissioning the Core Web Vitals report from Lighthouse, here’s how the CrUX report has been built. If…
Monday, May 12, 2025
Lighthouse is removing the Core Web Vitals and CrUX features
Why? There are multiple reasons and multiple factors involved. There are a few key reasons behind this change, all of…
Monday, May 12, 2025
How I tackled WordPress registration spam
For a while now, I have been using Mika’s Ban Hammer plugin with a custom list of blacklisted domain names…
Tuesday, February 17, 2026
Tracking pageviews, sessions and unique users in WordPress using Active Analytics
For almost 2 years, I’ve been tracking WordPress visits using my Active Analytics plugin. I’ve gradually removed Google Analytics from…
Monday, June 24, 2024
QuakeWiki.net is changing owners
It’s time for me to pass the torch to another huge Quake fan – Spirit from Quaddicted.com. I’ve been the…
Tuesday, March 19, 2024
How to code a website security audit using PHP and WordPress
This tutorial will teach you how to build a website security audit in the form of a WordPress plugin. We…
Friday, April 28, 2023
JavaScript Canvas Sine Wave
The code below generates a sine wave with a specified amplitude, frequency, and phase. The wave is drawn on the…
Sunday, April 23, 2023
Check DNS records in bulk using JavaScript
If you’re a web developer or network administrator, you know that DNS records play a crucial role in ensuring that…
Wednesday, April 30, 2025
How to Replace Slider Revolution with Flickity and Gain 50+ Performance
This is a short story about WordPress website performance optimization. A recent project of mine involved optimizing a website, currently…
Monday, September 22, 2025
Thin Table Pagination: A new addition to my JavaScript repository
I wrote about client-side JavaScript pagination before, but I have never stopped searching for the perfect pagination method, both from…
Monday, September 22, 2025
The Impact of Website Speed on Conversion Rates
Although content, social media, paid marketing, and design all play an important role in setting up a successful online business,…
Monday, September 22, 2025
Admin Menu Tree Page View 2.8 Refactoring Update
This has been a long time coming, and it’s finally live now. For this refactoring update, I have employed around…
Monday, September 22, 2025
A Detailed Page Builder Comparison of Elementor, WPBakery and the Native WordPress Block Editor
This article is aimed at several of my clients, pondering which theme to use. There are countless comparisons out there,…
Thursday, May 9, 2024
SEO Crawlability Issue: Resources are formatted as page link
While working on a SEMrush audit, I found a new type of crawlability notice: 47 resources are formatted as page link…
Monday, December 16, 2024
SEO, Adjacent Posts and Session Duration
Time on site, or session duration, is the total amount of time that a user spends on a website. A small…
Thursday, March 30, 2023
When You Need to Get the Professionals Involved to Make Your WordPress Website More Visible Online
Even at the outset of your business venture, it is not too early to get professionals involved. In fact, you…
Tuesday, February 14, 2023
Missing Open Graph Images? Remove Image Hotlinking!
I have just found out that my image hotlinking solution was preventing social networks from reading my Open Graph image…
Monday, September 22, 2025
Custom WordPress Plugin Update Server
This is an automatic updater for plugins hosted outside WordPress.org. Currently, WordPress doesn’t have an easy way for plugins which…
Monday, September 22, 2025
Lighthouse Security Update: Brute-Force Login Protection
Security Update: Brute-Force Login Protection Have you heard about the latest update to the Lighthouse WordPress plugin? It just got…
Thursday, January 19, 2023
Securing Your WordPress Site: A Guide to Limiting Login Attempts Without a Plugin
Brute-force login attacks pose a significant threat to the security of WordPress websites. This type of attack involves repeatedly guessing…
Wednesday, September 3, 2025
StackGrid — A Light Vanilla JavaScript Masonry Grid
Introducing the lightest and most efficient Masonry grid available — StackGrid — powered by pure vanilla JavaScript, no dependencies required.…
Tuesday, December 27, 2022
How to Open Only One Details/Summary Element at a Time
Let’s suppose you want to build a simple accordion or a help section, and you want to use a <details>…
Tuesday, December 27, 2022
Canvas – A Simple Drawing Application
This is a simple drawing application that allows the user to select a colour and thickness for their brush and…
Tuesday, February 17, 2026
Why Most WordPress Analytics Plugins Get Slow (And How Active Analytics Was Built Differently)
Active Analytics has become a daily necessity, and the data is available at a glance with the most relevant information…
Thursday, January 22, 2026
Fast and accessible CSS-only client logo carousel
Fast and accessible CSS-only client logo carousel. One in two sites requires some kind of client/provider logo carousel.
Monday, September 22, 2025
What is an Influencer Marketing Strategy?
Influencer marketing has come along in leaps and bounds over the last few years, with the rise of social media…
Monday, September 22, 2025
Python Application SDKs For File Uploading
In this article, we will be looking at SDKs that can be used for file uploading in python applications. These…