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.

Friday, November 5, 2021

Active Analytics Update: v2.1.0

I have just released an update version of the Active Analytics WordPress plugin to fix 2 issues: Issue #1: Data…

Friday, November 5, 2021

How to scrape content from Meetup.com using PHP

One of my recent projects involved creating WordPress posts from Meetup.com events. As the API is in beta state and…

Monday, November 1, 2021

WordPress: How to display nearby attractions and amenities using Yelp Nearby

This tutorial will show you how to display nearby attractions and amenities based on geographical coordinates (latitude and longitude) using…

Tuesday, April 11, 2023

How to create a Jetpack Site Stats Aggregator

I believe that Jetpack Site Stats doesn’t need an introduction any more. It provides basic but good insights on your…

Monday, May 12, 2025

Lighthouse Update and What’s Next

It’s been a while since the latest Lighthouse update, and this time we had to release another version due to…

Tuesday, December 14, 2021

How to Add a Block Pattern to a WordPress Theme

Here is a hands-on code snippet on how to add a block pattern (or more) to a WordPress theme. The…

Thursday, May 1, 2025

Using Resource Hints to Optimize WordPress Performance

Resource hints provide a way to optimize the performance of your web page on the client side. As the name…

Thursday, May 20, 2021

CSS Rounded Corners Gradient Border

I had a visually heavy project recently and I had to create a gradient border for certain elements. In my…

Thursday, September 21, 2023

“Times New Roman” Enhanced CSS Font Stack

“Times New Roman” as a Classic Web Font Option With Historical Ligatures A ligature is a special character that combines…

Friday, May 20, 2022

How to Create Double Off-canvas Menus With CSS Only

This feature has been part of a website project for many year. The left side off-canvas menu was mobile only,…

Tuesday, August 22, 2023

The Ultimate YouTube Video Embed Setup

Here is a loopable, no-controls, perfect-aspect-ratio YouTube video plus the styles for a perfect, full-width video embed.

Friday, May 14, 2021

WordPress External Featured Image via cURL

Here’s the long title for this code snippet — How to set up an external image as a WordPress featured…

Wednesday, December 11, 2024

Start an Ecommerce Store in 2021 Guide

If you have ever considered opening an e-commerce store, now is a great time to take action. In 2020, shoppers…

Monday, September 30, 2024

Gravity Forms Repeater Plugin

If there is one feature missing from Gravity Forms, that is a field repeater section. A way to set a…

Thursday, May 1, 2025

SpeedFactor Update: Less is More

The past few weeks have brought some long awaited updates to SpeedFactor. As I am focusing on tracking speed, some…

Wednesday, February 15, 2023

How to Create a Fixed Teaser Block in WordPress

This tutorial will show you how to create a collapsible fixed pop-up. It can contain subscriptions forms, contact forms, calls…

Tuesday, December 14, 2021

How to Create Smaller Buttons for the Block Editor (Gutenberg)

One of the shortcomings of the WordPress default button blocks is the size variation. There is none. Sometimes the buttons…

Monday, June 26, 2023

WordPress or Amazon? The Hard Choice for Beginner Sellers

When you are starting your own eCommerce business, there are many choices to make, and each one can determine your…

Monday, April 19, 2021

How to Improve Your Mobile Core Web Vitals: Quick Tip

Do you really need those fancy fonts on mobile devices? No? There’s your answer! This applies to any WordPress theme,…

Monday, April 19, 2021

On/Off Toggle Replacement for WordPress Checkboxes

When it comes to WordPress settings and admin panels, I’ve always been a fan of minimalism and default/native styling. I…

Wednesday, April 30, 2025

My WordPress Plugins – A Short History

Over the course of my 20 years as a PHP developer, I have developed many WordPress plugins. I don’t have…

Friday, July 12, 2024

Quick Tip: How to Center Images in a WordPress Gallery Block

Here’s a quick tip for centering images in a WordPress image gallery block vertically and horizontally. I used this for…

Tuesday, March 16, 2021

Active Analytics Update: Envato

Active Analytics has been published on Envato! I wrote above Active Analytics a few days ago and explained what it…

Monday, October 25, 2021

How to add a date/time picker to Gravity Forms

Here’s a nice challenge I got the other day regarding a better date/time picker for Gravity Forms. When I say…

Tuesday, February 23, 2021

Active Analytics Update

What is Active Analytics Active Analytics have been one of our best-selling plugins almost a decade ago, when it was…

Tuesday, February 9, 2021

How to Create Your Own Image Optimization Plugin by Leveraging Jetpack’s Photon

This is a quick code tutorial detailing how to leverage Jetpack’s Photon for custom images. Not all images in your…

Monday, April 22, 2024

How to Create Your Own Website Screenshot Service by Leveraging WordPress’ mShots API Service

This is an example-based tutorial where you will learn how to create a custom post type called Site, add a…

Thursday, May 1, 2025

17 Best Website Speed And Performance Testing Tools

50% of people expect a site to load in less than 2 seconds! Your site’s load time could be the…

Wednesday, February 3, 2021

YouTube Playlist Player, Core Web Vitals & Website Performance

My YouTube Playlist Player plugin got an update today and it speeds things up considerably. 1. First of all, I…

Monday, May 12, 2025

Instant Loading in WordPress Lighthouse Plugin

If you’ve read my thoughts on instant page loading in WordPress, and are wondering which solution to go with, note…

Monday, April 22, 2024

How to Submit a Patch to WordPress Core Using TortoiseSVN and Windows 10 (for beginners)

Here’s my steps to submit a patch to WordPress code. The whole process of editing WordPress core and submitting a…

Friday, November 13, 2020

How to Detect Multiple Matterport URLs and Embed Them Automatically

Embedding a Matterport tour in a WordPress page proves to be a bit problematic using the regular link-to-oEmbed method. There’s…

Wednesday, May 21, 2025

The Ultimate Post-Launch Checklist for Your New WordPress Website

This article is a follow-up of our previous pre-launch checklist article. You will learn how to make your new WordPress…

Monday, June 24, 2024

The Ultimate Pre-Launch Pre-Flight Checklist for Your New WordPress Website

This article is split into 2 parts, and we’ll assume you’re launching anything but a blog. You will learn how…

Monday, May 16, 2022

I Fixed Font Awesome JavaScript Logo

The JavaScript logo colours are yellow (#f7df1e) and black (#000000). Font Awesome SVG Icon The problem with the Font Awesome JavaScript logo is…

Wednesday, September 30, 2020

Article Reactions Plugin Progress

I’ve been progressing the Article Reactions plugin for WordPress and I removed all image assets and replaced them with emojis.…

Wednesday, August 21, 2024

Accessible Multiselect Dropdown

Sometimes you need to turn a multiple dropdown into a multiple checkbox selector. No other bells and whistles, no search,…

Friday, March 12, 2021

How to Use IntersectionObserver to Mark Current Scroll Progress

Let’s say you have a list of anchors, or a table of contents, and this list is fixed on screen.…

Monday, September 28, 2020

Thin UI: My Opinionated, Lightweight UI Framework

Thin UI Not your average UI framework, but a minimalist, one-size-does-not-fit-all, lightweight, responsive, modern, opinionated, Flex-based framework. I’ve been building,…

Thursday, August 27, 2020

Auto Paragraph Function with URL Parsing and Smilie Detection

This function emulates WordPress wpautop() function for custom PHP scripts, parses URL addresses and adds smilies/emoticons. If you’re coding your…

Friday, May 20, 2022

WordPress “Plugin Manager” Hack

Here’s another hack that targets WordPress admin users using brute force password cracking. In other words, if your WordPress administration…

Friday, May 3, 2024

WordPress WSO Web Shell Hack

I have recently found a nasty hack inside one of my clients’ sites, based on WordPress. Turned out that the…

Wednesday, April 30, 2025

Google reCAPTCHA v3 using PHP, AJAX and WordPress

After having issues with Google reCAPTCHA v2 and a custom WordPress implementation, I started coding an optimized version using the…

Monday, June 24, 2024

11 Places to Find Beautiful Free Illustrations

2020 saw the rise of this trend with countless sites, SaaS websites, startup websites and design sites adding illustrations to…

Wednesday, November 1, 2023

How to update your BreadcrumbList schema

If you're getting warnings when checking for breadcrumbs rich results or via your Google Search Console, here's what you need…

Wednesday, April 30, 2025

How I Planned, Blocked Out and Built a SaaS from Scratch Using WordPress

This is the story of SpeedFactor, a speed and performance tracking SaaS. At its core, the app measures a bunch…

Tuesday, June 14, 2022

Thin UI Update: Pure CSS Popover to Replace JavaScript One

I had some nice popovers coded for SpeedFactor, but I wasn't happy with the performance, especially for a single element…

Monday, May 12, 2025

Google Lighthouse 6 Performance Score Weighting: A Complete Guide

Google Lighthouse 6 just landed and it measures eight performance-related metrics in the Performance Section of the report with the…

Page 3/512345