I hope everyone in the northern hemisphere is enjoying their summer and for those of you in the southern hemisphere, stay warm! It was a nice month for Kernl with lots of good structural changes and a few new features rolled out.
- SendOwl Integration – If you use SendOwl to distribute your plugin or theme you can now validate license keys with Kernl. This means that every time a customer checks to see if an update is available Kernl will first validate their SendOwl license.
- Analytics Aggregate Data – Kernl Analytics now uses aggregate data to populate charts. This means that charts load instantly versus taking a few seconds as they did before. This was a big change and enables us to do neat things in the future like calculating changes over time.
- Analytics Domains – In addition to using aggregate data to populate charts Kernl Analytics now has improved domain list support. Data is properly paginated, populated via aggregates for speed, and searchable.
- Version Number Improvements – Kernl now supports version numbers such as 10.2.2-alpha or 9.2.1-beta. Previously the alpha|beta tags at the end were not supported.
- Download Graph Bug Fix – A customer reported that the download chart in the plugin/theme detail pages weren’t quite right. This bug has been fixed.
- License Management – The license management page was occasionally showing duplicates. This bug has been fixed.
Thats it for this month!
It’s been a great month for Kernl! Lots of new features, some bug fixes, and few updates to the license checking on the plugin and theme update checker files. Lets dive in!
- Gumroad License Validation – You can now use Kernl to validate your Gumroad licenses! This can be enabled for plugins or themes by going to the product edit screen, clicking the “License Management” tab, and then selecting “Validate Gumroad License?” at the bottom.
- Kernl Referral Program – Kernl has a referral program. For every 3 referrals you send us we’ll give you a free month. Customers signing up with your referral code get their first 3 months free.
- Restrict Updates to a Maximum Version – If you use Kernl’s license management you can now restrict update availability to a maximum version. For example if the current version of your product was 1.5.0 and you gave the user a license for < 1.6.0, then they would receive updates all the way through 1.5.X. This is a great way to drive more sales of your product!
- Plugin/Theme PHP Update Check Files – The license error display behavior of these files has been greatly improved. The error dismisses when it’s supposed to, only shows up on the updates and plugin|theme page, and the license error message can now be customized. It is highly recommended that you update. The file is also versioned now so knowing when to update in the future will be much easier.
- Purchase Code Deprecation – Kernl’s old purchase code frontend interface has been hidden behind a feature flag. The goal is the have the old purchase code functionality completely removed by the end of July.
- Copy Versions from Product to Product – To support special development styles, you can move versions of a product to another product. This is inherently dangerous and only toggled on for the person who requested it. If you think this might be useful please reach out to firstname.lastname@example.org.
- You can now easily click to a customer’s page from the License Management page.
- A bug was fixed where the customer filter would stay set even after you had navigated away from that page.
- Numerous copy changes were made on the License Management page and on the marketing site.
- Some feature flags were removed from features that have proved to be stable.
- The main route for plugin update checks (also the highest traffic route on Kernl) was refactored to use async/await instead of promise chains. This makes it much easier to maintain and improve.
If you use Gumroad to sell your WordPress plugins or themes you can now use Kernl to validate those licenses before new updates are made available.
How does it work?
When you create a plugin/theme in Kernl you can select the “Validate Gumroad License?” checkbox and fill out the “Gumroad Product Permalink” field. With those two fields completed Kernl will validate the license code passed into the Kernl via the update checker against Gumroad’s public license API. If the license code passes validation Kernl will allow the update to proceed.
That’s all there is to it! If you need any help getting things set up reach out to email@example.com.
Kernl WordPress license management now allows you to limit updates up to a specific version.
How it Works
Assuming that you already use Kernl’s license management, go to the License Management area of Kernl. Once there add or edit a license.
Now you can fill in the “Max Update Version” field. This field can simply be described as “the version of your product which requires a customer to buy a new license”. For example:
- Customer A bought a license with “Max Update Version” set to 2.0.0. The product was at version 1.7.0 at the time of purchase. Over the next few months you release 1.8.0, 1.9.0, 1.9.1, 2.0.0, 2.0.1. Customer A only receives product update versions 1.8.0, 1.9.0, and 1.9.1.
Why should I use this?
Drive. More. Sales. This new feature allows you to be extremely granular about what updates a specific customer receives. We also made updates to plugin_update_check.php and theme_update_check.php that allow you to customize the invalid/expired license message. We strongly believe that this combination of better license expiration messages and limiting through specific update version can be instrumental in helping you drive more sales.
For most of Kernl’s life our best channel for adding new customers has been word-of-mouth referrals and now you can be rewarded for referring new customers!
How It Works
When you go to your Kernl profile you’ll see a new section called “Referrals”.
It briefly explains how the Kernl referral program works, gives you your referral link, tells you how many referrals you’ve made, and how many free months you’ve earned.
The rewards for the Kernl referral program are as follows:
- For the referrer: Every 3 customers you refer to Kernl earn you one free month. No restrictions on plan or usage. There is a max of 24 referrals. If you somehow manage to bump in to this restriction, shoot us an email and we’ll work with you. 🙂
- For the new customer: By using your referral code they earn 3 free months of Kernl (instead of the usual 30 day free trial).
That’s it! Kernl’s referral program is intentionally simple. Thanks to everyone who spreads the word about Kernl. The more customers we have the better we become.
Welcome to May! Lets go ahead and dive right in.
- Data Export – You can now export (most) of your Kernl data. To export your data, log in to Kernl, go to your profile, and scroll down to the “Export My Data” button.
- Node.js Upgraded – Kernl has been updated to use the latest LTS version of Node.js. We are now on 8.11.1.
- Kernl Analytics Hardware Upgraded – Kernl analytics sees a lot of traffic on a daily basis. As that number continued to grow we were seeing some resource contention issues during peak periods. We were able to mitigate all resource issues by upgrading our hardware from a single vCPU setup to a three vCPU setup.
- https://kernl.us/wordpress-installation-statistics – Check out our new public WordPress installation statistics page! Most of this information is readily available on WordPress.org, but Kernl’s data is interesting because it only includes data points from websites that purchase plugins or themes. The data is also available via our API for public consumption.
Thats it for this month! I hope everyone in the northern hemisphere is enjoying the start of summer.
On an average day Kernl handles around 2 million requests from 135,000 unique domains. Our analytics offering lets you use this data to make better product development decisions, but there is also a more holistic view of the Kernl and WordPress ecosystem to be had. I’d like to introduce to you the Kernl WordPress Statistics page!
What is it?
The statistics page gives you a high level overview of Kernl ecosystem. This is a subset of the overall WordPress ecosystem with the important distinction that every domain represented has paid for a plugin or theme. It includes information around WordPress versions, PHP versions, and the language that the site is in.
There are a lot of neat visualizations that you could make with this data over time, so the API is exposed and can be used by anyone. Check out the Kernl API documentation to get started. No authentication required.
Awesome! Where do I go to see this in action?
Check out https://kernl.us/wordpress-installation-statistics , or go to the Kernl homepage and scroll all the way to the bottom.
Welcome to April! It was fairly light month for Kernl feature-wise as we’ve been spending more of our efforts on marketing and advertising. We did manage to get a few things done, so lets get in to it!
Features & Bug Fixes
Plugin Update Icons – You can now set the icon that shows up in the WordPress update dashboard! No more gray power outlet icon! To set it, go to your plugin -> edit -> meta and then upload an image.
Multi-Subscription Bug – It was possible (although hard) to get your account into a state where you had multiple Kernl subscriptions assigned to it. This has been resolved. If you notice this happening to you on your invoice, please reach out to firstname.lastname@example.org.
Upgrade to Node.js 8.10.0 – Kernl is now run on the latest LTS version of Node.js. Performance and security updates were part of the upgrade.
Envato License Check Bug – There were certain situations where the Envato license check functionality wasn’t working. This has been resolved.
Blog Post – A new blog post about how I develop features for Kernl.us
Have you ever wished that Kernl supported plugin update icons? Well, your wish is our command!
As you can see, before this change the icon displayed on the WordPress update dashboard for Kernl-based plugins was the default “power cord” image.
Now you can upload your own icon to Kernl and have it displayed in the update dashboard.
Using the new plugin update icon feature is easy.
- Add the latest version of the plugin_update_check.php file to your plugin.
- Upload an icon (64×64) to Kernl in the plugin meta tab.
That’s it! Deploy your update so that all of your customers get the new plugin_update_check file and Kernl will start serving your update icon when you release your next update.
If you have any questions or need help getting set up, shoot and email to email@example.com
Welcome to March everyone! Lots of great stuff happened with Kernl this month, so lets get into it.
- New Marketing Site – The new marketing website for Kernl launched! For most of Kernl’s life the marketing page has been a single landing page optimized for only plugin and theme updates. Since inception Kernl has grown to include a lot more than just updates and the new marketing site reflects that.
- PHP Version and Install Language Analytics – Kernl Analytics can now track what PHP version your customers have installed as well as the written language of the site. Knowing this information can help you make smart data-driven decisions about internationalization and which programming language features you can target.
- Plugin & Theme Dashboard Views – Previously when you went to the “versions” page in Kernl you were greeted with just a list of versions for the plugin/theme. Now you can easily see downloads stats, licenses, versions, and Git deployments in one easy screen.
- Let’s Encrypt SSL Certificates – Kernl switched over to using Let’s Encrypt SSL certificates.
Bugs Fixes & Other
- The /latest-version endpoint now includes the version id.
- Build emails were not displaying the correct repository. This has been resolved.
- Digital Ocean has been doing scheduled hard reboots of servers to handle Meltdown/Spectre issues. We’ve had to carefully manage this process but it looks like we made it through mostly unscathed.
- There is now a simple proof-of-concept realtime channel on the marketing home page that updates the download count. Eventually we hope to use realtime with feature flags and any other number of things.