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…