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…
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…
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…
Tiny WordPress
Tiny WordPress – tinywp.php – is a quick (but not dirty) PHP script which auto-installs WordPress on any host. Just…
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…
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…
Native JavaScript hasClass()
These JavaScript snippets implement a native hasClass() function, which checks if an element has a certain class. A prototype approach…
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…
How to hide an element using JavaScript
Here are 3 methods to hide an element using JavaScript. How to hide an element using JavaScript? Set native display…
End of an Era: Travel SEO
I’ll just leave this here for reference purposes and I won’t explain any code, as it’s obsolete and I’m not…
How to Migrate bbPress to Mingle Forum
I’ve recently taken over a WordPress website, having a combination of bbPress and BuddyPress. Not my cup of tea, although…
How to Create a Programmatic JavaScript Tooltip
Here’s a short tutorial on how to create a programmatic JavaScript tooltip. I needed this feature to recreate a product…
How to create a YouTube video cover using the YouTube Iframe API
There’s an increasing trend of adding full-width (possibly full-height) YouTube video covers with autoplay. Using the YouTube Iframe API, this…
How to Get and Set URL Parameters with JavaScript
This is an old script, which helped a lot with the initial phase launching a project on all browsers and…
Convert Hex2RGBA For Your CSS Selectors
I’ll just leave this here. It’s an old piece of code I used for a theme, where users selected a…
How to Code the Ultimate Landing Page For SEO and Conversions
š» Bear with me. I know it sounds like link bait, but it’s not. It’s true. I’ll prove it with…
Google AI – Making Google Think You Have the Best Site
I was having a conversation with a colleague the other day about how Google ranks a site. His idea was…
From Web Development to Growth Hacking
I pivoted. I stopped doing freelance web development and started focusing on an older side project of mine, growth hacking…
Deconstructing Neil Patel’s WordPress SEO Article
I’ve recently had an article from Neil Patel land in my inbox. The title was link-baity enough to make me…
How to post to Slack using a third-party script
Or Google Tag Manager, whichever is handier. Here’s a short snippet of code I used to use to notify my…
How to Install WordPress Plugin Dependencies
This is a lightweight alternative to TGM Plugin Activation class, which is currently the best way to require and recommend…
9 Innovative Ways to Improve Your Product Photos
If you want to examine an online product, you canāt just pick it up off the shelf. On top of…
11 Navigation Tips for Smoother Sailing on Your Site
Thereās no limit to how good your navigation can be ā thereās no risk to it being too comprehensive, too…
Why SEOs Need to Stop Saturating the Web with Content
Ever since I started working in the SEO/SEM industry, the mantra I would say I have heard the most is…
How and Why I Removed IE11 Support From Our Product
Developing a product from scratch takes a lot of compatibility code, code maintenance, cross-browser testing and user testing. Building a…
West Cork Dream Properties
I have recently finished the third iteration of West Cork’s estate agents and valuers site for Charles McCarthy. After almost…
The Journey to PHP 7
I have updated my free WordPress plugins to PHP 7+ and removed support for anything lower than that. I decided…
About WordPress Forks, b2, b3 and Future Projects
A lightweight CMS, based on WordPress pre-5.0, with no bloated code, no external resources, no extra JavaScript libraries, no JavaScript…
How to Build a Vanilla JavaScript Slider in Less Than 100 Lines
This quick tutorial will show you how to create a basic slider in less than 100 lines. The actual JavaScript…
Product Sans
What is Product Sans? The new Google logo and identity system was developed by creating a custom, geometric sans serif…
How to Build an Awesome Pricing Table/Matrix Using HTML/CSS
Here’s a quick sample of an awesome pricing table/matrix I built aĀ while ago for a service that’s no longer live.…
How to Implement a Service Worker in Your Website and How to Create a Basic PWA
You definitely don’t need a plugin for this. Although there are plugins which help with creating a service worker and…
A Trio of Approachable Vanilla JS Sliders
This post has been superseded by How to Build a Vanilla JavaScript Slider in Less Than 100 Lines. The past…
Cross-browser Query Parameter Getter and Setter
Here’s a cross-browser compatible way of getting query parameter from a URL or setting query parameters and reloading the page. An…
How to Autoplay a Video Element Using JavaScript
The latest Chrome version has stopped video autoplay if the video is not muted. Firefox and the other browsers will soon…
Do You Really Need Wordfence (Apache Edition)
Nope! What you need is an up-to-dateĀ WordPress, up-to-date plugins, the latest server software, a bit of common sense and a…
Cache & Compress Your WordPress Site Without a Plugin
WordPress caching and compression is mostly common sense. If you have a powerful caching solution on your server, and you…
How to Code an Assistance Request Plugin for WordPress
Internal, client-oriented plugins are mostly used by maintenance agencies. They supply a plugin to their clients, allowing them to submit…
Cross-browser CSS object-fit
June 2021: I have updated the CSS rules to remove IE11 support. My latest project required a cross-browser cover video.…
2018 Blog Awards Ireland
Guess what? getButterfly is a finalist for the 2018 Blog Awards Ireland in theĀ Business Blog > Digital & Tech category.…
Native JavaScript Drag&Drop Upload
Modern browsers allow you to define native dragging & dropping functionality with a graceful degradation for older/ancient browsers, such as…
Passing Arguments to External JavaScript Files
This post covers the topic of passing arguments to external JavaScript files. I want to say up front that there…
JavaScript Data Types
Every variable in JavaScript has a data type which dictates the values that can be stored in it. However, JavaScript…
Building a Simple Tab Strip using Vanilla JavaScript
I recently developed a simple tab strip using only HTML, CSS, and vanilla JavaScript. The script does not require any…
Convert jQuery.get() to Vanilla JavaScript
In the latest iteration of my YouTube Playlist Player plugin, I decided to remove all jQuery dependencies. I replaced the…
ASP.NET Header Cleanup, HSTS Implementation and Browser Security
Here's how to improve the security of an ASP.NET powered web site, with no access to the underlying code (controllers…
How to Compare Version Numbers in JavaScript
The basic idea to make this comparison would be to get arrays of parts from the version numbers, and thenĀ compareĀ pairs…
DOM ready functionality using vanilla JavaScript
This is a reliable way of checking for DOM ready. The first version uses a procedural function, while the second…