Currently browsing Blog
Our blog deals with page speed optimization, page loading, web performance, WordPress tutorials, PHP code wrangling, JavaScript tutorials and code snippets. Our web insights series allow designers and developers to discover the latest and most significant stories on the web, while sipping a hot coffee.
Tuesday, February 25, 2025
PropertyPin – A Visual Bookmarking Platform for Property Images
By now, you should be familiar with my ImagePress plugin for WordPress. If not, here’s the gist: it allows website…
Monday, July 29, 2024
How to Get Dominant Colours of an Image in PHP
This feature has been requested by some of my ImagePress customers. It is also being used on my PropertyPin website.…
Wednesday, July 17, 2024
How to Completely Remove the Jetpack Plugin
This is mostly a note to myself. Jetpack is a well-used plugin on a number of sites and has over…
Thursday, July 11, 2024
ClassicPress TinyMCE: How to Add Styles, Buttons, Fonts, Dropdowns & Popups
When I took over FX Builder and started updating it for the new ClassicPress 2+, I wanted to add some…
Wednesday, December 10, 2025
Moving to a System Font Stack (How and Why)
I believe the “why” in the title is self-explanatory. If not, it’s all about performance. Over the past decade, I…
Friday, July 12, 2024
How to Build a Vertical Off-Canvas Menu Bar Using JavaScript and CSS
In my work, coming up with fresh navigation ideas and creating an intuitive and efficient navigation system is essential for…
Monday, September 22, 2025
How to Correctly Configure GDPR Privacy and Google Consent Mode v2
For this tutorial, I will use the WP Google Consent Platform (GCP) plugin for WordPress. This is a two-step operation.…
Thursday, May 2, 2024
How to Lazy Load Google Map Iframe Embed in WordPress
If you embed a Google Map iframe on your WordPress website, you may notice an increase in the total webpage…
Monday, September 22, 2025
What’s New in the Latest Lighthouse Release
The last few releases of Lighthouse have been silent, and fixed or patched various issues with individual websites. I have…
Monday, May 12, 2025
Dark Mode for Lighthouse!
I’ve long wanted to add a dark mode to my WordPress back-end, but “thanks” to the block editor, it’s not…
Thursday, May 9, 2024
WordPress Plugins and User Experience
What happens when WordPress plugins reach maturity? At this moment, and I’m talking strictly from a code/design point of view,…
Monday, September 22, 2025
How to Build a Front-end Password Reset Form in WordPress
I have just moved an entire user account module from the back-end of WordPress to the front-end. This includes the…
Monday, September 22, 2025
WP Send
WP Send is the simplest way to send your files around the world. Share large files with configurable filesizes and…
Tuesday, March 19, 2024
WordPress Plugins – Focus Update
“Every 3-6 months, it’s smart to take a step back and see if you are still on the path you…
Monday, May 12, 2025
Lighthouse – CAPTCHA, Akismet Integration and Spam Registration Hooks
I am excited to announce the latest release of Lighthouse in 2024, the WordPress performance tuning plugin that removes a…
Friday, January 19, 2024
New ImagePress release, new profile editor UI and lots of issues fixed
The latest version of ImagePress decouples the user profile hooks from the front-end profile editor. The reason is that, when…
Monday, December 16, 2024
Mingle Forum Refactoring, Dogfooding and More
I have just launched version 3 of my Mingle Forum plugin. Yes, forums are a dying breed, and that’s why…
Tuesday, January 9, 2024
The Golden Age of Forums
Do you remember forums? They’re still around, obviously, but do you remember the golden age of forums? Every developer or…
Monday, September 22, 2025
How to Build a Multi-User Image Gallery in WordPress: A Comprehensive Guide
So, you want to build a specialized online platform designed for artists, particularly those in the fields of digital art,…
Friday, July 12, 2024
ImagePress – User Onboarding
The latest version of ImagePress has a new feature: onboarding. It's something that every plugin should have, and this is…
Wednesday, April 30, 2025
tail.select is getting an update
The tail.select JavaScript library is getting an update, jumping from 0.5.x to 1.0.0, and breaking custom functionality.
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…
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…
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…
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…
Monday, September 22, 2025
Active Analytics and optimal data storage techniques
I have released a new version of the Active Analytics plugin for WordPress. This version focuses entirely on data storage,…
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, May 16, 2023
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…
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,…
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…
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…