Start here – build anything

️We build professional WordPress plugins.

Professional, high-quality, hand-crafted plugins for WordPress.

Improve your website pagespeed and WordPress security with our WordPress performance & security plugin – WP Lighthouse

Active Analytics is a privacy-enhanced, lightweight WordPress analytics plugin

Start your own Christmas, Valentine’s Day, Easter, or Halloween eCards site

💡 Founded in 2011 by Ciprian Popescu. ☘️ Headquartered in Dublin, Ireland 🇮🇪.

All our plugins are compatible with WordPress 5+, WordPress 6+, ClassicPress, PHP 7+, PHP 8+, and receive automatic lifetime updates.

WP GCP — A WordPress plugin for Google Consent Mode v2

Disclaimer: While we strive to provide accurate information, it is important to seek legal advice from a qualified professional, such as a lawyer, solicitor, or legal representative, to ensure compliance with the General Data Protection Regulation (GDPR) and other applicable laws when implementing your privacy policy. What is Google Consent Mode v2? Consent mode receives […]

Learn JavaScript
Learn JavaScript by example

Read the Blog
Why, how-to & code snippets and tutorials

Find a WordPress Plugin
Free and premium WordPress plugins

Professional, high-quality plugins for WordPress, WooCommerce, Gravity Forms, Analytics, Site Speed and more. Page speed optimization plugins, SEO plugins, image gallery plugins, eCards, Lighthouse and more.

inView

Loading Images Based on Screen Visibility Lazy loading images is a technique that defers the loading of non-critical resources (such as images) until they are needed. This approach can significantly improve page…

Thin Select — Custom JavaScript Dropdown Element

Let’s create a custom <select> element using vanilla JavaScript and CSS. Thin Select provides a sleek and minimalistic design for <select> dropdowns. Here is what we’ll build: See the Pen Thin Select…

How to Create a JavaScript Spinner with Phenakistoscope Effect

In this tutorial, you will learn how to create a JavaScript spinner that mimics the effect of a Phenakistoscope, an early animation device that creates the illusion of motion by spinning images…

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 size and a slowdown in your website’s loading speed. This can be…

JavaScript Game: Obstakl

Obstakl is a game where the player needs to avoid moving obstacles, by controlling the main character using the mouse. See the Pen Obstakl – JavaScript Game by Ciprian (@ciprian) on CodePen.…

JavaScript Marquee: A collection of scrolling text snippets

I have started to consider adding scrolling text into my design process. I started by using a CSS-only approach. The principle for the CSS infinite scrolling process is to have a specific…

JavaScript Numbers: A Modern Reference

JavaScript is a dynamically typed language, and it doesn’t have specific integer or floating-point types, unlike some other languages. In JavaScript, all numbers are represented as 64-bit (8 bytes) floating-point numbers, which…

How to Enable JavaScript

How to enable JavaScript in your browser and why Nowadays, all web pages contain JavaScript, a scripting programming language that runs on the visitor’s web browser (client-side). It makes web pages functional…

Fast and accessible JavaScript client logo carousel

A while ago, I had to create a client logo carousel using CSS only. I did, and it worked perfectly. I tried to use it on several other projects after that, and…

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, May 22, 2024

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

Wednesday, May 8, 2024

inView

Loading Images Based on Screen Visibility Lazy loading images is a technique that defers the loading of non-critical resources (such…

Wednesday, May 8, 2024

Thin Select — Custom JavaScript Dropdown Element

Let’s create a custom <select> element using vanilla JavaScript and CSS. Thin Select provides a sleek and minimalistic design for…

Tuesday, May 7, 2024

How to Create a JavaScript Spinner with Phenakistoscope Effect

In this tutorial, you will learn how to create a JavaScript spinner that mimics the effect of a Phenakistoscope, an…

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…

Friday, May 3, 2024

WP GCP — A WordPress plugin for Google Consent Mode v2

Disclaimer: While we strive to provide accurate information, it is important to seek legal advice from a qualified professional, such…

Monday, April 22, 2024

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…

Friday, March 8, 2024

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, February 26, 2024

Unlimited Licenses Are Back!

We are excited to announce that Unlimited licenses are back! Once again, you can get Unlimited licenses for any of…

Friday, February 23, 2024

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…

Wednesday, January 31, 2024

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, January 22, 2024

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…

Thursday, February 22, 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…

Tuesday, May 7, 2024

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

Wednesday, December 13, 2023

ImagePress – User Onboarding

The latest version of ImagePress has a new feature: onboarding. It's something that every plugin should have, and this is…

Monday, February 19, 2024

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.

Tuesday, December 5, 2023

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, November 7, 2023

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…

Tuesday, October 31, 2023

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…

Tuesday, October 31, 2023

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…