Monday, May 16, 2022

How to Draw on Canvas and Save the Result Using Vanilla JavaScript

This was part of a complex drawing project, which is not relevant right now. The idea was to have a…

Monday, May 16, 2022

Date Countdown Using Vanilla JavaScript

A while ago, I coded several date countdowns for several promotions. These countdowns went straight inside a third-party popup solution,…

Thursday, November 2, 2023

Random Imgur Images Using Vanilla JavaScript

I found this old code I used for an old forum a long time ago, and I decided to bring…

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, 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…

Monday, June 13, 2022

How and why I added a circle following my mouse pointer

I’ve seen this behaviour on several Russian sites, and it looked really slick, especially when the movement was delayed compared…

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…

Thursday, June 23, 2022

How I Improved My JavaScript Blog Articles Schema

I use WordPress, but I don’t use a specific SEO plugin. Everything is done inside the theme. Last week, I…

Monday, May 16, 2022

Switching From JavaScript to PHP for Browser Detection and Avoiding Core Web Vitals Penalties

In the light of the recently introduced Core Web Vitals, I decided to save some script start-up speed and switch…

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…

Monday, September 22, 2025

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…

Thursday, June 23, 2022

Experiment: JavaScript Boxed Carousel with Progress Indicator

Here's an awesome JavaScript carousel built for a client project, but then scrapped. It definitely has potential for unlimited items.…

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…

Monday, September 22, 2025

An Extreme Approach to Speeding Up WordPress

This tutorial applies to a specific use case: WordPress as a minimal CMS, highly optimized for SEO.

Monday, September 22, 2025

How to Generate Quality Leads From Facebook

This is a guest post from 4Property, a leading provider of technology and market intelligence services for estate agents and…

Wednesday, November 29, 2023

Google Pagespeed Insights vs GTmetrix vs SpeedFactor: Which One Is Better?

Google Pagespeed Insights, GTmetrix and SpeedFactor are all great tools to help identify speed related issues and fix them. All…

Monday, September 22, 2025

How to Optimize WordPress’ Native Settings for Performance

WordPress comes with default settings and options, suitable for blogging. Part of the “Decisions, not options” philosophy, they might not…

Thursday, July 7, 2022

How To Update Your WordPress Plugin From GitHub in 2020

I have coded three of these before, but I have finally coded and optimized the perfect one. A GitHub plugin…

Thursday, July 7, 2022

How to Upgrade Your GitHub API Authentication

If you’ve been getting lots of email notices when using GitHub API calls related to: Deprecation notice for authentication via…

Tuesday, November 7, 2023

Work-From-Home Office Setup Inspiration for Coders & Developers

Minimalistic or grandiose? Or cluttered? What’s your preference when working from home? As most of us have been forced to…

Thursday, June 23, 2022

How to Work Remotely: Practical Tips

😎 These tips are obviously biased and focused on developers. Home Office Designate a room as your office. This helps…

Friday, May 3, 2024

How Not to Get Affected by Google Algorithm Updates

It’s common sense. I’ve heard a lot of complaining from SEOs who have sites that have plummeted over the past…

Thursday, May 1, 2025

How Many Assets Should a Website Have?

How Many JavaScript Files Should a Website Have? A maximum of four. And I would still argue that is too…

Thursday, May 1, 2025

Why Is Web Page Size Important?

As of 2021, web page size is the most important factor to measure, as the bigger a page is, the…

Thursday, May 1, 2025

Plugins Slow Down Your WordPress Site

“There’s a plugin for that” is a long-time notion in the global WordPress community. It’s a very positive example of…

Thursday, March 3, 2022

10 PHP functions and code snippets to work with dates

Get current time, formatted This is a super basic function, takes no parameters and returns the current date. Format a…

Thursday, May 1, 2025

How to Improve DNS Lookup Time

There are two major issues when it comes to DNS lookup times: 1. Number of external requests A complex website…

Wednesday, February 3, 2021

Estimated Reading Time in Web Design

Users don’t read (more than 18%) About 11 years ago, Jakob Nielsen wrote an “Alertbox” titled How little do users read?.…

Wednesday, November 29, 2023

Why Growth Hacking? How Product and Marketing are Directly Correlated

This is a guest post by Casey Armstrong. It’s 7am. You roll over and grab your phone to start checking on…

Saturday, October 12, 2019

How do you struggle with blog growth?

Hundreds of thousands of blogs are on the internet now, and most likely there are many in your own industry,…

Thursday, May 1, 2025

17 Tips for Emailing a Cold List Without People Hating You

OK, so you have this large, “targeted” email list. So you say to yourself: “Self, I’ve got this list of…

Saturday, October 12, 2019

How do you identify trustworthy businesses/clients to work with?

Primarily as a freelancer or contractor, what criteria do you have for identifying trustworthy companies to work with? For instance,…

Tuesday, June 14, 2022

An Unnamed Project – A Technical SEO and Performance Auditing Tool

I’ve been working on a super secret project in the past weeks, a technical SEO and performance auditing tool. The…

Friday, June 3, 2022

How to Change Page Title Using JavaScript

This JavaScript will modify the text of the browser tab when a visitor focuses or unfocuses the tab. You can…

Monday, May 16, 2022

How to Populate OpenStreetMap with Foursquare Venues/Amenities

First of all, we need a Foursquare app and a client ID and secret. Head over to developer.foursquare.com and get…

Monday, May 16, 2022

WordPress Responseless XHR Request Using JavaScript

A responseless XHR (POST) request is a request which does not require any user feedback, such as storing post views…

Friday, August 21, 2020

Tiny WordPress

Tiny WordPress – tinywp.php – is a quick (but not dirty) PHP script which auto-installs WordPress on any host. Just…

Monday, May 16, 2022

How to track and measure phone number views with JavaScript

Use this tutorial to create phone number links and track/measure views. As phone numbers are clickable (and work) only on…

Monday, May 16, 2022

How to show an outdated browser alert on Internet Explorer 11

Here’s a nice overview on why Internet Explorer 11 should be phased out and users blocked from viewing the site…

Wednesday, April 30, 2025

Native JavaScript hasClass()

These JavaScript snippets implement a native hasClass() function, which checks if an element has a certain class. A prototype approach…

Monday, May 16, 2022

How to extract a value from an element and, optionally, round it

This JavaScript snippet will extract a price from a DOM element, remove all alphanumeric characters, such as currency or symbols…

Page 6/9123456789